https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63362
--- Comment #3 from Ville Voutilainen <ville.voutilainen at gmail dot com> --- Looks good so far. I think this is a sufficient start for implementing the library traits. Does the patch cover template cases as well? Such as struct B {B();}; template <class T> struct C : T { }; SA(__calls_nontrivial_fn(C<B>())); Anyway, I'll give it a spin.