summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/semantics.c3
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)
{