http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50276
--- Comment #1 from Joel Yliluoma <bisqwit at iki dot fi> 2011-09-02 13:04:31 UTC --- Even this produces the warning. Changing any of the "0"s into "1" did not affect the warning. static inline unsigned testfun(void*) { return 0; } template<int i> static inline unsigned test() { if(unsigned value = testfun( []() { return 0; } )) return value; return 0; } int main() { return test<0>(); }