https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120896
Bug ID: 120896
Summary: __PRETTY_FUNCTION__ incorrect behavior (depends on
instanciation order)
Product: gcc
Version: 15.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kelbonage at gmail dot com
Target Milestone: ---
https://godbolt.org/z/7zn8Echa5
```cpp
#include <print>
template <typename T = int>
struct S
{};
template <typename T>
constexpr const char* n()
{
static auto name = __PRETTY_FUNCTION__;
return name;
}
int main()
{
std::println("{}", n<S<>>());
std::println("{}", n<S<int>>());
}
```
Output:
constexpr const char* n() [with T = S<>]
constexpr const char* n() [with T = S<>]
But if line order changed:
std::println("{}", n<S<int>>());
std::println("{}", n<S<>>());
Output:
constexpr const char* n() [with T = S<int>]
constexpr const char* n() [with T = S<int>]