[LLVMdev] Problem with InsertPointGuard ABI?

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 CMAKE_BUILD_TYPE=Release,
>>> LLVM_ENABLE_ASSERTIONS=Off and CMAKE_CXX_FLAGS_RELEASE=""
>>> llvm-config reports asserts as off but NDEBUG flag is not set.
>>
>> Um, okay, but why would you set CMAKE_CXX_FLAGS_RELEASE=""? 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