See "discussion": https://discourse.llvm.org/t/rfc-dexter-feature-removals/60462 This patch removes the builder functionality from Dexter, as it is an active maintenance burden and is no longer required since Dexter is being invoked by other test runners that can handle the build step better, and there has been no objection that it is still needed. Differential Revision: https://reviews.llvm.org/D151465
34 lines
1017 B
C
34 lines
1017 B
C
// XFAIL:*
|
|
//// Currently, LowerDbgDeclare doesn't lower dbg.declares pointing at allocas
|
|
//// for structs.
|
|
|
|
// REQUIRES: lldb
|
|
// UNSUPPORTED: system-windows
|
|
// RUN: %clang -O2 -glldb %s -o %t
|
|
// RUN: %dexter --fail-lt 1.0 -w --debugger lldb --binary %t -- %s
|
|
//
|
|
//// Check debug-info for the escaped struct variable num is reasonable.
|
|
|
|
#include <stdio.h>
|
|
struct Nums { int a, b, c; };
|
|
struct Nums glob;
|
|
__attribute__((__noinline__))
|
|
void esc(struct Nums* nums) {
|
|
glob = *nums;
|
|
}
|
|
|
|
__attribute__((__noinline__))
|
|
int main() {
|
|
struct Nums nums = { .c=1 }; //// Dead store.
|
|
printf("s1 nums.c: %d\n", nums.c); // DexLabel('s1')
|
|
|
|
nums.c = 2; //// Killing store.
|
|
printf("s2 nums.c: %d\n", nums.c); // DexLabel('s2')
|
|
|
|
esc(&nums); //// Force nums to live on the stack.
|
|
return 0; // DexLabel('s3')
|
|
}
|
|
|
|
// DexExpectWatchValue('nums.c', '1', on_line=ref('s1'))
|
|
// DexExpectWatchValue('nums.c', '2', from_line=ref('s2'), to_line=ref('s3'))
|