aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/data.c
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2021-03-08 21:59:20 +0100
committerHarald Anlauf <anlauf@gmx.de>2021-03-08 21:59:20 +0100
commitbd85b4dd2dd7b00b6342ed1e33fb48035a3dcb61 (patch)
tree2dfdb6edd0b710d9faf0c2368dc6053d5a0a0d53 /gcc/fortran/data.c
parentf3daa6c0fd8d79ae45eac2dd0f274da1aa71c958 (diff)
downloadgcc-bd85b4dd2dd7b00b6342ed1e33fb48035a3dcb61.zip
gcc-bd85b4dd2dd7b00b6342ed1e33fb48035a3dcb61.tar.gz
gcc-bd85b4dd2dd7b00b6342ed1e33fb48035a3dcb61.tar.bz2
PR fortran/49278 - ICE when combining DATA with default initialization
A variable with the PARAMETER attribute may not appear in a DATA statement. gcc/fortran/ChangeLog: PR fortran/49278 * data.c (gfc_assign_data_value): Reject variable with PARAMETER attribute in DATA statement. gcc/testsuite/ChangeLog: PR fortran/49278 * gfortran.dg/parameter_data.f90: New test.
Diffstat (limited to 'gcc/fortran/data.c')
-rw-r--r--gcc/fortran/data.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/fortran/data.c b/gcc/fortran/data.c
index 13e3506..25e9793 100644
--- a/gcc/fortran/data.c
+++ b/gcc/fortran/data.c
@@ -244,6 +244,13 @@ gfc_assign_data_value (gfc_expr *lvalue, gfc_expr *rvalue, mpz_t index,
"array-element nor a scalar-structure-component";
symbol = lvalue->symtree->n.sym;
+ if (symbol->attr.flavor == FL_PARAMETER)
+ {
+ gfc_error ("PARAMETER %qs shall not appear in a DATA statement at %L",
+ symbol->name, &lvalue->where);
+ return false;
+ }
+
init = symbol->value;
last_ts = &symbol->ts;
last_con = NULL;