https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103598
Bug ID: 103598 Summary: [12 regression] __PRETTY_FUNCTION_ lost namespaces in types Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: slyfox at gcc dot gnu.org Target Milestone: --- I noticed the change as llvm-12 test failure (llvm-13 dropped string matching on namespaces and thus does not fail anymore). Here is the small reproducer: #include <stdio.h> namespace llvm { class Module{}; template <typename T> const char* getTypeName() { return __PRETTY_FUNCTION__; } }; int main() { printf("T=%s\n", llvm::getTypeName<llvm::Module>()); } $ g++-11.2.0 a.cc -o a && ./a T=const char* llvm::getTypeName() [with T = llvm::Module] $ g++-12.0.0 a.cc -o a && ./a T=const char* llvm::getTypeName() [with T = Module] Looks like 'with T = ' now renders types related to function's namespace. Is it an intended change accidental one?