Maybe I miss something but I think there is a problem with this code in
Support/Debug.cpp when compiling in Release build (NDEBUG defined):
namespace llvm {
/// dbgs - Return dbgs().
raw_ostream &dbgs() {
return dbgs();
}
}
I though it would crash with a stack overflow due to infinite recursion, but
llvm-gcc is smart enough to compile it as a jmp and create an infinite loop
instead
otool -tv Debug.o
llvm::dbgs():
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 jmp 0x00000004
Anyway, I think neither crash nor infinite loop is the expected behavior,
isn't it ?
-- Jean-Daniel