diff options
author | Patrick Palka <ppalka@redhat.com> | 2023-06-29 16:10:18 -0400 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2023-06-29 16:10:18 -0400 |
commit | 9479da4515f7d019b4ef282d0e21536431c44f71 (patch) | |
tree | 7f0fc613a62b16dffb982faba3215a7a4f90063f /gcc/tree-vect-patterns.cc | |
parent | fd8a1be04d4cdbfefea457b99ed8404d77b35dd6 (diff) | |
download | gcc-9479da4515f7d019b4ef282d0e21536431c44f71.zip gcc-9479da4515f7d019b4ef282d0e21536431c44f71.tar.gz gcc-9479da4515f7d019b4ef282d0e21536431c44f71.tar.bz2 |
c++: NSDMI instantiation during overload resolution [PR110468]
Here we find ourselves instantiating the NSDMI for A<1>::m when
computing argument conversions during overload resolution, and
thus tf_conv is set. The flag causes mark_used for the constructor
used in the NSDMI to exit early and not instantiate its noexcept-spec,
which eventually leads to an ICE from nothrow_spec_p.
This patch fixes this by clearing any special tsubst flags during
instantiation of an NSDMI, since the result should be independent of
the context that requires the instantiation.
PR c++/110468
gcc/cp/ChangeLog:
* init.cc (maybe_instantiate_nsdmi_init): Mask out all
tsubst flags except for tf_warning_or_error.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/noexcept79.C: New test.
Diffstat (limited to 'gcc/tree-vect-patterns.cc')
0 files changed, 0 insertions, 0 deletions