When running zchkaa.exe < ztest.in, the test program can seg fault
or cause memory overwrites because a pointer to INTEGER instead of
REAL or DOUBLE PRECISION workspace is passed to other routines.
The affected test routines are in the TESTING/LIN directory, and are:
zdrvhex.f (line 613)
cdrvhex.f (line 613)
zdrvsyx.f (line 619)
cdrvsyx.f (line 619)
Using zdrvhex.f as an example, line 613 looks like this:
CALL ZHESVXX( FACT, UPLO, N, NRHS, A, LDA, AFAC,
$ LDA, IWORK, EQUED, WORK( N+1 ), B, LDA, X,
$ LDA, RCOND, RPVGRW_SVXX, BERR, N_ERR_BNDS,
$ ERRBNDS_N, ERRBNDS_C, 0, ZERO, WORK,
$ IWORK( N+1 ), INFO )
The penultimate argument to ZHESVXX should be DOUBLE PRECISION,
but INTEGER array IWORK( N+1 ) is passed instead. Replacing IWORK( N+1 )
by RWORK seems to fix the problem.
Note that the corresponding REAL and DOUBLE PRECISION versions of the four
affected routines are OK - they do need to pass INTEGER workspace for this argument.
Mick Pont
NAG, Oxford

