// This test case checks debug info during register moves for an argument. // RUN: %clang %target_itanium_abi_host_triple -m64 -mllvm -fast-isel=false %s -c -o %t.o -g // RUN: %clang %target_itanium_abi_host_triple -m64 %t.o -o %t.out // RUN: %test_debuginfo %s %t.out // // DEBUGGER: break 26 // DEBUGGER: r // DEBUGGER: print mutex // CHECK: ={{.* 0x[0-9A-Fa-f]+}} // // Radar 8412415 struct _mtx { long unsigned int ptr; int waiters; struct { int tag; int pad; } mtxi; }; int foobar(struct _mtx *mutex) { int r = 1; int l = 0; int j = 0; do { if (mutex->waiters) { r = 2; } j = bar(r, l); ++l; } while (l < j); return r + j; } int bar(int i, int j) { return i + j; } int main() { struct _mtx m; m.waiters = 0; return foobar(&m); }