aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@gcc.gnu.org>2008-01-28 18:25:55 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2008-01-28 18:25:55 +0100
commit64a96f5bc3736c2d423823d1ca135eef3760cf6b (patch)
tree86a896609bc6e094eff7088fd1dd617ed383b6cc /gcc
parenta3a7c5df2edb4b6b9f9fbdbbea42f0b2e547ee6a (diff)
downloadgcc-64a96f5bc3736c2d423823d1ca135eef3760cf6b.zip
gcc-64a96f5bc3736c2d423823d1ca135eef3760cf6b.tar.gz
gcc-64a96f5bc3736c2d423823d1ca135eef3760cf6b.tar.bz2
[multiple changes]
2008-01-28 Tobias Burnus <burnus@net-b.de> PR libfortran/34980 * simplify.c (gfc_simplify_shape): Simplify rank zero arrays. 2008-01-28 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/34980 * gfortran.dg/shape_3.f90: New test. From-SVN: r131913
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/simplify.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/shape_3.f9011
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 282b06a..0923a77 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-28 Tobias Burnus <burnus@net-b.de>
+
+ PR libfortran/34980
+ * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
+
2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/34990
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 12be1e0..1b5b23e 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -3714,7 +3714,11 @@ gfc_simplify_shape (gfc_expr *source)
int n;
try t;
- if (source->rank == 0 || source->expr_type != EXPR_VARIABLE)
+ if (source->rank == 0)
+ return gfc_start_constructor (BT_INTEGER, gfc_default_integer_kind,
+ &source->where);
+
+ if (source->expr_type != EXPR_VARIABLE)
return NULL;
result = gfc_start_constructor (BT_INTEGER, gfc_default_integer_kind,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b2a322f..c13e906 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-28 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/34980
+ * gfortran.dg/shape_3.f90: New test.
+
2008-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.target/s390/20020926-1.c: Remove -m31.
diff --git a/gcc/testsuite/gfortran.dg/shape_3.f90 b/gcc/testsuite/gfortran.dg/shape_3.f90
new file mode 100644
index 0000000..ea725a0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/shape_3.f90
@@ -0,0 +1,11 @@
+! { dg-do run }
+! PR 34980 - we got a segfault for calling shape
+! with a scalar.
+program main
+ integer :: n
+ n = 5
+ open(10,status="scratch")
+ write (10,*) shape(n)
+ close(10,status="delete")
+end
+