@donc Printing template/instance name is helpful to me, for debugging complex metaprogramming code.

The important point is, we should keep the existing behavior if there's no proposed enhancements. I am respecting your CTFE improvements, but in this case, it does not justify the regression.

On pragma(msg) arguments, `TemplateDeclaration` and `TemplateInstance` are already valid compile-time entity. Printing them is valid/worthwhile operation, even if interpretation cannot process them.

As you see, `pragma(msg)` has its own behavior for its argument processing. It *looks* mostly same as for template arguments, but indeed it's a little different. To realize the behavior, we have `ctfeInterpretForPragmaMsg`. So fixing it for the regression is not a hack.