https://gcc.gnu.org/g:58a9f3ded1a0ccc2c8b0a42f976950041734798e
commit r15-2154-g58a9f3ded1a0ccc2c8b0a42f976950041734798e Author: Patrick Palka <ppa...@redhat.com> Date: Fri Jul 19 11:08:09 2024 -0400 c++: add fixed testcase [PR109464] Seems to be fixed by r15-521-g6ad7ca1bb90573. PR c++/109464 gcc/testsuite/ChangeLog: * g++.dg/template/explicit-instantiation8.C: New test. Diff: --- .../g++.dg/template/explicit-instantiation8.C | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gcc/testsuite/g++.dg/template/explicit-instantiation8.C b/gcc/testsuite/g++.dg/template/explicit-instantiation8.C new file mode 100644 index 000000000000..92152a2992e9 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/explicit-instantiation8.C @@ -0,0 +1,24 @@ +// PR c++/109464 +// { dg-do compile { target c++11 } } + +template<typename T> +struct shallow + { + int len; + constexpr shallow() : len(0) { } + }; + +template<typename T> +struct use_shallow + { + static constexpr shallow<T> s_zstr = { }; + static_assert(s_zstr.len == 0, ""); + }; + +extern template struct shallow<char>; +extern template struct use_shallow<char>; + +template struct shallow<char>; +template struct use_shallow<char>; + +// { dg-final { scan-assembler "_ZN7shallowIcEC2Ev" } }