[cfe-dev] constexpr with builtin

fil fil at pobox.com
Mon Sep 9 20:36:21 PDT 2013


Richard Smith wrote
>> 1. know of a way to use builtin functions (like clz) in a constexpr
>> context?
>> I am figuring I need to re-implement it, no way to use the CPU
>> instruction
>> at compile time (?)
>>
> 
> __builtin_clz works in constant expressions in recent Clang revisions. You
> only need to upgrade =)

Right.. good to know. Did this change come in 3.3 or very latest SVN?


Richard Smith wrote
> 2. why does a branch allow it to be compiled? I would have thought that
> the
>> compiler would inspect both branches and insist they both be a const
>> friendly.
> 
> The compiler does inspect both branches, but it only insists that *one* of
> them is constexpr-friendly. It's valid for a ?: to select between a
> potentially-constant expression and a never-constant expression within a
> constexpr function.

Gotcha. I expected it to be a bit more draconian on guaranteeing constexpr
in all branches. Thx for the follow up.

Regards, Fil.




--
View this message in context: http://clang-developers.42468.n3.nabble.com/constexpr-with-builtin-tp4034336p4034358.html
Sent from the Clang Developers mailing list archive at Nabble.com.



More information about the cfe-dev mailing list