brintos

brintos / llvm-project-archived public Read only

0
0
Text · 903 B · 24583cc Raw
40 lines · cpp
1// REQUIRES: system-windows2//3// RUN: %clang_cl /Z7 /Zi %s -o %t4// RUN: %dexter --fail-lt 1.0 -w --binary %t --debugger 'dbgeng' -- %s5 6// From https://llvm.org/pr38857, where we had issues with stack realignment.7 8struct Foo {9  int x = 42;10  int __declspec(noinline) foo();11  void __declspec(noinline) bar(int *a, int *b, double *c);12};13int Foo::foo() {14  int a = 1;15  int b = 2;16  double __declspec(align(32)) force_alignment = 0.42;17  bar(&a, &b, &force_alignment); // DexLabel('in_foo')18  x += (int)force_alignment;19  return x;20}21void Foo::bar(int *a, int *b, double *c) {22  *c += *a + *b; // DexLabel('in_bar')23}24int main() {25  Foo o;26  o.foo();27}28/*29DexExpectProgramState({'frames':[30    {'function': 'Foo::bar', 'location' : {'lineno' : ref('in_bar')} },31    {'function': 'Foo::foo',32     'watches' : {33       'a' : '1',34       'b' : '2',35       'force_alignment' : '0.42'36     }37    }38]})39*/40