1// RUN: %clangxx %s -g -fexceptions %extra-clang-opts -o %t
2// RUN: %Test_jit_debuginfo %s %t
3// DEBUGGER: set breakpoint pending on
4// DEBUGGER: break %s:45
5// DEBUGGER: run
6// DEBUGGER: info locals
7// CHECK: pf = 0x
8// CHECK: s = {f = 0.00100000005, f2 = {10000, 100.5}}
9// CHECK: us = 65535
10// CHECK: f = 0
11// CHECK: d = {{[{][{]}}0, 1}, {2, 3{{[}][}]}}
12// CHECK: l = 0
13// CHECK: result = 0
14// DEBUGGER: continue
15
16struct float_struct {
17  float f;
18  float f2[2];
19} compound_float;
20
21
22int main(int argc, char* argv[])
23{
24  float f = 0.f;
25  float *pf = &f;
26
27  double d[2][2] = {{0, 1}, {2, 3.0}};
28  struct float_struct s;
29
30  unsigned short us = -1;
31  const unsigned long l = static_cast<unsigned long>(-1.0e8f);
32
33  {
34    int** ppn = 0;
35    if (ppn) {
36      return -1;
37    }
38  }
39
40  s.f = 10e-4f;
41  s.f2[0] = 1e4f;
42  s.f2[1] = 100.5f;
43
44  double result = pf[0] * d[1][1] * s.f * us * l;
45  return (result == 0 ? 0 : -1);
46}
47