From acc45438e98b0308c914056dda7bcb01cee81c44 Mon Sep 17 00:00:00 2001 From: jason Date: Thu, 15 Feb 2018 22:01:33 +0000 Subject: PR c++/84045 - ICE with typedef and noexcept. * except.c (build_noexcept_spec): Use strip_typedefs_expr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@257713 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/except.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/cp/except.c') diff --git a/gcc/cp/except.c b/gcc/cp/except.c index 669bf9f6eaf..0b46698b974 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); } } -- cgit v1.2.1