| // 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 | llc --disable-fp-elim -o Output/NoCompileUnit.s -f |
| // RUN: as Output/NoCompileUnit.s -o Output/NoCompileUnit.o |
| // RUN: g++ Output/NoCompileUnit.o -o Output/NoCompileUnit.exe |
| // RUN: ( echo "break main"; echo "run" ; echo "p NoCompileUnit::pubname" ) > Output/NoCompileUnit.gdbin |
| // RUN: gdb -q -batch -n -x Output/NoCompileUnit.gdbin Output/NoCompileUnit.exe | tee Output/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(); |
| } |