[LLVMdev] Problem with InsertPointGuard ABI? (original) (raw)

Justin Bogner mail at justinbogner.com
Tue Jul 21 09:58:33 PDT 2015


Paweł Bylica <chfast at gmail.com> writes:

On Tue, Jul 21, 2015 at 6:30 PM Justin Bogner <mail at justinbogner.com> wrote:

Paweł Bylica <chfast at gmail.com> writes:

On Tue, Jul 21, 2015 at 5:55 PM Justin Bogner <mail at justinbogner.com> wrote:

FWIW, llvm-config --assertion-mode will tell you whether or not your LLVM was built with or without NDEBUG.

That's not true in all cases. In case CMAKEBUILDTYPE=Release, LLVMENABLEASSERTIONS=Off and CMAKECXXFLAGSRELEASE="" llvm-config reports asserts as off but NDEBUG flag is not set. Um, okay, but why would you set CMAKECXXFLAGSRELEASE=""? That doesn't make any sense... I agree, it make no sense. But homebrew actually does that: https://github.com/Homebrew/homebrew/blob/master/Library/Homebrew/formula.rb#L615

That sounds very broken - maybe ask them to fix it?

In any case, llvm-config seems to correctly report asserts as ON in this case, despite the configuration being completely bogus:

% cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=Off -DCMAKE_CXX_FLAGS_RELEASE="" ... % ninja llvm-config [94/94] Linking CXX executable bin/llvm-config % ./bin/llvm-config --assertion-mode ON

The code that prints this just checks NDEBUG:

llvm-config.cpp:320:

} else if (Arg == "--assertion-mode") { #if defined(NDEBUG) OS << "OFF\n"; #else OS << "ON\n"; #endif



More information about the llvm-dev mailing list