aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-08-22 11:10:28 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-08-22 11:10:28 +0000
commitcd0835ce2d9d7f3450a5550497f313a1595ea68e (patch)
tree5f2e216336e2b7726e51ad31c3ef57745e44f93b
parent44d23deb477b55b753c0a1c5e2df683f94330f0d (diff)
downloadgcc-cd0835ce2d9d7f3450a5550497f313a1595ea68e.zip
gcc-cd0835ce2d9d7f3450a5550497f313a1595ea68e.tar.gz
gcc-cd0835ce2d9d7f3450a5550497f313a1595ea68e.tar.bz2
tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT] to allow for free-lang-data replacements...
2017-08-22 Richard Biener <rguenther@suse.de> * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT] to allow for free-lang-data replacements similar to verify_type_variant. From-SVN: r251274
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-inline.c13
2 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6ecd626..bcd8684 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-08-22 Richard Biener <rguenther@suse.de>
+
+ * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
+ to allow for free-lang-data replacements similar to verify_type_variant.
+
2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index affde64..1652f2f 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -554,9 +554,16 @@ remap_type_1 (tree type, copy_body_data *id)
/* All variants of type share the same size, so use the already remaped data. */
if (TYPE_MAIN_VARIANT (new_tree) != new_tree)
{
- gcc_checking_assert (TYPE_SIZE (type) == TYPE_SIZE (TYPE_MAIN_VARIANT (type)));
- gcc_checking_assert (TYPE_SIZE_UNIT (type) == TYPE_SIZE_UNIT (TYPE_MAIN_VARIANT (type)));
-
+ tree s = TYPE_SIZE (type);
+ tree mvs = TYPE_SIZE (TYPE_MAIN_VARIANT (type));
+ tree su = TYPE_SIZE_UNIT (type);
+ tree mvsu = TYPE_SIZE_UNIT (TYPE_MAIN_VARIANT (type));
+ gcc_checking_assert ((TREE_CODE (s) == PLACEHOLDER_EXPR
+ && (TREE_CODE (mvs) == PLACEHOLDER_EXPR))
+ || s == mvs);
+ gcc_checking_assert ((TREE_CODE (su) == PLACEHOLDER_EXPR
+ && (TREE_CODE (mvsu) == PLACEHOLDER_EXPR))
+ || su == mvsu);
TYPE_SIZE (new_tree) = TYPE_SIZE (TYPE_MAIN_VARIANT (new_tree));
TYPE_SIZE_UNIT (new_tree) = TYPE_SIZE_UNIT (TYPE_MAIN_VARIANT (new_tree));
}