OSDN Git Service

PR debug/43329
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / pr24823.f
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