+ else + return (1 << ((sizeof(unsigned) * 8) - __builtin_clz(x - 1))); I don't like else after return. The else can be removed entirely. -- Chris