https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86152
Bug ID: 86152 Summary: Failure to demange clone names with digits Product: gcc Version: 8.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: demangler Assignee: unassigned at gcc dot gnu.org Reporter: terra at gnome dot org Target Milestone: --- See https://sourceware.org/bugzilla/show_bug.cgi?id=23283 which is the same issue filed for gdb. There is a patch over there too. The demangler fails to demangle the symbol names that gcc generates when using, e.g., __attribute__((target("avx2"))). The trigger of the problem is the digit. welinder@dicentra:~> echo _Z3foov.avx2 | c++filt _Z3foov.avx2 welinder@dicentra:~> echo _Z3foov.avx | c++filt foo() [clone .avx] welinder@dicentra:~> echo _Z3foov.mooooo | c++filt foo() [clone .mooooo] welinder@dicentra:~> echo _Z3foov.mooooo2 | c++filt _Z3foov.mooooo2 Sample code that triggers the problem is below. Only the default and avx versions are demangled correctly. This affects breakpoints in gdb. __attribute__((target("default"))) inline int foo() { return 0; } __attribute__((target("sse2"))) inline int foo() { return 1; } __attribute__((target("avx"))) inline int foo() { return 2; } __attribute__((target("avx2"))) inline int foo() { return 3; } __attribute__((target("avx512f"))) inline int foo() { return 4; }