aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2015-08-17 14:40:57 -0400
committerJason Merrill <jason@gcc.gnu.org>2015-08-17 14:40:57 -0400
commit5c563482ac83d8d2874f2cd4f608eae57d966dee (patch)
treeaf4a10d8886279611a97019b105aff591fe9ff51 /gcc
parent4e1492b7cdd05c8bf48ffc569ca8de86cb8e9237 (diff)
downloadgcc-5c563482ac83d8d2874f2cd4f608eae57d966dee.zip
gcc-5c563482ac83d8d2874f2cd4f608eae57d966dee.tar.gz
gcc-5c563482ac83d8d2874f2cd4f608eae57d966dee.tar.bz2
* except.c (check_noexcept_r): Assert that fn is POINTER_TYPE_P.
From-SVN: r226947
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/except.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a5a42ff1..595781c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+2015-08-17 Jason Merrill <jason@redhat.com>
+
+ * except.c (check_noexcept_r): Assert that fn is POINTER_TYPE_P.
+
2015-08-14 Jason Merrill <jason@redhat.com>
PR c++/65974
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index 6c36646..4f06f52 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -1155,7 +1155,9 @@ check_noexcept_r (tree *tp, int * /*walk_subtrees*/, void * /*data*/)
We could use TREE_NOTHROW (t) for !TREE_PUBLIC fns, though... */
tree fn = (code == AGGR_INIT_EXPR
? AGGR_INIT_EXPR_FN (t) : CALL_EXPR_FN (t));
- tree type = TREE_TYPE (TREE_TYPE (fn));
+ tree type = TREE_TYPE (fn);
+ gcc_assert (POINTER_TYPE_P (type));
+ type = TREE_TYPE (type);
STRIP_NOPS (fn);
if (TREE_CODE (fn) == ADDR_EXPR)