------- Comment #9 from mark at codesourcery dot com 2008-07-14 16:53 ------- Subject: Re: ICE on SFINAE and __is_empty
sebor at roguewave dot com wrote: > int foo<A<0> >(B<A<0>, __is_empty (A<0>)>::X*): > _Z3fooI1AILi0EEEiPN1BIT_Xv19builtin16TOS3_EE1XE > > int foo<int>(B<int, !__is_empty (int)>::X*): > _Z3fooIiEiPN1BIT_Xntv19builtin16TOS1_EE1XE OK. I don't see anything inherently wrong with that mangling, though of course if we're going to make this standard, we need EDG's table of builtins (so we known which ones are which), and we need to specify semantics for each of the builtins so that we know that we can mix object files between different compilers. (No good if G++'s __is_empty is somehow subtly different than EDG's __is_empty.) So, I think the high-order issues here are still: (1) Do we need a mangling? (I know you think we do.) (2) If so, do we want to specify it at the ABI level, or use something G++-specific? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36797