On Tue, Jun 11, 2013 at 12:26 PM, Richard Smith <[email protected]> wrote:
>> > On Tue, Jun 11, 2013 at 12:18:55AM -0600, Justin Bogner wrote:
>> >> The clz, ctz, and popcount builtins are trivial to add constant folded
>> >> implementations of, and gcc accepts them in const contexts.
[...]
> A testcase which is less likely to pass by accident would be better (for
> instance, your popcount tests would succeed if the builtin just returned its
> argument, and tests with a '1' in the sign bit would be useful).
>
> You should also ensure that __builtin_clz(0) and __builtin_ctz(0) are not
> treated as constants.

I may be displaying my ignorance here, but is it also necessary to test
that __builtin_clz(0x123456789ABCDEF0LL) even in a constant context
returns (int)0 and not (int)3?  (Because it truncates its argument.)

–Arthur

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to