https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121231
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org, | |ppalka at gcc dot gnu.org --- Comment #4 from Patrick Palka <ppalka at gcc dot gnu.org> --- The problem seems to be that mangle_template_parm_object returns the same mangling _ZTAXtl3FooLi1EEE, i.e. "Foo{1}", for both make_foo(true) and make_foo(false) which causes us to conflate the two specializations bar<make_foo(true)> and bar<make_foo(false)>, leading to wrong code. It seems the mangling for make_foo(false) is wrong? Clang mangles it as "Foo{0, 1}".