llvm-mirror/test/C++Frontend/2006-11-30-NoCompileUnit.cpp
Duncan Sands 5a29993695 The Ada f-e produces various auxiliary output files
that cannot be suppressed and cannot be redirected:
they are dumped in the current working directory.
When running the testsuite this means that these
files do not end up in the Output directory.  The
best solution I could find is to change directory
into Output before running tests.

llvm-svn: 40437
2007-07-23 15:23:35 +00:00

59 lines
1.1 KiB
C++

// This is a regression test on debug info to make sure we don't hit a compile
// unit size issue with gdb.
// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | \
// RUN: llc --disable-fp-elim -o NoCompileUnit.s -f
// RUN: as NoCompileUnit.s -o NoCompileUnit.o
// RUN: g++ NoCompileUnit.o -o NoCompileUnit.exe
// RUN: echo {break main\nrun\np NoCompileUnit::pubname} > %t2
// RUN: gdb -q -batch -n -x %t2 NoCompileUnit.exe | \
// RUN: tee NoCompileUnit.out | not grep {"low == high"}
// XFAIL: alpha|ia64|arm
class MamaDebugTest {
private:
int N;
protected:
MamaDebugTest(int n) : N(n) {}
int getN() const { return N; }
};
class BabyDebugTest : public MamaDebugTest {
private:
public:
BabyDebugTest(int n) : MamaDebugTest(n) {}
static int doh;
int doit() {
int N = getN();
int Table[N];
int sum = 0;
for (int i = 0; i < N; ++i) {
int j = i;
Table[i] = j;
}
for (int i = 0; i < N; ++i) {
int j = Table[i];
sum += j;
}
return sum;
}
};
int BabyDebugTest::doh;
int main(int argc, const char *argv[]) {
BabyDebugTest BDT(20);
return BDT.doit();
}