tests: avoid a spurious failure due to a Clang bug
commita1f9336b9dee4dcb97dd8488f22b1bc684f956f9
authorStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 18 Dec 2012 10:30:39 +0000 (18 11:30 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 18 Dec 2012 10:30:50 +0000 (18 11:30 +0100)
tree82f214e18766a2b0d031c614ef5c496ee0ce7e45
parentfba280d0923da6ef0d55db11edb0944ee1261987
tests: avoid a spurious failure due to a Clang bug

This version of clang:

    clang version 3.2 (trunk 163574)
    Target: powerpc64-unknown-linux-gnu
    Thread model: posix

caused the test 't/ltcond2.sh' to spuriously fail due to what
appeared like a clang bug.  Here is a part of the diagnostic (trimmed
down for better clarity):

    clang: .../cfarm/llvm/lib/MC/MCAsmStreamer.cpp:338: \
      virtual void {anonymous}::MCAsmStreamer::EmitLabel(llvm::MCSymbol*): \
      Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' \
      failed.
    ...
    7  clang  0x0000000012a459c4 llvm::AsmPrinter::EmitGlobalVariable\
      (llvm::GlobalVariable const*) + 18446744073680468044
    8  clang  0x0000000012a490a8 llvm::AsmPrinter::doFinalization\
      (llvm::Module&) + 18446744073680481840
    ...
    Stack dump:
    0.  Program arguments: .../opt/cfarm/clang-2012.09.10/bin/clang \
          -cc1 -triple powerpc64-unknown-linux-gnu -S -disable-free \
          ...
    1.  <eof> parser at end of file
    2.  Code generation
    3.  Running pass 'Function Pass Manager' on module 'hello-generic.c'.
    clang: error: unable to execute command: Aborted
    clang: error: clang frontend command failed due to signal (use -v to \
           see invocation)
    clang version 3.2 (trunk 163574)
    Target: powerpc64-unknown-linux-gnu
    Thread model: posix

So tweak the affected test case to avoid triggering this bug.  This is
the easiest way for us to keep the testsuite result clean and meaningful
on our main Clang test bed.

* t/ltcond2.sh: Prefer using "extern const char *" variables rather
than functions returning a statically allocated "const char *" variable.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
t/ltcond2.sh