Skip to content

Commit 687bec3

Browse files
authored
Merge pull request #773 from mgates3/tgsen
In LAPACKE tgsen, allocate iwork when ijob = 0. Fixes #772.
2 parents 690e111 + 01fb206 commit 687bec3

File tree

4 files changed

+20
-36
lines changed

4 files changed

+20
-36
lines changed

LAPACKE/src/lapacke_ctgsen.c

+5-9
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,10 @@ lapack_int LAPACKE_ctgsen( int matrix_layout, lapack_int ijob,
8686
liwork = iwork_query;
8787
lwork = LAPACK_C2INT( work_query );
8888
/* Allocate memory for work arrays */
89-
if( ijob != 0 ) {
90-
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
91-
if( iwork == NULL ) {
92-
info = LAPACK_WORK_MEMORY_ERROR;
93-
goto exit_level_0;
94-
}
89+
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
90+
if( iwork == NULL ) {
91+
info = LAPACK_WORK_MEMORY_ERROR;
92+
goto exit_level_0;
9593
}
9694
work = (lapack_complex_float*)
9795
LAPACKE_malloc( sizeof(lapack_complex_float) * lwork );
@@ -106,9 +104,7 @@ lapack_int LAPACKE_ctgsen( int matrix_layout, lapack_int ijob,
106104
/* Release memory and exit */
107105
LAPACKE_free( work );
108106
exit_level_1:
109-
if( ijob != 0 ) {
110-
LAPACKE_free( iwork );
111-
}
107+
LAPACKE_free( iwork );
112108
exit_level_0:
113109
if( info == LAPACK_WORK_MEMORY_ERROR ) {
114110
LAPACKE_xerbla( "LAPACKE_ctgsen", info );

LAPACKE/src/lapacke_dtgsen.c

+5-9
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,10 @@ lapack_int LAPACKE_dtgsen( int matrix_layout, lapack_int ijob,
8383
liwork = iwork_query;
8484
lwork = (lapack_int)work_query;
8585
/* Allocate memory for work arrays */
86-
if( ijob != 0 ) {
87-
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
88-
if( iwork == NULL ) {
89-
info = LAPACK_WORK_MEMORY_ERROR;
90-
goto exit_level_0;
91-
}
86+
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
87+
if( iwork == NULL ) {
88+
info = LAPACK_WORK_MEMORY_ERROR;
89+
goto exit_level_0;
9290
}
9391
work = (double*)LAPACKE_malloc( sizeof(double) * lwork );
9492
if( work == NULL ) {
@@ -103,9 +101,7 @@ lapack_int LAPACKE_dtgsen( int matrix_layout, lapack_int ijob,
103101
/* Release memory and exit */
104102
LAPACKE_free( work );
105103
exit_level_1:
106-
if( ijob != 0 ) {
107-
LAPACKE_free( iwork );
108-
}
104+
LAPACKE_free( iwork );
109105
exit_level_0:
110106
if( info == LAPACK_WORK_MEMORY_ERROR ) {
111107
LAPACKE_xerbla( "LAPACKE_dtgsen", info );

LAPACKE/src/lapacke_stgsen.c

+5-9
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,10 @@ lapack_int LAPACKE_stgsen( int matrix_layout, lapack_int ijob,
8383
liwork = iwork_query;
8484
lwork = (lapack_int)work_query;
8585
/* Allocate memory for work arrays */
86-
if( ijob != 0 ) {
87-
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
88-
if( iwork == NULL ) {
89-
info = LAPACK_WORK_MEMORY_ERROR;
90-
goto exit_level_0;
91-
}
86+
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
87+
if( iwork == NULL ) {
88+
info = LAPACK_WORK_MEMORY_ERROR;
89+
goto exit_level_0;
9290
}
9391
work = (float*)LAPACKE_malloc( sizeof(float) * lwork );
9492
if( work == NULL ) {
@@ -103,9 +101,7 @@ lapack_int LAPACKE_stgsen( int matrix_layout, lapack_int ijob,
103101
/* Release memory and exit */
104102
LAPACKE_free( work );
105103
exit_level_1:
106-
if( ijob != 0 ) {
107-
LAPACKE_free( iwork );
108-
}
104+
LAPACKE_free( iwork );
109105
exit_level_0:
110106
if( info == LAPACK_WORK_MEMORY_ERROR ) {
111107
LAPACKE_xerbla( "LAPACKE_stgsen", info );

LAPACKE/src/lapacke_ztgsen.c

+5-9
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,10 @@ lapack_int LAPACKE_ztgsen( int matrix_layout, lapack_int ijob,
8686
liwork = iwork_query;
8787
lwork = LAPACK_Z2INT( work_query );
8888
/* Allocate memory for work arrays */
89-
if( ijob != 0 ) {
90-
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
91-
if( iwork == NULL ) {
92-
info = LAPACK_WORK_MEMORY_ERROR;
93-
goto exit_level_0;
94-
}
89+
iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork );
90+
if( iwork == NULL ) {
91+
info = LAPACK_WORK_MEMORY_ERROR;
92+
goto exit_level_0;
9593
}
9694
work = (lapack_complex_double*)
9795
LAPACKE_malloc( sizeof(lapack_complex_double) * lwork );
@@ -106,9 +104,7 @@ lapack_int LAPACKE_ztgsen( int matrix_layout, lapack_int ijob,
106104
/* Release memory and exit */
107105
LAPACKE_free( work );
108106
exit_level_1:
109-
if( ijob != 0 ) {
110-
LAPACKE_free( iwork );
111-
}
107+
LAPACKE_free( iwork );
112108
exit_level_0:
113109
if( info == LAPACK_WORK_MEMORY_ERROR ) {
114110
LAPACKE_xerbla( "LAPACKE_ztgsen", info );

0 commit comments

Comments
 (0)