I've done some minimal testing on FreeBSD 8.x i386. When running make
check I get:
# of expected passes 2188
# of unexpected failures 1
# of expected failures 6
The error output is:
Running
/usr/cvsports/devel/llvm/work/llvm-2.2/test/Transforms/LoopUnroll/dg.exp ...
FAIL: /usr/cvsports/devel/llvm/work/llvm-2.2/test/Transforms/LoopUnroll/2007-11-05-Crash.ll for PR1770
Failed with signal(SIGSEGV) at line 1
while running: llvm-as < /usr/cvsports/devel/llvm/work/llvm-2.2/test/Transforms/LoopUnroll/2007-11-05-Crash.ll | opt -disable-output -loop-unroll
child killed: segmentation violation
In this case FreeBSD's malloc debugging option J was enabled and disabling it
caused the test to pass. The option does:
J Each byte of new memory allocated by malloc(), realloc() or
reallocf() will be initialized to 0xa5. All memory returned by
free(), realloc() or reallocf() will be initialized to 0x5a.
This is intended for debugging and will impact performance nega-
tively.
While this is indeed a bug and has been fixed in mainline, unless we get a major regression in 2.2, I will not merge it into 2.2. Merging this in would require another round of testing and since its technically not a regression from 2.1, I'm not sure the cost outweighs the benefit.