http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46332
Ian Lance Taylor <ian at airs dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed|2010-11-09 19:53:18 |2010.11.10 05:17:05 Ever Confirmed|0 |1 --- Comment #11 from Ian Lance Taylor <ian at airs dot com> 2010-11-10 05:17:05 UTC --- I agree that for _Z3fooIiPFidEiEvv we should use (*), and in fact we do use (*), with or without the patch attached to this PR. This PR is about a different sort of symbol, _Z3fooIiFvdEiEvv, or, in the current 14.cc, _Z3fooIiFvdEiEvv. The key difference here is that these symbols use F rather than PF, which means that refer to a function type rather than a pointer to a function type. I'm not sure exactly what it means to instantiate a template with a function type, but g++ does generate these sort of symbols. I could change the () to (*), but that would imply a pointer to a function type which isn't what we have. So my question for Ben is: should we change the expected demangling in 14.cc to be void foo<int, void (double), int>() or should we do something else.