aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFritz Reese <fritzoreese@gmail.com>2016-08-23 19:33:46 +0000
committerFritz Reese <foreese@gcc.gnu.org>2016-08-23 19:33:46 +0000
commitcfe37db47a363d243f4e2e0a7d6b9b1bf429934b (patch)
tree80862b35f5b1ead92f59deb4d9d9c57f7a4dacc1 /gcc
parentc0ccddb46c11be096ab3b843b5b48104a11a7485 (diff)
downloadgcc-cfe37db47a363d243f4e2e0a7d6b9b1bf429934b.zip
gcc-cfe37db47a363d243f4e2e0a7d6b9b1bf429934b.tar.gz
gcc-cfe37db47a363d243f4e2e0a7d6b9b1bf429934b.tar.bz2
decl.c (gfc_match_structure_decl): Make gfc_structure_id static.
2016-08-23 Fritz Reese <fritzoreese@gmail.com> gcc/fortran/ * decl.c (gfc_match_structure_decl): Make gfc_structure_id static. gcc/testsuite/gfortran.dg/ * dec_structure_12.f90: New testcase. From-SVN: r239709
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog4
-rw-r--r--gcc/fortran/decl.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.dg/dec_structure_12.f9027
4 files changed, 36 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index d3273a8..6dc44e6 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,9 @@
2016-08-23 Fritz Reese <fritzoreese@gmail.com>
+ * decl.c (gfc_match_structure_decl): Make gfc_structure_id static.
+
+2016-08-23 Fritz Reese <fritzoreese@gmail.com>
+
* interface.c (compare_components): Fix typo in name check conditional.
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index ce5ebb7..ce7254f 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -8473,7 +8473,7 @@ match
gfc_match_structure_decl (void)
{
/* Counter used to give unique internal names to anonymous structures. */
- int gfc_structure_id = 0;
+ static unsigned int gfc_structure_id = 0;
char name[GFC_MAX_SYMBOL_LEN + 1];
gfc_symbol *sym;
match m;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8dcf3d7..4c45e35 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-08-23 Fritz Reese <fritzoreese@gmail.com>
+
+ * gfortran.dg/dec_structure_12.f90: New testcase.
+
2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
* gcc.target/s390/insv-1.c: Fix test when running with -m31.
diff --git a/gcc/testsuite/gfortran.dg/dec_structure_12.f90 b/gcc/testsuite/gfortran.dg/dec_structure_12.f90
new file mode 100644
index 0000000..b6cc5aa
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dec_structure_12.f90
@@ -0,0 +1,27 @@
+! { dg-do "compile" }
+! { dg-options "-fdec-structure" }
+!
+! Test a regression where multiple anonymous structures failed to
+! receive unique internal names.
+!
+
+implicit none
+
+structure /s/
+
+ structure record0 ! (2)
+ integer i
+ end structure
+
+ structure record1 ! regression: Type definition was already defined at (2)
+ real r
+ end structure
+
+end structure
+
+record /s/ var
+
+var.record0.i = 0
+var.record1.r = 0.0
+
+end