[PATCH v2] Address regressions from e8ff555b95baab66cc7d060c1e7f9fdd49d3802f
Jeremy Huddleston
jeremyhu at apple.com
Thu Sep 22 19:58:43 PDT 2011
On Sep 22, 2011, at 19:49, Alan Coopersmith wrote:
> On 09/22/11 07:11 PM, Jeremy Huddleston wrote:
>> -static inline void __builtin_constant_p(int x)
>> +static inline int constant_p(int x)
>> {
>> +#if defined(__GNUC__) || (defined(__SUNPRO_C)&& (__SUNPRO_C>= 0x590))
>> + return __builtin_constant_p(x);
>> +#else
>> return 0;
>> -}
>> #endif
>> +}
>
> Since __builtin_constant_p is more of a keyword than a function, does the
> magic still work when you have the extra level of indirection?
Yes. There should be no difference since these are inlined, but in the off chance I'm wrong, I addressed your concern as:
diff --git a/include/misc.h b/include/misc.h
index 1fea73e..4ecab59 100644
--- a/include/misc.h
+++ b/include/misc.h
@@ -261,14 +261,16 @@ version_compare(uint16_t a_major, uint16_t a_minor,
#define SwapRestL(stuff) \
SwapLongs((CARD32 *)(stuff + 1), LengthRestL(stuff))
-#ifdef __GNUC__
+#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
void __attribute__((error("wrong sized variable passed to swap"))) wrong_size(void);
#else
static inline void wrong_size(void)
{
}
+#endif
-static inline void __builtin_constant_p(int x)
+#if !(defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)))
+static inline int __builtin_constant_p(int x)
{
return 0;
}
More information about the xorg-devel
mailing list