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 +0000 * 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));