diff options
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9cd2711e0a9..0d9be4fa49d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2012-03-27 Meador Inge <meadori@codesourcery.com> + + PR c++/52672 + * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold + stripped child trees that are not pointer types. + 2012-03-21 Jason Merrill <jason@redhat.com> Implement return type deduction for normal functions with -std=c++1y. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 6294e19af60..65b771f1ee2 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -7202,7 +7202,8 @@ cxx_fold_indirect_ref (location_t loc, tree type, tree op0, bool *empty_base) sub = op0; STRIP_NOPS (sub); subtype = TREE_TYPE (sub); - gcc_assert (POINTER_TYPE_P (subtype)); + if (!POINTER_TYPE_P (subtype)) + return NULL_TREE; if (TREE_CODE (sub) == ADDR_EXPR) { |