https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111613

--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
I suppose there is not much to do about past noread flags. I do not see how
optimization can invalidate other properties, so I am testing the following:

diff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc
index f994388a96a..53a2e35133d 100644
--- a/gcc/ipa-modref.cc
+++ b/gcc/ipa-modref.cc
@@ -3004,6 +3004,9 @@ analyze_parms (modref_summary *summary,
modref_summary_lto *summary_lto,
                     (past, ecf_flags,
                      VOID_TYPE_P (TREE_TYPE
                          (TREE_TYPE (current_function_decl))));
+         /* Store merging can produce reads when combining together multiple
+            bitfields.  See PR111613.  */
+         past &= ~(EAF_NO_DIRECT_READ | EAF_NO_INDIRECT_READ);
          if (dump_file && (flags | past) != flags && !(flags & EAF_UNUSED))
            {
              fprintf (dump_file,
  • [Bug ipa/111613] [12/13/14/15 R... hubicka at gcc dot gnu.org via Gcc-bugs

Reply via email to