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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The reason is that omp-low.cc creates a pointer to reference type, because an
automatic variable with REFERENCE_TYPE is not TREE_READONLY.
While we perhaps could tweak all spots in omp-low.cc that reference
TREE_READONLY to check also for REFERENCE_TYPE, I think the reason mentioned in
r11-16-ga2f32550a085984f is never the case for non-aggregate types.
So perhaps instead:
--- gcc/cp/decl.cc.jj   2022-11-19 09:21:14.662439877 +0100
+++ gcc/cp/decl.cc      2022-11-23 13:12:31.866553152 +0100
@@ -8679,8 +8679,10 @@ cp_finish_decl (tree decl, tree init, bo

       if (var_definition_p
          /* With -fmerge-all-constants, gimplify_init_constructor
-            might add TREE_STATIC to the variable.  */
-         && (TREE_STATIC (decl) || flag_merge_constants >= 2))
+            might add TREE_STATIC to aggregate variables.  */
+         && (TREE_STATIC (decl)
+             || (flag_merge_constants >= 2
+                 && AGGREGATE_TYPE_P (type))))
        {
          /* If a TREE_READONLY variable needs initialization
             at runtime, it is no longer readonly and we need to
?

Reply via email to