mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-23 16:06:24 +00:00
efab30c73e
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
47 lines
942 B
C++
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
|