blob: 70fc642e75f1064cb422d205b26ba89f8ffc73d2 [file] [log] [blame]
Reid Spencer0eb776f2006-12-04 20:46:05 +00001// This is a regression test on debug info to make sure we don't hit a compile
2// unit size issue with gdb.
Reid Spencer42e86fb2007-04-15 22:37:04 +00003// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | \
Duncan Sands6c7ada42007-07-23 15:23:35 +00004// RUN: llc --disable-fp-elim -o NoCompileUnit.s -f
Chris Lattner3efa1a72008-03-10 06:52:10 +00005// RUN: %compile_c NoCompileUnit.s -o NoCompileUnit.o
Dale Johannesenc9958102008-06-10 18:01:54 +00006// RUN: %link NoCompileUnit.o -o NoCompileUnit.exe
Reid Spencer42e86fb2007-04-15 22:37:04 +00007// RUN: echo {break main\nrun\np NoCompileUnit::pubname} > %t2
Duncan Sands6c7ada42007-07-23 15:23:35 +00008// RUN: gdb -q -batch -n -x %t2 NoCompileUnit.exe | \
9// RUN: tee NoCompileUnit.out | not grep {"low == high"}
Reid Spencer0eb776f2006-12-04 20:46:05 +000010// XFAIL: alpha|ia64|arm
Matthijs Kooijman818ae722008-06-13 16:52:35 +000011// XFAIL: *
12// See PR2454
Jim Laskey56918c82006-11-30 15:36:44 +000013
14
15class MamaDebugTest {
16private:
17 int N;
18
19protected:
20 MamaDebugTest(int n) : N(n) {}
21
22 int getN() const { return N; }
23
24};
25
26class BabyDebugTest : public MamaDebugTest {
27private:
28
29public:
30 BabyDebugTest(int n) : MamaDebugTest(n) {}
31
32 static int doh;
33
34 int doit() {
35 int N = getN();
36 int Table[N];
37
38 int sum = 0;
39
40 for (int i = 0; i < N; ++i) {
41 int j = i;
42 Table[i] = j;
43 }
44 for (int i = 0; i < N; ++i) {
45 int j = Table[i];
46 sum += j;
47 }
48
49 return sum;
50 }
51
52};
53
54int BabyDebugTest::doh;
55
56
57int main(int argc, const char *argv[]) {
58 BabyDebugTest BDT(20);
59 return BDT.doit();
60}