diff options
author | Jason Merrill <jason@redhat.com> | 2018-02-15 17:01:33 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-02-15 17:01:33 -0500 |
commit | dd39c7d1cbdd55657b7ef773f6fa743dcc328670 (patch) | |
tree | 94dfb136fe2661f4ce4b54e2db0e656b27b34abf /gcc/cp/except.c | |
parent | f3ad8745b0559b3abc4253dbc3a659295b142379 (diff) | |
download | gcc-dd39c7d1cbdd55657b7ef773f6fa743dcc328670.zip gcc-dd39c7d1cbdd55657b7ef773f6fa743dcc328670.tar.gz gcc-dd39c7d1cbdd55657b7ef773f6fa743dcc328670.tar.bz2 |
PR c++/84045 - ICE with typedef and noexcept.
* except.c (build_noexcept_spec): Use strip_typedefs_expr.
From-SVN: r257713
Diffstat (limited to 'gcc/cp/except.c')
-rw-r--r-- | gcc/cp/except.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cp/except.c b/gcc/cp/except.c index 669bf9f..0b46698 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -1217,6 +1217,10 @@ build_noexcept_spec (tree expr, int complain) { gcc_assert (processing_template_decl || TREE_CODE (expr) == DEFERRED_NOEXCEPT); + if (TREE_CODE (expr) != DEFERRED_NOEXCEPT) + /* Avoid problems with a function type built with a dependent typedef + being reused in another scope (c++/84045). */ + expr = strip_typedefs_expr (expr); return build_tree_list (expr, NULL_TREE); } } |