aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-11-27 09:51:32 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-11-27 09:51:32 +0000
commit598f8eca02c516a19abc957c3d4510e7c1c78214 (patch)
tree6d40cbe393975bacc7c92142d80a8806eb8653c9 /gcc/alias.c
parent642fce57a7208339a4f55ff8c3ce377a2cfa4738 (diff)
downloadgcc-598f8eca02c516a19abc957c3d4510e7c1c78214.zip
gcc-598f8eca02c516a19abc957c3d4510e7c1c78214.tar.gz
gcc-598f8eca02c516a19abc957c3d4510e7c1c78214.tar.bz2
re PR lto/63704 (-flto internal compiler error: in mems_in_disjoint_alias_sets_p, at alias.c:398)
2014-11-27 Richard Biener <rguenther@suse.de> PR middle-end/63704 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert and instead return false when !fstrict-aliasing. From-SVN: r218114
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index 425eb0b..22717ad 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -417,17 +417,9 @@ get_alias_set_entry (alias_set_type alias_set)
static inline int
mems_in_disjoint_alias_sets_p (const_rtx mem1, const_rtx mem2)
{
-/* Perform a basic sanity check. Namely, that there are no alias sets
- if we're not using strict aliasing. This helps to catch bugs
- whereby someone uses PUT_CODE, but doesn't clear MEM_ALIAS_SET, or
- where a MEM is allocated in some way other than by the use of
- gen_rtx_MEM, and the MEM_ALIAS_SET is not cleared. If we begin to
- use alias sets to indicate that spilled registers cannot alias each
- other, we might need to remove this check. */
- gcc_assert (flag_strict_aliasing
- || (!MEM_ALIAS_SET (mem1) && !MEM_ALIAS_SET (mem2)));
-
- return ! alias_sets_conflict_p (MEM_ALIAS_SET (mem1), MEM_ALIAS_SET (mem2));
+ return (flag_strict_aliasing
+ && ! alias_sets_conflict_p (MEM_ALIAS_SET (mem1),
+ MEM_ALIAS_SET (mem2)));
}
/* Return true if the first alias set is a subset of the second. */