Re: Let gcc generate a warning or an error?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 2008-12-26 07:26, Ian Lance Taylor wrote:
>
>> Hi, I would like to do something like
>>
>> static inline void foo (unsigned long x)
>> {
>>     if (__builtin_constant_p (x))
>>     {
>>         asm volatile ("... %0" :: "n" (x));
>>     }
>>     else
>>     {
>>         __builtin_error ("foo must be used with a compile time constant");
>>     }
>> }
>>
>> Is there a way to generate an error/warning/info by making gcc
>> call error/warning/info?
>>
>> So that in the above case an understandable error message is printed.
>
>Not really, no.  It would be a useful feature.  In C++ you can use
>template tricks to implement this.

Does not even need a template.

#define foo(x) ({ \
	BUILD_BUG_ON(!__builtin_constant_p(x)); \
	__foo(x); \
})
void __foo(unsigned long x)
{
	asm ...
}

with BUILD_BUG_ON from
http://lxr.linux.no/linux+v2.6.28/include/linux/kernel.h#L509

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux