aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2019-10-03 12:39:42 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2019-10-03 12:39:42 +0000
commit3aad513c68676dc93ae24ed70022093dc3920e18 (patch)
treef9133b6f64f63b283db13b5e2f9c9a8ee52ae99b
parentf61e54e59cda5a2e281d525d3f87ffa179fae1ae (diff)
downloadgcc-3aad513c68676dc93ae24ed70022093dc3920e18.zip
gcc-3aad513c68676dc93ae24ed70022093dc3920e18.tar.gz
gcc-3aad513c68676dc93ae24ed70022093dc3920e18.tar.bz2
re PR fortran/84487 (Large rodate section increase in 465.tonto with r254427)
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
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-decl.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/typebound_call_22.f032
4 files changed, 17 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 64812f2..9367322 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index a113f08..b701f49 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -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;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 10de7b9..9acbf0e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/gfortran.dg/typebound_call_22.f03 b/gcc/testsuite/gfortran.dg/typebound_call_22.f03
index b9f0b71..30f8693 100644
--- a/gcc/testsuite/gfortran.dg/typebound_call_22.f03
+++ b/gcc/testsuite/gfortran.dg/typebound_call_22.f03
@@ -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 *-*-* } } }