]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorTobias Burnus <burnus@gcc.gnu.org>
Mon, 28 Jan 2008 17:25:55 +0000 (18:25 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Mon, 28 Jan 2008 17:25:55 +0000 (18:25 +0100)
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

gcc/fortran/ChangeLog
gcc/fortran/simplify.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/shape_3.f90 [new file with mode: 0644]

index 282b06a4de0681cf8593c704589fa1e5153e4802..0923a77720ab894f94c8468b8200c4e36d8e91c0 100644 (file)
@@ -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
index 12be1e08222254faeee1cafde0c52be1f6e4c2f4..1b5b23e2c0fffb30c1aa747f4cd6fc609b086a7d 100644 (file)
@@ -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,
index b2a322fcbcbbb30113f8bd8e8720df8f3a0449b7..c13e9068988452f8a0106469af7d685190b2bb87 100644 (file)
@@ -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 (file)
index 0000000..ea725a0
--- /dev/null
@@ -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
+