diff options
author | Kai Tietz <ktietz@redhat.com> | 2014-12-10 12:22:34 +0100 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2014-12-10 12:22:34 +0100 |
commit | e383e095ce0e6973f42a3d3948c667c60f0d82a8 (patch) | |
tree | 185b5fcfd593549e835f8a2d44184e4d9e3ddd86 | |
parent | e2c04e0888d15180cb89e496ce3c90da4462fe0b (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 6 |
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) |