aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-modref.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2021-12-13 17:29:26 +0100
committerJan Hubicka <jh@suse.cz>2021-12-13 17:30:13 +0100
commit16c848090f237c2398930b8c0ef75acebf4fa44d (patch)
treea4f3291b1af698d22a2ad009f2b08ffab81d3950 /gcc/ipa-modref.c
parent5954b4d415f6424f1232c6b22a772ce184773f54 (diff)
downloadgcc-16c848090f237c2398930b8c0ef75acebf4fa44d.zip
gcc-16c848090f237c2398930b8c0ef75acebf4fa44d.tar.gz
gcc-16c848090f237c2398930b8c0ef75acebf4fa44d.tar.bz2
Add -fipa-strict-aliasing
gcc/ChangeLog: 2021-12-13 Jan Hubicka <hubicka@ucw.cz> * common.opt: Add -fipa-strict-aliasing. * doc/invoke.texi: Document -fipa-strict-aliasing. * ipa-modref.c (modref_access_analysis::record_access): Honor -fipa-strict-aliasing. (modref_access_analysis::record_access_lto): Likewise.
Diffstat (limited to 'gcc/ipa-modref.c')
-rw-r--r--gcc/ipa-modref.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c
index 2c89c63..d6bd9d3 100644
--- a/gcc/ipa-modref.c
+++ b/gcc/ipa-modref.c
@@ -999,9 +999,11 @@ modref_access_analysis::record_access (modref_records *tt,
ao_ref *ref,
modref_access_node &a)
{
- alias_set_type base_set = !flag_strict_aliasing ? 0
+ alias_set_type base_set = !flag_strict_aliasing
+ || !flag_ipa_strict_aliasing ? 0
: ao_ref_base_alias_set (ref);
- alias_set_type ref_set = !flag_strict_aliasing ? 0
+ alias_set_type ref_set = !flag_strict_aliasing
+ || !flag_ipa_strict_aliasing ? 0
: (ao_ref_alias_set (ref));
if (dump_file)
{
@@ -1021,7 +1023,7 @@ modref_access_analysis::record_access_lto (modref_records_lto *tt, ao_ref *ref,
/* get_alias_set sometimes use different type to compute the alias set
than TREE_TYPE (base). Do same adjustments. */
tree base_type = NULL_TREE, ref_type = NULL_TREE;
- if (flag_strict_aliasing)
+ if (flag_strict_aliasing && flag_ipa_strict_aliasing)
{
tree base;