aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-06-06 18:55:28 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-06-06 18:55:28 -0400
commit330446eb5202e96528615a8961ecc12b956865bc (patch)
treecb2a75c34ea4906374c683b63e2c36ca49422c9a /gcc
parent32addcdf7b832f84fec9dca1ee8adba4b130fcd8 (diff)
downloadgcc-330446eb5202e96528615a8961ecc12b956865bc.zip
gcc-330446eb5202e96528615a8961ecc12b956865bc.tar.gz
gcc-330446eb5202e96528615a8961ecc12b956865bc.tar.bz2
(expand_expr, case PLACEHOLDER_EXPR): Consider two types identical if
their TYPE_MAIN_VARIANTs are the same. From-SVN: r9897
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index d4fc8fe..1bf40c8 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4366,7 +4366,8 @@ expand_expr (exp, target, tmode, modifier)
tree old_list = placeholder_list;
for (object = TREE_PURPOSE (placeholder_list);
- TREE_TYPE (object) != type
+ (TYPE_MAIN_VARIANT (TREE_TYPE (object))
+ != TYPE_MAIN_VARIANT (type))
&& (TREE_CODE_CLASS (TREE_CODE (object)) == 'r'
|| TREE_CODE_CLASS (TREE_CODE (object)) == '1'
|| TREE_CODE_CLASS (TREE_CODE (object)) == '2'
@@ -4374,7 +4375,9 @@ expand_expr (exp, target, tmode, modifier)
object = TREE_OPERAND (object, 0))
;
- if (object && TREE_TYPE (object) == type)
+ if (object != 0
+ && (TYPE_MAIN_VARIANT (TREE_TYPE (object))
+ == TYPE_MAIN_VARIANT (type)))
{
/* Expand this object skipping the list entries before
it was found in case it is also a PLACEHOLDER_EXPR.