summaryrefslogtreecommitdiff
path: root/gcc/ipa-reference.h
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-12-09 08:34:16 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-12-09 07:34:16 +0000
commit37074a02aee862ae15867e40aa5a12db616657b6 (patch)
treea589b3f752ddc9ef0c99801a8a2355889655a259 /gcc/ipa-reference.h
parent04d2fbcc5fa0a0464e847d1bf3faeb83d67711c2 (diff)
re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)
PR ipa/61886 PR middle-end/25140 * ipa-reference.c (is_improper): Break out from ... (is_proper_for_analysis): ... here; fix WRT aliases. (analyze_function, generate_summary, ipa_reference_write_optimization_summary, ipa_reference_read_optimization_summary): Use ipa_reference_var_uid. * ipa-refrence.h (ipa_reference_var_uid): New inline. * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Use ipa_reference_var_uid. * gcc.c-torture/execute/alias-3.c: New testcase. From-SVN: r231442
Diffstat (limited to 'gcc/ipa-reference.h')
-rw-r--r--gcc/ipa-reference.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ipa-reference.h b/gcc/ipa-reference.h
index 137d7e8a62d..6e9d6e70017 100644
--- a/gcc/ipa-reference.h
+++ b/gcc/ipa-reference.h
@@ -26,5 +26,11 @@ bitmap ipa_reference_get_not_read_global (struct cgraph_node *fn);
bitmap ipa_reference_get_not_written_global (struct cgraph_node *fn);
void ipa_reference_c_finalize (void);
+inline int
+ipa_reference_var_uid (tree t)
+{
+ return DECL_UID (symtab_node::get (t)->ultimate_alias_target (NULL)->decl);
+}
+
#endif /* GCC_IPA_REFERENCE_H */