http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58298
Yufeng Zhang yufeng at gcc dot gnu.org changed:
What|Removed |Added
CC||yufeng at gcc dot gnu.org
--- Comment #3 from Yufeng Zhang yufeng at gcc dot gnu.org ---
I briefly saw the issue on aarch64 and arm, but I think it has been fixed by
the following commit:
commit 8d4e699477b53778f0e933cb77d71e28a1e70536
Author: hubicka hubicka@138bc75d-0d04-0410-961f-82ee72b054a4
Date: Mon Sep 2 14:45:06 2013 +
* lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls):
DECL_FIELD_OFFSET can contain an reference to variable.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202174
138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index cf31c21..fe8e463 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,5 +1,10 @@
2013-08-31 Jan Hubicka j...@suse.cz
+ * lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls):
+ DECL_FIELD_OFFSET can contain an reference to variable.
+
+2013-08-31 Jan Hubicka j...@suse.cz
+
* lto.c (tree_with_vars): Turn into vector.
(MAYBE_REMEMBER_WITH_VARS): Change to...
(CHECK_VAR): ... this one.
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 1d1350b..0cea778 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -1389,7 +1389,7 @@ mentions_vars_p_field_decl (tree t)
{
if (mentions_vars_p_decl_common (t))
return true;
- CHECK_NO_VAR (DECL_FIELD_OFFSET (t));
+ CHECK_VAR (DECL_FIELD_OFFSET (t));
CHECK_NO_VAR (DECL_BIT_FIELD_TYPE (t));
CHECK_NO_VAR (DECL_QUALIFIER (t));
CHECK_NO_VAR (DECL_FIELD_BIT_OFFSET (t));
@@ -3207,7 +3207,7 @@ lto_fixup_prevailing_decls (tree t)
LTO_SET_PREVAIL (DECL_FUNCTION_PERSONALITY (t));
if (CODE_CONTAINS_STRUCT (code, TS_FIELD_DECL))
{
- LTO_NO_PREVAIL (DECL_FIELD_OFFSET (t));
+ LTO_SET_PREVAIL (DECL_FIELD_OFFSET (t));
LTO_NO_PREVAIL (DECL_BIT_FIELD_TYPE (t));
LTO_NO_PREVAIL (DECL_QUALIFIER (t));
LTO_NO_PREVAIL (DECL_FIELD_BIT_OFFSET (t));