aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2014-12-10 12:22:34 +0100
committerKai Tietz <ktietz@gcc.gnu.org>2014-12-10 12:22:34 +0100
commite383e095ce0e6973f42a3d3948c667c60f0d82a8 (patch)
tree185b5fcfd593549e835f8a2d44184e4d9e3ddd86
parente2c04e0888d15180cb89e496ce3c90da4462fe0b (diff)
downloadgcc-e383e095ce0e6973f42a3d3948c667c60f0d82a8.zip
gcc-e383e095ce0e6973f42a3d3948c667c60f0d82a8.tar.gz
gcc-e383e095ce0e6973f42a3d3948c667c60f0d82a8.tar.bz2
re PR c++/64100 (A static assert using the the current class in a noexcept test leads to a segfault)
PR c++/64100 * typeck.c (lookup_destructor): Handle incomplete type. From-SVN: r218571
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/typeck.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 484dd28..a3d8d99 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-10 Kai Tietz <ktietz@redhat.com>
+
+ PR c++/64100
+ * typeck.c (lookup_destructor): Handle incomplete type.
+
2014-12-09 Jason Merrill <jason@redhat.com>
PR c++/64129
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index ae84b63..2abff6b 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -2536,6 +2536,12 @@ lookup_destructor (tree object, tree scope, tree dtor_name,
expr = lookup_member (dtor_type, complete_dtor_identifier,
/*protect=*/1, /*want_type=*/false,
tf_warning_or_error);
+ if (!expr)
+ {
+ if (complain & tf_error)
+ cxx_incomplete_type_error (dtor_name, dtor_type);
+ return error_mark_node;
+ }
expr = (adjust_result_of_qualified_name_lookup
(expr, dtor_type, object_type));
if (scope == NULL_TREE)