From 5829163f3e7dd1d1d662d5a1c074f160d2f6957a Mon Sep 17 00:00:00 2001 From: julie Date: Thu, 11 Feb 2016 03:01:43 +0000 Subject: 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... --- SRC/ctgsen.f | 2 ++ SRC/dtgsen.f | 2 ++ SRC/stgsen.f | 2 ++ SRC/ztgsen.f | 2 ++ 4 files changed, 8 insertions(+) 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 ) ) -- cgit v1.2.3