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?

Reply via email to