make check

On our recursed mips compiler on the cavium boards, I’m getting a strange failure on our second level resursed compiler, only on 2 of the clang tests.
These two compilers do differ in the libc toolchaing.

When I run clang myself it looks fine so it seems to be a make check issue. This is also, btw, a big endian machine.
I have not tried debugging filecheck for this; which is where the issue seems to lie.

Maybe this looks familiar to someone.

rkotler@mipsswbrd002:~/slave/slavetargetbe/build$ ../install/bin/not --crash ../install/bin/clang -cc1 -analyze -analyzer-checker=debug.ExprInspection /home/rkotler/workspace/llvmslave/tools/clang/test/Analysis/crash-trace.c 
0  clang 0x0385c194 llvm::sys::PrintStackTrace(_IO_FILE*) + 96
Stack dump:
0.	Program arguments: ../install/bin/clang -cc1 -analyze -analyzer-checker=debug.ExprInspection /home/rkotler/workspace/llvmslave/tools/clang/test/Analysis/crash-trace.c 
1.	<eof> parser at end of file
2.	While analyzing stack: 
	#0 void inlined()
	#1 void test()
3.	/home/rkotler/workspace/llvmslave/tools/clang/test/Analysis/crash-trace.c:7:3: Error evaluating statement
4.	/home/rkotler/workspace/llvmslave/tools/clang/test/Analysis/crash-trace.c:7:3: Error evaluating statement
Error: Trace/breakpoint trap
rkotler@mipsswbrd002:~/slave/slavetargetbe/build$ 

But when the same test is run during make check:

home/rkotler/workspace/llvmslave/tools/clang/test/Analysis/crash-trace.c:14:11: error: expected string not found in input
// CHECK: 0. Program arguments: {{.*}}clang
          ^
<stdin>:1:1: note: scanning from here
0 5\H5*�i<*�i<5'05*�iL*�iL*�iT*�iT*�i\*�i\*�id*�id*�il*�il*�it*�it*�i|*�i|*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�j*�j*�j
                                                             *�j
                                                                *�j*�j*�j*�j*�j$*�j$*�j,*�j,*�j4*�j4*�j<*�j<*�jD*�jD*�jL*�jL*�jT*�jT*�j\*�j\*�jd*�jd*�jl*�jl*�jt*�jt*�j|*�j|*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�k*�k*�k
                                                                           *�k
                                                                              *�k*�k*�k*�k*�k$*�k$*�k,*�k,*�k4*�k4*�k<*�k<*�kD*�kD*�kL*�kL*�kT*�kT*�k\*�k\*�kd*�kd*�kl*�kl*�kt*�kt*�k|*�k|*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�l*�l*�
l
         *�l
            *�l*�l*�l*�l*�l$*�l$*�l,*�l,*�l4*�l4*�l<*�l<*�lD*�lD*�lL*�lL*�lT*�lT*�l\*�l\*�ld*�ld*�ll*�ll*�lt*�lt*�l|*�l|*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�m*�m*�m
                       *�m
                          *�m*�m*�m*�m*�m$*�m$*�m,*�m, 0x0433d798 Error: Segmentation fault
<stdin>:1:1035: note: possible intended match here
0 5\H5*�i<*�i<5'05*�iL*�iL*�iT*�iT*�i\*�i\*�id*�id*�il*�il*�it*�it*�i|*�i|*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�i�*�j*�j*�j
                                                             *�j
                                                                *�j*�j*�j*�j*�j$*�j$*�j,*�j,*�j4*�j4*�j<*�j<*�jD*�jD*�jL*�jL*�jT*�jT*�j\*�j\*�jd*�jd*�jl*�jl*�jt*�jt*�j|*�j|*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�j�*�k*�k*�k
                                                                           *�k
                                                                              *�k*�k*�k*�k*�k$*�k$*�k,*�k,*�k4*�k4*�k<*�k<*�kD*�kD*�kL*�kL*�kT*�kT*�k\*�k\*�kd*�kd*�kl*�kl*�kt*�kt*�k|*�k|*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�k�*�l*�l*�
l
         *�l
            *�l*�l*�l*�l*�l$*�l$*�l,*�l,*�l4*�l4*�l<*�l<*�lD*�lD*�lL*�lL*�lT*�lT*�l\*�l\*�ld*�ld*�ll*�ll*�lt*�lt*�l|*�l|*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�l�*�m*�m*�m
                       *�m
                          *�m*�m*�m*�m*�m$*�m$*�m,*�m, 0x0433d798 Error: Segmentation fault

Tia.

Reed

We have an almost identical issue with the other failing test:

When I run the test myself from the command line it looks fine.

rkotler@mipsswbrd002:~/slave/slavetargetbe/build$ ../install/bin/not --crash ../install/bin/clang -cc1 -analyze -analyzer-checker=debug.ExprInspection /home/rkotler/workspace/llvmslave/tools/clang/test/Parser/crash-report.c
0 clang 0x0385c194 llvm::sys::PrintStackTrace(_IO_FILE*) + 96
Stack dump:
0. Program arguments: ../install/bin/clang -cc1 -analyze -analyzer-checker=debug.ExprInspection /home/rkotler/workspace/llvmslave/tools/clang/test/Parser/crash-report.c
1. /home/rkotler/workspace/llvmslave/tools/clang/test/Parser/crash-report.c:4:2: current parser token 'prag\
ma'
Error: Trace/breakpoint trap
rkotler@mipsswbrd002:~/slave/slavetargetbe/build$

Whereas in the make check:

These are both tests that are intended to crash. Maybe your environment is being very aggressive about intercepting crashes?

Well when I run it at the command line it works okay, but under lit has this problem.

The first level compiler (which has a different set of .so's and libraries) works okay.
This compiler is built on linux using clang/llvm but with a different supporting toolchain and libs than are on the actual box.

Then the second level compiler is built on the mips box and everything else seems fine, except for these two tests.

This could just be a difference between supporting libs and such.