On 09/08/2019 15:00, Matthew Fernandez wrote:
On Aug 9, 2019, at 05:23, Chris Hall via cfe-users wrote:

I find that __builtin_constant_p() works as expected, but __has_builtin(constant_p) denies it !

I believe you need __has_builtin(__builtin_constant_p).

Ah :-(  So you do... sorry... I have no idea why I thought otherwise :-(

Similarly __builtin_expect() and __builtin_types_compatible_p() !

Except that __has_builtin(__builtin_types_compatible_p) also denies it.

   #include <stdio.h>

   int
   main(int argc, char* argv[])
   {
     printf("__has_builtin(__builtin_types_compatible_p)=%d\n"
                          "__builtin_types_compatible_p(int, int)=%d\n"
                          "__builtin_types_compatible_p(int, long)=%d\n",
             __has_builtin(__builtin_types_compatible_p),
                           __builtin_types_compatible_p(int, int),
                           __builtin_types_compatible_p(int, long)) ;
   }

outputs:

   __has_builtin(__builtin_types_compatible_p)=0
   __builtin_types_compatible_p(int, int)=1
   __builtin_types_compatible_p(int, long)=0

I hope I haven't missed something blindingly obvious this time.

Thanks,

Chris

_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to