[llvm] r198273 - Silence g++ 4.9 build issue in unit tests

Alp Toker alp at nuanti.com
Wed Jan 1 19:28:18 PST 2014


On 02/01/2014 02:52, Chandler Carruth wrote:
>
> On Wed, Jan 1, 2014 at 5:35 PM, Alp Toker <alp at nuanti.com 
> <mailto:alp at nuanti.com>> wrote:
>
>         & is there a reason we're not using the LLVM_STATIC_ASSERT
>         macro here?
>
>
>     Requires LLVM_ENABLE_CXX11 which isn't yet enabled on most (any?)
>     of the builders.
>
>     I'd just wait until C++11 and change the lot.
>
>
> Did you check the definition? We provide a fallback if the compiler 
> doesn't support static_assert.

Sure, in fact I wrote the current definition of LLVM_STATIC_ASSERT (or 
at least made the changes adding compiler checks in r198142 and r198255).

There is no fallback..

|/// \macro LLVM_STATIC_ASSERT||
||/// \brief Expands to C/C++'s static_assert on compilers which support 
it.||
||#if __has_feature(cxx_static_assert) || \||
||    defined(__GXX_EXPERIMENTAL_CXX0X__) || LLVM_MSC_PREREQ(1600)||
||# define LLVM_STATIC_ASSERT(expr, msg) static_assert(expr, msg)||
||#elif __has_feature(c_static_assert)||
||# define LLVM_STATIC_ASSERT(expr, msg) _Static_assert(expr, msg)||
||#else||
||# define LLVM_STATIC_ASSERT(expr, msg)||
||#endif|

The macro expands to nothing in the default build configuration:

|lib/Lex/PPMacroExpansion.cpp: .Case("cxx_static_assert", 
LangOpts.CPlusPlus11)||
|||
> We also test for support of static_assert in a more fine grain way 
> than merely that C++11 is enabled which should allow the macro to work 
> on any build using a modern (last 2 years) Clang host compiler.

Where?

grep 'static_assert' through the LLVM source tree only finds the single 
line above.

Alp.


>
> -Chandler

-- 
http://www.nuanti.com
the browser experts

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140102/21e5e7be/attachment.html>


More information about the llvm-commits mailing list