For a GCC plugin, is there a way to have a callback registered/get called on template instantiation of a type with an attribute or some other means? Consider:
template<typename T> struct foo { typedef T __attribute__((bar)) type; }; void foobar(foo<int*>::type); In this case, the attribute handler callback gets called on the template definition when it registers the attribute, not instantiation in foobar which is what I need because I want to do some "processing" on the type (which in this case is int*). For instance, remove the POINTER_TYPE from it (which can easily be done with metaprogramming but that's beside the point for this simple exercise, obviously). Just as a note, I don't mind overriding any hooks (lang_hooks or targetm or otherwise) if need be (and call the old one in a chain), or just using plain plugin events, or other callbacks, etc. An alternative way would be if I could intercept a constexpr call evaluation in a plugin event, so then I can defer the whole thing to a decltype of the plugin's function. There was a patch to add a PLUGIN_EVAL_CALL_CONSTEXPR event a year ago but I've no idea what happened to it. I'm aware it's probably not possible at the moment but maybe I'm missing something non-obvious. If it must be patched, hopefully a very simple hook can be added for this purpose since it would help a lot with plugins extending metaprogramming like this. Thanks.