Jonathan Nieder <jrnieder@xxxxxxxxx> writes: > Johannes Sixt wrote: >> Am 3/16/2011 8:00, schrieb Jonathan Nieder: > >>> +static inline uint32_t git_bswap32(uint32_t x) >>> +{ >>> + uint32_t result; >>> + if (__builtin_constant_p(x)) >> >> Can this predicate ever be true? Isn't it false even if the function is >> inlined? > > It's true if x is a constant. > ... demonstration ... And this trivial function: int f(void) { return git_bswap32(0x01000000); } compiles down to: .globl f .type f, @function f: .LFB2: .cfi_startproc movl $1, %eax ret .cfi_endproc on my amd64, with -Os, -O1, or -O2 (gcc 4.4.5). Of course -O0 gives a true call to git_bswap32() and leaves the definitions of two helper functions in the object, but that is to be expected. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html