[cfe-dev] Goal for 3.5: Library-friendly headers

Chris Lattner clattner at apple.com
Mon Nov 11 22:20:14 PST 2013


On Nov 11, 2013, at 12:09 PM, Alp Toker <alp at nuanti.com> wrote:

>> Even when you have a !NDEBUG build, the platform assert() is pretty
>> crummy on Windows and generates, at best a UTF-16 dump, or sometimes
>> just pops up a dialog. WebKit and other projects take the same approach
>> and define their own assertion macros to deal with this portably.
>> 
>> So as far as I can tell, as long as the headers use assert(), they need
>> to use our own version in order for the definition to match.
> 
> Chris,
> 
> Having said that, I agree it's worth trying without llvm_assert() to see
> how far it gets.
> 
> I'll pull together a rework of this patchset with just the build system
> and structure changes alone to see how far it gets.
> 
> The key thing then is to make sure that it's safe to enable the
> assertions in the headers if an application is built with !NDEBUG and
> linked against an NDEBUG version of LLVM.

Sounds great.  I'm pretty confident that there will be no problems - in practice - from any ODR violations that might arise from "assert" differing across library boundaries.  We would want some pretty strong practical justification for breaking away from standard assert.

-Chris



More information about the cfe-dev mailing list