https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88413
--- Comment #2 from brennan at umanwizard dot com --- I find the opposite, on whatever ancient version of c++filt ships with macOS: $ c++filt --version GNU c++filt 070207 20070207 Copyright 2005 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. $ c++filt -n _Z1gIiEvP2S1IXsr2S2IT_EE3valEE void g<int>(S1<S2<int>::val>*) $ c++filt -n _Z1gIiEvP2S1IXsr2S2IT_E3valEE _Z1gIiEvP2S1IXsr2S2IT_E3valEE So either the change was introduced since that version of c++filt came out, *or* Apple modified it to match clang...