From 3aad513c68676dc93ae24ed70022093dc3920e18 Mon Sep 17 00:00:00 2001 From: Thomas Koenig Date: Thu, 3 Oct 2019 12:39:42 +0000 Subject: [PATCH] re PR fortran/84487 (Large rodate section increase in 465.tonto with r254427) 2019-10-03 Thomas Koenig 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 PR fortran/84487 * gfortran.dg/typebound_call_22.f03: xfail. From-SVN: r276506 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-decl.c | 6 +++++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/typebound_call_22.f03 | 2 +- 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 + + 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 * 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 + + PR fortran/84487 + * gfortran.dg/typebound_call_22.f03: xfail. + 2019-10-03 Mark Eggleston * 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 *-*-* } } } -- 2.7.4