http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56567
--- Comment #4 from David Krauss <potswa at mac dot com> 2013-03-10 02:18:18 UTC --- Note, there is nothing in the Standard to prohibit return of an initializer_list value, so this rejects programs which are conformant. Unless/until #56568 is resolved, doing so results in UB (whether or not that's a bug). That's only if the function is executed. It's certainly legal to compile a function returning an std::initializer list, which is never called. So this fix is problematic. For example []{ return std::initializer_list< int >{ 1, 2 }; }(); Not filing another report yet because I haven't pulled the changes and tested anything for myself.