summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr24823.f
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/pr24823.f')
-rw-r--r--gcc/testsuite/gfortran.dg/pr24823.f78
1 files changed, 78 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr24823.f b/gcc/testsuite/gfortran.dg/pr24823.f
new file mode 100644
index 000000000..1b6f448d9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr24823.f
@@ -0,0 +1,78 @@
+! { dg-do compile }
+! { dg-options "-O2" }
+! PR24823 Flow didn't handle a PARALLEL as destination of a SET properly.
+ SUBROUTINE ZLATMR( M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX,
+ $ RSIGN, GRADE, DL, MODEL, CONDL, DR, MODER,
+ $ PACK, A, LDA, IWORK, INFO )
+ COMPLEX*16 A( LDA, * ), D( * ), DL( * ), DR( * )
+ LOGICAL BADPVT, DZERO, FULBND
+ COMPLEX*16 ZLATM2, ZLATM3
+ IF( IGRADE.EQ.4 .AND. MODEL.EQ.0 ) THEN
+ END IF
+ IF( IPVTNG.GT.0 ) THEN
+ END IF
+ IF( M.LT.0 ) THEN
+ ELSE IF( IPACK.EQ.-1 .OR. ( ( IPACK.EQ.1 .OR. IPACK.EQ.2 .OR.
+ $ IPACK.EQ.5 .OR. IPACK.EQ.6 ) .AND. ISYM.EQ.1 ) .OR.
+ $ ( IPACK.EQ.3 .AND. ISYM.EQ.1 .AND. ( KL.NE.0 .OR. M.NE.
+ $ 6 ) .AND. LDA.LT.KUU+1 ) .OR.
+ $ ( IPACK.EQ.7 .AND. LDA.LT.KLL+KUU+1 ) ) THEN
+ INFO = -26
+ END IF
+ IF( INFO.NE.0 ) THEN
+ RETURN
+ END IF
+ IF( KUU.EQ.N-1 .AND. KLL.EQ.M-1 )
+ $ FULBND = .TRUE.
+ IF( MODE.NE.0 .AND. MODE.NE.-6 .AND. MODE.NE.6 ) THEN
+ TEMP = ABS( D( 1 ) )
+ IF( TEMP.EQ.ZERO .AND. DMAX.NE.CZERO ) THEN
+ INFO = 2
+ END IF
+ END IF
+ IF( ISYM.EQ.0 ) THEN
+ END IF
+ IF( IGRADE.EQ.1 .OR. IGRADE.EQ.3 .OR. IGRADE.EQ.4 .OR. IGRADE.EQ.
+ $ 5 .OR. IGRADE.EQ.6 ) THEN
+ IF( INFO.NE.0 ) THEN
+ END IF
+ END IF
+ IF( FULBND ) THEN
+ IF( IPACK.EQ.0 ) THEN
+ IF( ISYM.EQ.0 ) THEN
+ CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
+ $ IWORK, SPARSE )
+ DO 120 I = 1, M
+ CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
+ $ IWORK, SPARSE )
+ 120 CONTINUE
+ END IF
+ IF( I.LT.1 ) THEN
+ IF( ISYM.EQ.0 ) THEN
+ A( J-I+1, I ) = DCONJG( ZLATM2( M, N, I, J, KL,
+ $ DR, IPVTNG, IWORK, SPARSE ) )
+ ELSE
+ A( J-I+1, I ) = ZLATM2( M, N, I, J, KL, KU,
+ $ IPVTNG, IWORK, SPARSE )
+ END IF
+ END IF
+ IF( ISYM.NE.1 ) THEN
+ IF( I.GE.1 .AND. I.NE.J ) THEN
+ IF( ISYM.EQ.0 ) THEN
+ END IF
+ END IF
+ A( I-J+KUU+1, J ) = ZLATM2( M, N, I, J, KL, KU,
+ $ DR, IPVTNG, IWORK, SPARSE )
+ END IF
+ END IF
+ END IF
+ IF( IPACK.EQ.0 ) THEN
+ ONORM = ZLANGB( 'M', N, KLL, KUU, A, LDA, TEMPA )
+ END IF
+ IF( ANORM.GE.ZERO ) THEN
+ IF( ANORM.GT.ZERO .AND. ONORM.EQ.ZERO ) THEN
+ IF( IPACK.LE.2 ) THEN
+ END IF
+ END IF
+ END IF
+ END