re PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual argument)
authorMikael Morin <mikael.morin@sfr.fr>
Thu, 7 Jul 2011 21:03:25 +0000 (23:03 +0200)
committerMikael Morin <mikael@gcc.gnu.org>
Thu, 7 Jul 2011 21:03:25 +0000 (21:03 +0000)
2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/49648
* gfortran.dg/result_in_spec_4.f90: New test.

From-SVN: r176012

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/result_in_spec_4.f90 [new file with mode: 0644]

index 63dda0097c30d01e1ab2a277324f94b2dbc56604..c57cb97105fb8c5f7feeabdd520edd0c09ccf466 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>
+
+       PR fortran/49648
+       * gfortran.dg/result_in_spec_4.f90: New test.
+
 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * gcc.target/sparc/cas64.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/result_in_spec_4.f90 b/gcc/testsuite/gfortran.dg/result_in_spec_4.f90
new file mode 100644 (file)
index 0000000..3f0e9a3
--- /dev/null
@@ -0,0 +1,27 @@
+! { dg-do compile }
+!
+! PR fortran/49648
+! ICE for calls to a use-associated function returning an array whose spec
+! depends on a function call.
+
+! Contributed by Tobias Burnus <burnus@net-b.de>
+
+module m2
+  COMPLEX, SAVE, ALLOCATABLE :: P(:)
+contains
+  FUNCTION getPhaseMatrix() RESULT(PM)
+    COMPLEX:: PM(SIZE(P),3)
+    PM=0.0
+  END FUNCTION
+end module m2
+
+module m
+  use m2
+contains
+   SUBROUTINE gf_generateEmbPot()
+      COMPLEX :: sigma2(3,3)
+      sigma2 = MATMUL(getPhaseMatrix(), sigma2)
+   END SUBROUTINE
+end module m
+
+! { dg-final { cleanup-modules "m m2" } }