diff --git a/interface/gbmv.c b/interface/gbmv.c index 8beea38ab..3abbbd0aa 100644 --- a/interface/gbmv.c +++ b/interface/gbmv.c @@ -226,6 +226,11 @@ void CNAME(enum CBLAS_ORDER order, if (incy < 0) y -= (leny-1)*incy; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP if (m * n < 250000 || kl+ku < 15 ) diff --git a/interface/gemm.c b/interface/gemm.c index 6cb351695..2aba7bed6 100644 --- a/interface/gemm.c +++ b/interface/gemm.c @@ -699,6 +699,11 @@ else #endif buffer = (XFLOAT *)blas_memory_alloc(0); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } //For LOONGARCH64, applying an offset to the buffer is essential //for minimizing cache conflicts and optimizing performance. diff --git a/interface/sbmv.c b/interface/sbmv.c index e9c3f9d9c..019c72c13 100644 --- a/interface/sbmv.c +++ b/interface/sbmv.c @@ -198,6 +198,11 @@ void CNAME(enum CBLAS_ORDER order, if (incy < 0 ) y -= (n - 1) * incy; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMPTEST nthreads = num_cpu_avail(2); diff --git a/interface/spmv.c b/interface/spmv.c index 7f06420ab..c2aca3786 100644 --- a/interface/spmv.c +++ b/interface/spmv.c @@ -182,6 +182,11 @@ void CNAME(enum CBLAS_ORDER order, if (incy < 0 ) y -= (n - 1) * incy; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMPTEST nthreads = num_cpu_avail(2); diff --git a/interface/spr.c b/interface/spr.c index 478d05396..dbe090b15 100644 --- a/interface/spr.c +++ b/interface/spr.c @@ -192,6 +192,11 @@ void CNAME(enum CBLAS_ORDER order, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP nthreads = num_cpu_avail(2); diff --git a/interface/spr2.c b/interface/spr2.c index 74754efee..90ca1c965 100644 --- a/interface/spr2.c +++ b/interface/spr2.c @@ -196,6 +196,11 @@ void CNAME(enum CBLAS_ORDER order, if (incy < 0 ) y -= (n - 1) * incy; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP nthreads = num_cpu_avail(2); diff --git a/interface/symm.c b/interface/symm.c index e0999b262..c1ab19608 100644 --- a/interface/symm.c +++ b/interface/symm.c @@ -405,6 +405,11 @@ if (strcmp(gotoblas_corename(), "armv9sme") == 0 FUNCTION_PROFILE_START(); buffer = (FLOAT *)blas_memory_alloc(0); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A); sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B); diff --git a/interface/symv.c b/interface/symv.c index 4ca890054..756252620 100644 --- a/interface/symv.c +++ b/interface/symv.c @@ -180,6 +180,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha, if (incy < 0 ) y -= (n - 1) * incy; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP if (n <200) diff --git a/interface/syr.c b/interface/syr.c index 3235282ae..a7581740f 100644 --- a/interface/syr.c +++ b/interface/syr.c @@ -195,6 +195,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP nthreads = num_cpu_avail(2); diff --git a/interface/syr2.c b/interface/syr2.c index a121441f5..795958a02 100644 --- a/interface/syr2.c +++ b/interface/syr2.c @@ -197,6 +197,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha, if (incy < 0 ) y -= (n - 1) * incy; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP nthreads = num_cpu_avail(2); diff --git a/interface/syr2k.c b/interface/syr2k.c index 70fc4f290..4b005d088 100644 --- a/interface/syr2k.c +++ b/interface/syr2k.c @@ -393,6 +393,11 @@ if (strcmp(gotoblas_corename(), "armv9sme") == 0 FUNCTION_PROFILE_START(); buffer = (FLOAT *)blas_memory_alloc(0); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A); sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B); diff --git a/interface/syrk.c b/interface/syrk.c index be92c207c..bfce536a0 100644 --- a/interface/syrk.c +++ b/interface/syrk.c @@ -376,6 +376,11 @@ if (strcmp(gotoblas_corename(), "armv9sme") == 0 FUNCTION_PROFILE_START(); buffer = (FLOAT *)blas_memory_alloc(0); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A); sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B); diff --git a/interface/tbmv.c b/interface/tbmv.c index da9d3a6ba..0317a06d2 100644 --- a/interface/tbmv.c +++ b/interface/tbmv.c @@ -223,6 +223,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP nthreads = num_cpu_avail(2); diff --git a/interface/tbsv.c b/interface/tbsv.c index b95f37389..7f4393c18 100644 --- a/interface/tbsv.c +++ b/interface/tbsv.c @@ -202,6 +202,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } (tbsv[(trans<<2) | (uplo<<1) | unit])(n, k, a, lda, x, incx, buffer); diff --git a/interface/tpmv.c b/interface/tpmv.c index 5b0168f3b..d818f30c6 100644 --- a/interface/tpmv.c +++ b/interface/tpmv.c @@ -221,6 +221,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP nthreads = num_cpu_avail(2); diff --git a/interface/tpsv.c b/interface/tpsv.c index 5357a0c79..09e6c334d 100644 --- a/interface/tpsv.c +++ b/interface/tpsv.c @@ -193,6 +193,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } (tpsv[(trans<<2) | (uplo<<1) | unit])(n, a, x, incx, buffer); diff --git a/interface/trmv.c b/interface/trmv.c index e881b5d93..d9beffd5a 100644 --- a/interface/trmv.c +++ b/interface/trmv.c @@ -218,6 +218,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP nthreads = num_cpu_avail(2); diff --git a/interface/trsv.c b/interface/trsv.c index 7a035de18..d1c069fc4 100644 --- a/interface/trsv.c +++ b/interface/trsv.c @@ -197,6 +197,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, if (incx < 0 ) x -= (n - 1) * incx; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } (trsv[(trans<<2) | (uplo<<1) | unit])(n, a, lda, x, incx, buffer); diff --git a/interface/zgbmv.c b/interface/zgbmv.c index 1b0c95876..09e5b2b44 100644 --- a/interface/zgbmv.c +++ b/interface/zgbmv.c @@ -251,6 +251,11 @@ void CNAME(enum CBLAS_ORDER order, if (incy < 0) y -= (leny - 1) * incy * 2; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP if (m * n < 125000 || ku + kl < 15) diff --git a/interface/zhbmv.c b/interface/zhbmv.c index 4abe33878..4ee7cc73b 100644 --- a/interface/zhbmv.c +++ b/interface/zhbmv.c @@ -204,6 +204,11 @@ void CNAME(enum CBLAS_ORDER order, if (incy < 0 ) y -= (n - 1) * incy * COMPSIZE; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMPBUG nthreads = num_cpu_avail(2); diff --git a/interface/zhemv.c b/interface/zhemv.c index 6186be371..3f5785c91 100644 --- a/interface/zhemv.c +++ b/interface/zhemv.c @@ -199,6 +199,11 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, void *VALPHA if (incy < 0 ) y -= (n - 1) * incy * 2; buffer = (FLOAT *)blas_memory_alloc(1); + if (!buffer) { + info = -999; + BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME)); + return; + } #ifdef SMP if (n