libgfortran/ChangeLog:
[official-gcc.git] / gcc / testsuite / gfortran.dg / pr24823.f
blob1b6f448d9d9f535510a7cd9e143c616b9db0e5e6
1 ! { dg-do compile }
2 ! { dg-options "-O2" }
3 ! PR24823 Flow didn't handle a PARALLEL as destination of a SET properly.
4 SUBROUTINE ZLATMR( M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX,
5 $ RSIGN, GRADE, DL, MODEL, CONDL, DR, MODER,
6 $ PACK, A, LDA, IWORK, INFO )
7 COMPLEX*16 A( LDA, * ), D( * ), DL( * ), DR( * )
8 LOGICAL BADPVT, DZERO, FULBND
9 COMPLEX*16 ZLATM2, ZLATM3
10 IF( IGRADE.EQ.4 .AND. MODEL.EQ.0 ) THEN
11 END IF
12 IF( IPVTNG.GT.0 ) THEN
13 END IF
14 IF( M.LT.0 ) THEN
15 ELSE IF( IPACK.EQ.-1 .OR. ( ( IPACK.EQ.1 .OR. IPACK.EQ.2 .OR.
16 $ IPACK.EQ.5 .OR. IPACK.EQ.6 ) .AND. ISYM.EQ.1 ) .OR.
17 $ ( IPACK.EQ.3 .AND. ISYM.EQ.1 .AND. ( KL.NE.0 .OR. M.NE.
18 $ 6 ) .AND. LDA.LT.KUU+1 ) .OR.
19 $ ( IPACK.EQ.7 .AND. LDA.LT.KLL+KUU+1 ) ) THEN
20 INFO = -26
21 END IF
22 IF( INFO.NE.0 ) THEN
23 RETURN
24 END IF
25 IF( KUU.EQ.N-1 .AND. KLL.EQ.M-1 )
26 $ FULBND = .TRUE.
27 IF( MODE.NE.0 .AND. MODE.NE.-6 .AND. MODE.NE.6 ) THEN
28 TEMP = ABS( D( 1 ) )
29 IF( TEMP.EQ.ZERO .AND. DMAX.NE.CZERO ) THEN
30 INFO = 2
31 END IF
32 END IF
33 IF( ISYM.EQ.0 ) THEN
34 END IF
35 IF( IGRADE.EQ.1 .OR. IGRADE.EQ.3 .OR. IGRADE.EQ.4 .OR. IGRADE.EQ.
36 $ 5 .OR. IGRADE.EQ.6 ) THEN
37 IF( INFO.NE.0 ) THEN
38 END IF
39 END IF
40 IF( FULBND ) THEN
41 IF( IPACK.EQ.0 ) THEN
42 IF( ISYM.EQ.0 ) THEN
43 CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
44 $ IWORK, SPARSE )
45 DO 120 I = 1, M
46 CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
47 $ IWORK, SPARSE )
48 120 CONTINUE
49 END IF
50 IF( I.LT.1 ) THEN
51 IF( ISYM.EQ.0 ) THEN
52 A( J-I+1, I ) = DCONJG( ZLATM2( M, N, I, J, KL,
53 $ DR, IPVTNG, IWORK, SPARSE ) )
54 ELSE
55 A( J-I+1, I ) = ZLATM2( M, N, I, J, KL, KU,
56 $ IPVTNG, IWORK, SPARSE )
57 END IF
58 END IF
59 IF( ISYM.NE.1 ) THEN
60 IF( I.GE.1 .AND. I.NE.J ) THEN
61 IF( ISYM.EQ.0 ) THEN
62 END IF
63 END IF
64 A( I-J+KUU+1, J ) = ZLATM2( M, N, I, J, KL, KU,
65 $ DR, IPVTNG, IWORK, SPARSE )
66 END IF
67 END IF
68 END IF
69 IF( IPACK.EQ.0 ) THEN
70 ONORM = ZLANGB( 'M', N, KLL, KUU, A, LDA, TEMPA )
71 END IF
72 IF( ANORM.GE.ZERO ) THEN
73 IF( ANORM.GT.ZERO .AND. ONORM.EQ.ZERO ) THEN
74 IF( IPACK.LE.2 ) THEN
75 END IF
76 END IF
77 END IF
78 END