// RUN: %clangxx -arch x86_64 %target_itanium_abi_host_triple -O1 -g %s -o %t.out -fsanitize=address | |
// RUN: %test_debuginfo %s %t.out | |
// REQUIRES: not_asan | |
// Zorg configures the ASAN stage2 bots to not build the asan | |
// compiler-rt. Only run this test on non-asanified configurations. | |
#include <deque> | |
struct A { | |
int a; | |
A(int a) : a(a) {} | |
}; | |
using log_t = std::deque<A>; | |
static void __attribute__((noinline, optnone)) escape(log_t &log) { | |
static volatile log_t *sink; | |
sink = &log; | |
} | |
int main() { | |
log_t log; | |
log.push_back(1234); | |
log.push_back(56789); | |
escape(log); | |
// DEBUGGER: break 25 | |
while (!log.empty()) { | |
auto record = log.front(); | |
log.pop_front(); | |
escape(log); | |
// DEBUGGER: break 30 | |
} | |
} | |
// DEBUGGER: r | |
// (at line 25) | |
// DEBUGGER: p log | |
// CHECK: 1234 | |
// CHECK: 56789 | |
// DEBUGGER: c | |
// (at line 30) | |
// DEBUGGER: p log | |
// CHECK: 56789 |