diff options
author | Richard Biener <rguenther@suse.de> | 2017-08-22 11:10:28 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2017-08-22 11:10:28 +0000 |
commit | cd0835ce2d9d7f3450a5550497f313a1595ea68e (patch) | |
tree | 5f2e216336e2b7726e51ad31c3ef57745e44f93b /gcc/tree-inline.c | |
parent | 44d23deb477b55b753c0a1c5e2df683f94330f0d (diff) | |
download | gcc-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
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 13 |
1 files changed, 10 insertions, 3 deletions
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)); } |