diff options
author | julie <julielangou@users.noreply.github.com> | 2016-02-11 03:01:43 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2016-02-11 03:01:43 +0000 |
commit | 5829163f3e7dd1d1d662d5a1c074f160d2f6957a (patch) | |
tree | d838ea898809b2cbe2b18a5e94a1628c5ae4666f | |
parent | 365668214f69f100ea15a2a038dce94fead8fbb2 (diff) | |
download | lapack-5829163f3e7dd1d1d662d5a1c074f160d2f6957a.tar.gz lapack-5829163f3e7dd1d1d662d5a1c074f160d2f6957a.tar.bz2 lapack-5829163f3e7dd1d1d662d5a1c074f160d2f6957a.zip |
Applied patch provided by Dmitry Baksheev from Intel on Feb 9th 2016 on LAPACK Forum
Link: http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=4902&p=11774
Issue: ?TGSEN use of array SELECT on workspace query may SEGV
Solution: Skip use of array SELECT on workspace query
Make sense...
-rw-r--r-- | SRC/ctgsen.f | 2 | ||||
-rw-r--r-- | SRC/dtgsen.f | 2 | ||||
-rw-r--r-- | SRC/stgsen.f | 2 | ||||
-rw-r--r-- | SRC/ztgsen.f | 2 |
4 files changed, 8 insertions, 0 deletions
diff --git a/SRC/ctgsen.f b/SRC/ctgsen.f index d2ba8de8..894db3be 100644 --- a/SRC/ctgsen.f +++ b/SRC/ctgsen.f @@ -515,6 +515,7 @@ * subspaces. * M = 0 + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N ALPHA( K ) = A( K, K ) BETA( K ) = B( K, K ) @@ -526,6 +527,7 @@ $ M = M + 1 END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 2*M*(N-M) ) diff --git a/SRC/dtgsen.f b/SRC/dtgsen.f index 82b17626..11928c36 100644 --- a/SRC/dtgsen.f +++ b/SRC/dtgsen.f @@ -542,6 +542,7 @@ * M = 0 PAIR = .FALSE. + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N IF( PAIR ) THEN PAIR = .FALSE. @@ -561,6 +562,7 @@ END IF END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 4*N+16, 2*M*( N-M ) ) diff --git a/SRC/stgsen.f b/SRC/stgsen.f index 90e1d945..294d9b1c 100644 --- a/SRC/stgsen.f +++ b/SRC/stgsen.f @@ -541,6 +541,7 @@ * M = 0 PAIR = .FALSE. + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N IF( PAIR ) THEN PAIR = .FALSE. @@ -560,6 +561,7 @@ END IF END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 4*N+16, 2*M*(N-M) ) diff --git a/SRC/ztgsen.f b/SRC/ztgsen.f index 4c991ec4..4d5eae2e 100644 --- a/SRC/ztgsen.f +++ b/SRC/ztgsen.f @@ -518,6 +518,7 @@ * subspaces. * M = 0 + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N ALPHA( K ) = A( K, K ) BETA( K ) = B( K, K ) @@ -529,6 +530,7 @@ $ M = M + 1 END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 2*M*( N-M ) ) |