diff options
author | Jason Merrill <jason@redhat.com> | 2019-08-06 10:07:59 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2019-08-06 10:07:59 -0400 |
commit | d40e36310722e63675d62711cad7d25393836a00 (patch) | |
tree | 5780be4efd59ee7d28deecce3135aeecd8b8102d /gcc/fortran/check.c | |
parent | 1a013865bed6ae419945945e418d078bf30f8b89 (diff) | |
download | gcc-d40e36310722e63675d62711cad7d25393836a00.zip gcc-d40e36310722e63675d62711cad7d25393836a00.tar.gz gcc-d40e36310722e63675d62711cad7d25393836a00.tar.bz2 |
PR c++/91378 - ICE with noexcept and auto return type.
Here, since the call to g is not type-dependent, we call mark_used on it to
determine its return type. This also wants to instantiate the
noexcept-expression. But since nothing in maybe_instantiate_noexcept was
calling push_to_top_level, we substituted b.i with processing_template_decl
set, so we left it unresolved for later access checking. As a result, the
type of C::g<int> remained instantiation-dependent, leading to an ICE in
type_dependent_expression_p on the assert that the type of a function
template with no dependent template arguments must be non-dependent.
* pt.c (maybe_instantiate_noexcept): push_to_top_level.
From-SVN: r274143
Diffstat (limited to 'gcc/fortran/check.c')
0 files changed, 0 insertions, 0 deletions