re PR fortran/84487 (Large rodate section increase in 465.tonto with r254427)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 3 Oct 2019 12:39:42 +0000 (12:39 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 3 Oct 2019 12:39:42 +0000 (12:39 +0000)
2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>

PR fortran/84487
* trans-decl.c (gfc_get_symbol_decl): For __def_init, set
DECL_ARTIFICAL and do not set TREE_READONLY.

2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>

PR fortran/84487
* gfortran.dg/typebound_call_22.f03: xfail.

From-SVN: r276506

gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/typebound_call_22.f03

index 64812f2..9367322 100644 (file)
@@ -1,3 +1,9 @@
+2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>
+
+       PR fortran/84487
+       * trans-decl.c (gfc_get_symbol_decl): For __def_init, set
+       DECL_ARTIFICAL and do not set TREE_READONLY.
+
 2019-10-03  Mark Eggleston  <mark.eggleston@codethink.com>
 
        * array.c (check_element_type): Call gfc_typename with the gfc_expr
index a113f08..b701f49 100644 (file)
@@ -1911,9 +1911,13 @@ gfc_get_symbol_decl (gfc_symbol * sym)
   if (sym->attr.associate_var)
     GFC_DECL_ASSOCIATE_VAR_P (decl) = 1;
 
+  /* We no longer mark __def_init as read-only so it does not take up
+     space in the read-only section and dan go into the BSS instead,
+     see PR 84487.  Marking this as artificial means that OpenMP will
+     treat this as predetermined shared.  */
   if (sym->attr.vtab
       || (sym->name[0] == '_' && gfc_str_startswith (sym->name, "__def_init")))
-    TREE_READONLY (decl) = 1;
+    DECL_ARTIFICIAL (decl) = 1;
 
   return decl;
 }
index 10de7b9..9acbf0e 100644 (file)
@@ -1,3 +1,8 @@
+2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>
+
+       PR fortran/84487
+       * gfortran.dg/typebound_call_22.f03: xfail.
+
 2019-10-03 Mark Eggleston <mark.eggleston@codethink.com>
 
        * gfortran.dg/bad_operands.f90: New test.
index b9f0b71..30f8693 100644 (file)
@@ -26,4 +26,4 @@ program test
   call x%bar ()
 end program
 
-! { dg-final { scan-tree-dump-times "base \\(\\);" 1 "optimized" } }
+! { dg-final { scan-tree-dump-times "base \\(\\);" 1 "optimized" { xfail *-*-* } } }