Files
clang-p2996/cross-project-tests/debuginfo-tests/dexter-tests/memvars/struct-dse.c
Stephen Tozer 262520a3c5 [Dexter] Remove builder from Dexter
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
2023-08-21 15:08:11 +01:00

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'))