llvm-capstone/debuginfo-tests/asan-deque.cpp
Vedant Kumar efab30c73e Disable the asan-deque.cpp integration test for AppleLLDB < v1000
Some of Apple's public CI nodes ship an lldb which has trouble debugging
the asan-deque.cpp test. Specifically, that lldb appears to either parse
location lists in the test program incorrectly or to have a broken
std::deque data formatter.

We don't want to work around this by weakening the integration test, and
we're unable to update the lldb version on the CI node at the moment.

The compromise is to require AppleLLDB >= 1000 when AppleLLDB is being
used to debug this test.

Reviewed (in person) by Adrian Prantl.

Bot failure:
http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA/48074

rdar://42892721

llvm-svn: 338937
2018-08-04 00:02:48 +00:00

47 lines
942 B
C++

// 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.
// UNSUPPORTED: apple-lldb-pre-1000
#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