1*1364750dSJames Henderson // REQUIRES: system-windows
2*1364750dSJames Henderson //
3*1364750dSJames Henderson // RUN: %dexter --fail-lt 1.0 -w --builder 'clang-cl_vs2015' \
4*1364750dSJames Henderson // RUN:      --debugger 'dbgeng' --cflags '/Z7 /Zi' --ldflags '/Z7 /Zi' -- %s
5*1364750dSJames Henderson 
6*1364750dSJames Henderson // From https://llvm.org/pr38857, where we had issues with stack realignment.
7*1364750dSJames Henderson 
8*1364750dSJames Henderson struct Foo {
9*1364750dSJames Henderson   int x = 42;
10*1364750dSJames Henderson   int __declspec(noinline) foo();
11*1364750dSJames Henderson   void __declspec(noinline) bar(int *a, int *b, double *c);
12*1364750dSJames Henderson };
foo()13*1364750dSJames Henderson int Foo::foo() {
14*1364750dSJames Henderson   int a = 1;
15*1364750dSJames Henderson   int b = 2;
16*1364750dSJames Henderson   double __declspec(align(32)) force_alignment = 0.42;
17*1364750dSJames Henderson   bar(&a, &b, &force_alignment); // DexLabel('in_foo')
18*1364750dSJames Henderson   x += (int)force_alignment;
19*1364750dSJames Henderson   return x;
20*1364750dSJames Henderson }
bar(int * a,int * b,double * c)21*1364750dSJames Henderson void Foo::bar(int *a, int *b, double *c) {
22*1364750dSJames Henderson   *c += *a + *b; // DexLabel('in_bar')
23*1364750dSJames Henderson }
main()24*1364750dSJames Henderson int main() {
25*1364750dSJames Henderson   Foo o;
26*1364750dSJames Henderson   o.foo();
27*1364750dSJames Henderson }
28*1364750dSJames Henderson /*
29*1364750dSJames Henderson DexExpectProgramState({'frames':[
30*1364750dSJames Henderson     {'function': 'Foo::bar', 'location' : {'lineno' : ref('in_bar')} },
31*1364750dSJames Henderson     {'function': 'Foo::foo',
32*1364750dSJames Henderson      'watches' : {
33*1364750dSJames Henderson        'a' : '1',
34*1364750dSJames Henderson        'b' : '2',
35*1364750dSJames Henderson        'force_alignment' : '0.42'
36*1364750dSJames Henderson      }
37*1364750dSJames Henderson     }
38*1364750dSJames Henderson ]})
39*1364750dSJames Henderson */
40