diff --git a/testing/testing_zcesca.c b/testing/testing_zcesca.c
index 25c0b6631b1195e859a5d5f1723a09f774cbc35e..11c13503f7d9c699e92f5a59b6b64a6260974c62 100644
--- a/testing/testing_zcesca.c
+++ b/testing/testing_zcesca.c
@@ -112,7 +112,7 @@ testing_zcesca_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Create the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fill the matrix with random values */
     CHAMELEON_zplrnt( M, N, A, LDA, seedA );
diff --git a/testing/testing_zcheck_aux.c b/testing/testing_zcheck_aux.c
index 98ec027e8ea26ac3140d4269421e97f8d89c79f4..1c898a09b5f4a418279161e56653e3f9d2b0ebdd 100644
--- a/testing/testing_zcheck_aux.c
+++ b/testing/testing_zcheck_aux.c
@@ -83,7 +83,7 @@ int check_zmatrices_std( run_arg_list_t *args, cham_uplo_t uplo, int M, int N, C
     double Anorm, Rnorm, result;
     cham_fixdbl_t eps = testing_getaccuracy();
 
-    double *work = (double *)malloc( LDA*N*sizeof(double) );
+    double *work = (double *)malloc( (size_t) LDA*N*sizeof(double) );
 
     /* Computes the norms */
     if ( uplo == ChamUpperLower ) {
@@ -526,9 +526,9 @@ int check_zsum ( run_arg_list_t *args, cham_uplo_t uplo, cham_trans_t trans, CHA
     cham_uplo_t uploA            = uplo;
 
     if ( rank == 0 ) {
-        A     = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-        Bref  = malloc( LDB*N* sizeof(CHAMELEON_Complex64_t) );
-        Bcham = malloc( LDB*N* sizeof(CHAMELEON_Complex64_t) );
+        A     = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+        Bref  = malloc( (size_t) LDB*N* sizeof(CHAMELEON_Complex64_t) );
+        Bcham = malloc( (size_t) LDB*N* sizeof(CHAMELEON_Complex64_t) );
     }
 
     if ( uplo != ChamUpperLower && trans != ChamNoTrans ) {
@@ -704,8 +704,8 @@ int check_zrankk_std( run_arg_list_t *args, int M, int N, int K, CHAMELEON_Compl
     Anorm = LAPACKE_zlange( LAPACK_COL_MAJOR, 'F', M, N, A, LDA );
 
     /* check rank of A using SVD, value K+1 of Sigma must be small enough */
-    CHAMELEON_Complex64_t *U  = malloc( M * M * sizeof(CHAMELEON_Complex64_t) );
-    CHAMELEON_Complex64_t *VT = malloc( N * N * sizeof(CHAMELEON_Complex64_t) );
+    CHAMELEON_Complex64_t *U  = malloc( (size_t) M * M * sizeof(CHAMELEON_Complex64_t) );
+    CHAMELEON_Complex64_t *VT = malloc( (size_t) N * N * sizeof(CHAMELEON_Complex64_t) );
     double *S    = malloc( minMN * sizeof(double) );
     double *work = malloc( minMN * sizeof(double) );
 
@@ -769,7 +769,7 @@ int check_zrankk( run_arg_list_t *args, int K, CHAM_desc_t *descA )
     /* Converts the matrices to LAPACK layout in order to check values on the main process */
     CHAMELEON_Complex64_t *A = NULL;
     if ( rank == 0 ) {
-        A = malloc( M*N*sizeof(CHAMELEON_Complex64_t) );
+        A = malloc( (size_t) M*N*sizeof(CHAMELEON_Complex64_t) );
     }
     CHAMELEON_Desc2Lap( ChamUpperLower, descA, A, LDA );
 
diff --git a/testing/testing_zcheck_blas.c b/testing/testing_zcheck_blas.c
index 52cde80071bca1e7dd0bf05368849d4cf7d9cbc0..88b441a47908e99b098afa7bed3b859ee129144b 100644
--- a/testing/testing_zcheck_blas.c
+++ b/testing/testing_zcheck_blas.c
@@ -432,10 +432,10 @@ int check_zsymm( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_side_t s
     int LDC                     = M;
 
     if ( rank == 0 ) {
-        A    = ( CHAMELEON_Complex64_t * ) malloc( LDA*An*sizeof( CHAMELEON_Complex64_t ) );
-        B    = ( CHAMELEON_Complex64_t * ) malloc( LDB*N *sizeof( CHAMELEON_Complex64_t ) );
-        Cref = ( CHAMELEON_Complex64_t * ) malloc( LDC*N *sizeof( CHAMELEON_Complex64_t ) );
-        C    = ( CHAMELEON_Complex64_t * ) malloc( LDC*N *sizeof( CHAMELEON_Complex64_t ) );
+        A    = ( CHAMELEON_Complex64_t * ) malloc( (size_t) LDA*An*sizeof( CHAMELEON_Complex64_t ) );
+        B    = ( CHAMELEON_Complex64_t * ) malloc( (size_t) LDB*N *sizeof( CHAMELEON_Complex64_t ) );
+        Cref = ( CHAMELEON_Complex64_t * ) malloc( (size_t) LDC*N *sizeof( CHAMELEON_Complex64_t ) );
+        C    = ( CHAMELEON_Complex64_t * ) malloc( (size_t) LDC*N *sizeof( CHAMELEON_Complex64_t ) );
     }
 
     /* Creates the LAPACK version of the matrices */
@@ -691,12 +691,12 @@ int check_zsyrk( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_uplo_t u
     LDC = N;
 
     if ( rank == 0 ) {
-        A    = (CHAMELEON_Complex64_t *)malloc( LDA * An * sizeof(CHAMELEON_Complex64_t) );
+        A    = (CHAMELEON_Complex64_t *)malloc( (size_t) LDA * An * sizeof(CHAMELEON_Complex64_t) );
         if ( descB != NULL ) {
-            B = (CHAMELEON_Complex64_t *)malloc( LDB * Bn * sizeof(CHAMELEON_Complex64_t) );
+            B = (CHAMELEON_Complex64_t *)malloc( (size_t) LDB * Bn * sizeof(CHAMELEON_Complex64_t) );
         }
-        Cref = (CHAMELEON_Complex64_t *)malloc( LDC * N * sizeof(CHAMELEON_Complex64_t) );
-        C    = (CHAMELEON_Complex64_t *)malloc( LDC * N * sizeof(CHAMELEON_Complex64_t) );
+        Cref = (CHAMELEON_Complex64_t *)malloc( (size_t) LDC * N * sizeof(CHAMELEON_Complex64_t) );
+        C    = (CHAMELEON_Complex64_t *)malloc( (size_t) LDC * N * sizeof(CHAMELEON_Complex64_t) );
     }
 
     /* Creates the LAPACK version of the matrices */
@@ -899,9 +899,9 @@ int check_ztrmm( run_arg_list_t *args, int check_func, cham_side_t side, cham_up
     int LDB                     = M;
 
     if ( rank == 0 ) {
-        A    = (CHAMELEON_Complex64_t *)malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-        Bref = (CHAMELEON_Complex64_t *)malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
-        B    = (CHAMELEON_Complex64_t *)malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
+        A    = (CHAMELEON_Complex64_t *)malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+        Bref = (CHAMELEON_Complex64_t *)malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
+        B    = (CHAMELEON_Complex64_t *)malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
     }
 
     /* Creates the LAPACK version of the matrices */
diff --git a/testing/testing_zcheck_svd.c b/testing/testing_zcheck_svd.c
index 5bd7472227c110b9777fc0bde0ec8f96281cd8b9..cfcfece9f764ceb4569ec3fb8502971b990b1909 100644
--- a/testing/testing_zcheck_svd.c
+++ b/testing/testing_zcheck_svd.c
@@ -236,8 +236,8 @@ int check_zgesvd( run_arg_list_t *args, cham_job_t jobu, cham_job_t jobvt, CHAM_
     int LDA  = descA->lm;
 
     if ( rank == 0 ) {
-        Ainit = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
-        A     = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        Ainit = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        A     = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     }
 
     CHAMELEON_zDesc2Lap( ChamUpperLower, descAinit, Ainit, LDA );
diff --git a/testing/testing_zgeadd.c b/testing/testing_zgeadd.c
index 31f0bab8c96b35f0c266b190ae9ad89dc11cab0b..244b097ffc64d4d9fb4502cf363488892181ce21 100644
--- a/testing/testing_zgeadd.c
+++ b/testing/testing_zgeadd.c
@@ -147,8 +147,8 @@ testing_zgeadd_std( run_arg_list_t *args, int check )
     An = (trans == ChamNoTrans)? N : M;
 
     /* Create the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fill the matrix with random values */
     CHAMELEON_zplrnt( Am, An, A, LDA, seedA );
@@ -162,7 +162,7 @@ testing_zgeadd_std( run_arg_list_t *args, int check )
 
     /* Check the solution */
     if ( check ) {
-        CHAMELEON_Complex64_t *B0 = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *B0 = malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, N, B0, LDB, seedB );
 
         hres += check_zsum_std( args, ChamUpperLower, trans, M, N, alpha, A, LDA, beta, B0, B, LDB );
diff --git a/testing/testing_zgelqf.c b/testing/testing_zgelqf.c
index a6852560593e75bddbbe6356e465009165f4e048..71df7316e31b441ca726fed36f5c16bc59cc193b 100644
--- a/testing/testing_zgelqf.c
+++ b/testing/testing_zgelqf.c
@@ -135,7 +135,7 @@ testing_zgelqf_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
 
     /* Fills the matrix with random values */
@@ -149,8 +149,8 @@ testing_zgelqf_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *Qlap = malloc( N*N*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *A0   = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) N*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0   = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, A0, LDA, seedA );
 
diff --git a/testing/testing_zgelqf_hqr.c b/testing/testing_zgelqf_hqr.c
index ae3b805eb7ca067970df9e281d7bf29310012704..59fedc2d4cc372194c92bba20893d08ab12cc23b 100644
--- a/testing/testing_zgelqf_hqr.c
+++ b/testing/testing_zgelqf_hqr.c
@@ -144,7 +144,7 @@ testing_zgelqf_hqr_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_INNER_BLOCK_SIZE, ib );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descTS, P, Q );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descTT, P, Q );
 
@@ -167,8 +167,8 @@ testing_zgelqf_hqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *Qlap = malloc( N*N*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *A0   = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) N*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0   = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, A0, LDA, seedA );
 
diff --git a/testing/testing_zgels.c b/testing/testing_zgels.c
index 5a8caa56560797557aeeb474fc54c85a0eaee38e..09f5985ab927ddc8e36f712d6649fb94d7cc30d2 100644
--- a/testing/testing_zgels.c
+++ b/testing/testing_zgels.c
@@ -181,8 +181,8 @@ testing_zgels_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
 
     /* Fills the matrix with random values */
@@ -198,8 +198,8 @@ testing_zgels_std( run_arg_list_t *args, int check )
     if ( check ) {
         CHAMELEON_Complex64_t *A0, *B;
 
-        A0 = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-        B  = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        A0 = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+        B  = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M,     N,    A0, LDA, seedA );
         CHAMELEON_zplrnt( maxMN, NRHS, B,  LDB, seedB );
diff --git a/testing/testing_zgels_hqr.c b/testing/testing_zgels_hqr.c
index 2d240c4bf9f96b98c649d5e1d6f14e3611d32898..3ce8033238267a739f924098647235f515dd3f5e 100644
--- a/testing/testing_zgels_hqr.c
+++ b/testing/testing_zgels_hqr.c
@@ -184,8 +184,8 @@ testing_zgels_hqr_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_INNER_BLOCK_SIZE, ib );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descTS, P, Q );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descTT, P, Q );
 
@@ -211,8 +211,8 @@ testing_zgels_hqr_std( run_arg_list_t *args, int check )
     if ( check ) {
         CHAMELEON_Complex64_t *A0, *B;
 
-        A0 = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-        B  = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        A0 = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+        B  = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M,     N,    A0, LDA, seedA );
         CHAMELEON_zplrnt( maxMN, NRHS, B,  LDB, seedB );
diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c
index c0ff6b64eeddace560a859483e83d696937b2e0e..fa31d578d65d5962a72427d21540fec7ec39500a 100644
--- a/testing/testing_zgemm.c
+++ b/testing/testing_zgemm.c
@@ -184,9 +184,9 @@ testing_zgemm_std( run_arg_list_t *args, int check )
     }
 
     /* Create the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*Bn*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*Bn*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fill the matrices with random values */
     CHAMELEON_zplrnt( Am, An, A, LDA, seedA );
@@ -222,7 +222,7 @@ testing_zgemm_std( run_arg_list_t *args, int check )
     /* Check the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Cinit;
-        Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        Cinit = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, N, Cinit, LDC, seedC );
 
         hres += check_zgemm_std( args, transA, transB, alpha, M, N, K, A, LDA, B, LDB, beta, Cinit, C, LDC );
diff --git a/testing/testing_zgenm2.c b/testing/testing_zgenm2.c
index 3a1b87d65bfa5893414bb7d3f59f1a8e73392feb..0751ca9710821f703298a2070e91f66908029287 100644
--- a/testing/testing_zgenm2.c
+++ b/testing/testing_zgenm2.c
@@ -168,7 +168,7 @@ testing_zgenm2_std( run_arg_list_t *args, int check )
 #endif
 
     /* Creates the matrix */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     hres = CHAMELEON_zlatms( M, N, ChamDistUniform, seedA, ChamNonsymPosv, D, 0, cond, 0., A, LDA );
diff --git a/testing/testing_zgepdf_qdwh.c b/testing/testing_zgepdf_qdwh.c
index ea59e36a461b20853a75f89c049b5526229dd75f..d6896c5e3197b5eef47ae48f4634b60302f36713 100644
--- a/testing/testing_zgepdf_qdwh.c
+++ b/testing/testing_zgepdf_qdwh.c
@@ -162,8 +162,8 @@ testing_zgepdf_qdwh_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrix */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
-    H = malloc( LDB*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    H = malloc( (size_t) LDB*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     hres = CHAMELEON_zlatms( M, N, ChamDistUniform, seedA, ChamNonsymPosv, NULL, mode, cond, 1., A, LDA );
@@ -178,7 +178,7 @@ testing_zgepdf_qdwh_std( run_arg_list_t *args, int check )
      * with the call to CHAMELEON_zgepdf_qdwh).
      */
     if ( check ) {
-        A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zlacpy( ChamUpperLower, M, N, A, LDA, A0, LDA );
     }
 
diff --git a/testing/testing_zgeqrf.c b/testing/testing_zgeqrf.c
index 4971e6aa2d76769f761f196d9af2c47be903bce5..53c593ad4079c0f46050010c40e389828472ffb3 100644
--- a/testing/testing_zgeqrf.c
+++ b/testing/testing_zgeqrf.c
@@ -135,7 +135,7 @@ testing_zgeqrf_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
 
     /* Fills the matrix with random values */
@@ -149,8 +149,8 @@ testing_zgeqrf_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *Qlap = malloc( M*M*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *A0   = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) M*M*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0   = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, A0, LDA, seedA );
 
diff --git a/testing/testing_zgeqrf_hqr.c b/testing/testing_zgeqrf_hqr.c
index a1519bf7a09ebf01b1840e9f2e2d833f4fcc55a4..42a4f209d05f370acaf3559fd1c6dd959030e0dc 100644
--- a/testing/testing_zgeqrf_hqr.c
+++ b/testing/testing_zgeqrf_hqr.c
@@ -144,7 +144,7 @@ testing_zgeqrf_hqr_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_INNER_BLOCK_SIZE, ib );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descTS, P, Q );
     CHAMELEON_Alloc_Workspace_zgels( M, N, &descTT, P, Q );
 
@@ -167,8 +167,8 @@ testing_zgeqrf_hqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *Qlap = malloc( M*M*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *A0   = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) M*M*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0   = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, A0, LDA, seedA );
 
diff --git a/testing/testing_zgesv_nopiv.c b/testing/testing_zgesv_nopiv.c
index d1fd9b1df9c7b745c178f42b69892b781c87efed..46e946d9d4d3ec8208b3f0e9f0038910c2f2fd65 100644
--- a/testing/testing_zgesv_nopiv.c
+++ b/testing/testing_zgesv_nopiv.c
@@ -124,8 +124,8 @@ testing_zgesv_nopiv_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgtr( 0,    ChamUpper, N, N, A, LDA, seedA   );
@@ -142,8 +142,8 @@ testing_zgesv_nopiv_std( run_arg_list_t *args, int check )
     if ( check ) {
         CHAMELEON_Complex64_t *A0, *B;
 
-        A0 = malloc( LDA*N   *sizeof(CHAMELEON_Complex64_t) );
-        B  = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        A0 = malloc( (size_t) LDA*N   *sizeof(CHAMELEON_Complex64_t) );
+        B  = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplgtr( 0,    ChamUpper, N, N, A0, LDA, seedA   );
         CHAMELEON_zplgtr( bump, ChamLower, N, N, A0, LDA, seedA+1 );
         CHAMELEON_zplrnt( N, NRHS, B,  LDB, seedB );
diff --git a/testing/testing_zgesvd.c b/testing/testing_zgesvd.c
index 0997b8a925aa48da153cd832ad40a43ccfdebdf0..ae5602c183a6e7131b75dd2ba02c154c89f7f147 100644
--- a/testing/testing_zgesvd.c
+++ b/testing/testing_zgesvd.c
@@ -107,7 +107,7 @@ testing_zgesvd_desc( run_arg_list_t *args, int check )
 
     if ( (jobu == ChamAllVec) || (jobu == ChamSVec) ) {
         Un  = ( jobu == ChamSVec ) ? K : M;
-        U   = malloc( LDU*Un*sizeof(CHAMELEON_Complex64_t) );
+        U   = malloc( (size_t) LDU*Un*sizeof(CHAMELEON_Complex64_t) );
     }
     else {
         U = NULL;
@@ -115,7 +115,7 @@ testing_zgesvd_desc( run_arg_list_t *args, int check )
 
     if ( (jobvt == ChamAllVec) || (jobvt == ChamSVec) ) {
         LDVt = ( jobvt == ChamSVec ) ? K : N;
-        Vt   = malloc( LDVt*N*sizeof(CHAMELEON_Complex64_t) );
+        Vt   = malloc( (size_t) LDVt*N*sizeof(CHAMELEON_Complex64_t) );
     }
     else {
         Vt = NULL;
@@ -212,12 +212,12 @@ testing_zgesvd_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgesvd( M, N, &descT, 1, 1 );
 
     if ( (jobu == ChamAllVec) || (jobu == ChamSVec) ) {
         Un  = ( jobu == ChamSVec ) ? K : M;
-        U   = malloc( LDU*Un*sizeof(CHAMELEON_Complex64_t) );
+        U   = malloc( (size_t) LDU*Un*sizeof(CHAMELEON_Complex64_t) );
     }
     else {
         U = NULL;
@@ -225,7 +225,7 @@ testing_zgesvd_std( run_arg_list_t *args, int check )
 
     if ( (jobvt == ChamAllVec) || (jobvt == ChamSVec) ) {
         LDVt = ( jobvt == ChamSVec ) ? K : N;
-        Vt   = malloc( LDVt*N*sizeof(CHAMELEON_Complex64_t) );
+        Vt   = malloc( (size_t) LDVt*N*sizeof(CHAMELEON_Complex64_t) );
     }
     else {
         Vt = NULL;
@@ -250,7 +250,7 @@ testing_zgesvd_std( run_arg_list_t *args, int check )
      * with the call to CHAMELEON_zgepdf_qdwh).
      */
     if ( check ) {
-        A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zlacpy( ChamUpperLower, M, N, A, LDA, A0, LDA );
     }
 
diff --git a/testing/testing_zgetrf.c b/testing/testing_zgetrf.c
index 9bbc12c3a5b3240124a532945e7800e5a12147c2..310e5f5bf3f6f8890d16fc9da7b33f7f0f9770ed 100644
--- a/testing/testing_zgetrf.c
+++ b/testing/testing_zgetrf.c
@@ -180,7 +180,7 @@ testing_zgetrf_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     IPIV = malloc( minMN * sizeof(int) );
 
     /* Fills the matrix with random values */
@@ -216,7 +216,7 @@ testing_zgetrf_std( run_arg_list_t *args, int check )
 #if !defined(CHAMELEON_SIMULATION)
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, N, A0, LDA, seedA );
 
         /* Compute the permutation of A0: P * A0 */
diff --git a/testing/testing_zgetrf_nopiv.c b/testing/testing_zgetrf_nopiv.c
index 657513eaf26371399a7402e1e0b305afdc8fb854..51711401d19f59f7ad63d7d810802d472de4f944 100644
--- a/testing/testing_zgetrf_nopiv.c
+++ b/testing/testing_zgetrf_nopiv.c
@@ -100,7 +100,7 @@ testing_zgetrf_nopiv_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgtr( 0,    ChamUpper, M, N, A, LDA, seedA   );
@@ -114,7 +114,7 @@ testing_zgetrf_nopiv_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplgtr( 0,    ChamUpper, M, N, A0, LDA, seedA   );
         CHAMELEON_zplgtr( bump, ChamLower, M, N, A0, LDA, seedA+1 );
 
diff --git a/testing/testing_zgetrs_nopiv.c b/testing/testing_zgetrs_nopiv.c
index 4dc3631b4a788003e1c3bde704ddd0dfe8e610b3..f75048d01b5df9d2e8b1f11ea64f011f5a21ebbd 100644
--- a/testing/testing_zgetrs_nopiv.c
+++ b/testing/testing_zgetrs_nopiv.c
@@ -116,8 +116,8 @@ testing_zgetrs_nopiv_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgtr( 0,    ChamUpper, N, N, A, LDA, seedA   );
@@ -135,8 +135,8 @@ testing_zgetrs_nopiv_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *B  = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *B  = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplgtr( 0,    ChamUpper, N, N, A0, LDA, seedA   );
         CHAMELEON_zplgtr( bump, ChamLower, N, N, A0, LDA, seedA+1 );
diff --git a/testing/testing_zgram.c b/testing/testing_zgram.c
index 3683d136f3e5a2a60b753ffe74e024c9788b0f16..c974d5523e4e74c7c0f14d7e12e4c68574b1550f 100644
--- a/testing/testing_zgram.c
+++ b/testing/testing_zgram.c
@@ -111,7 +111,7 @@ testing_zgram_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Create the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fill the matrix with random values */
     CHAMELEON_zplghe( (double)N, uplo, N,A, LDA, seedA );
diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c
index c06fa651fb8051bdee95e18b669060e8ffa70e13..b17d9ea27ea04ff2ec12e0d01923e67ee3ed77a2 100644
--- a/testing/testing_zhemm.c
+++ b/testing/testing_zhemm.c
@@ -163,9 +163,9 @@ testing_zhemm_std( run_arg_list_t *args, int check )
     An = ( side == ChamLeft ) ? M : N;
 
     /* Create the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplghe( bump, uplo, An, A, LDA, seedA );
@@ -201,7 +201,7 @@ testing_zhemm_std( run_arg_list_t *args, int check )
     /* Checks the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Cinit;
-        Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        Cinit = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, N, Cinit, LDC, seedC );
 
         hres += check_zsymm_std( args, ChamHermitian, side, uplo, M, N, alpha, A, LDA, B, LDB, beta, Cinit, C, LDC );
diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c
index beaadfd6dd08170d14b258486f4e413b8a4e7b00..5a4d1433ffb8e05d6c5c6487184436b4bc89f6cb 100644
--- a/testing/testing_zher2k.c
+++ b/testing/testing_zher2k.c
@@ -167,9 +167,9 @@ testing_zher2k_std( run_arg_list_t *args, int check )
     }
 
     /* Create the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*Bn*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*Bn*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fill the matrix with random values */
     CHAMELEON_zplrnt( Am, An, A, LDA, seedA );
@@ -205,7 +205,7 @@ testing_zher2k_std( run_arg_list_t *args, int check )
     /* Check the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Cinit;
-        Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        Cinit = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplghe( bump, uplo, N, Cinit, LDC, seedC );
 
         hres += check_zsyrk_std( args, ChamHermitian, uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, Cinit, C, LDC );
diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c
index a850a99d2c59fd0c21efa3330e18884a7a1d58e3..dd11d04a3d200dd44333fff9adfe1322d545c165 100644
--- a/testing/testing_zherk.c
+++ b/testing/testing_zherk.c
@@ -156,8 +156,8 @@ testing_zherk_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt( Am, An, A, LDA, seedA );
@@ -192,7 +192,7 @@ testing_zherk_std( run_arg_list_t *args, int check )
     /* Checks the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Cinit;
-        Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        Cinit = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplghe( bump, uplo, N, Cinit, LDC, seedC );
 
         hres += check_zsyrk_std( args, ChamHermitian, uplo, trans, N, K, alpha, A, LDA, NULL, LDA, beta, Cinit, C, LDC );
diff --git a/testing/testing_zlacpy.c b/testing/testing_zlacpy.c
index 5642183e9f8a8e76a064cd24d0aec6faad036032..6d174ffb1ce5b11bf1882bd137a97281d3c72548 100644
--- a/testing/testing_zlacpy.c
+++ b/testing/testing_zlacpy.c
@@ -138,8 +138,8 @@ testing_zlacpy_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates two different matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills each matrix with different random values */
     CHAMELEON_zplrnt( M, N, A, LDA, seedA );
diff --git a/testing/testing_zlange.c b/testing/testing_zlange.c
index 262367c64ed3c6fbaddedd21b76ffd8b70625f09..f7dcb8b5e8429e51ad28ffff2f00ea4ab1d99b49 100644
--- a/testing/testing_zlange.c
+++ b/testing/testing_zlange.c
@@ -136,7 +136,7 @@ testing_zlange_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrix */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt( M, N, A, LDA, seedA );
diff --git a/testing/testing_zlanhe.c b/testing/testing_zlanhe.c
index 8115d231b28046f0222c54e758c68915eeea7e17..ceeceba02cdd482d158e90132ad8ae9b60e70f91 100644
--- a/testing/testing_zlanhe.c
+++ b/testing/testing_zlanhe.c
@@ -137,7 +137,7 @@ testing_zlanhe_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrix */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplghe( bump, uplo, N, A, LDA, seedA );
diff --git a/testing/testing_zlansy.c b/testing/testing_zlansy.c
index ef637fdae160e2f36402bae7ba5c6742ef6cd5ee..5cb7507ac00a69868801e546f58945b7b3409123 100644
--- a/testing/testing_zlansy.c
+++ b/testing/testing_zlansy.c
@@ -137,7 +137,7 @@ testing_zlansy_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrix */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgsy( bump, uplo, N, A, LDA, seedA );
diff --git a/testing/testing_zlantr.c b/testing/testing_zlantr.c
index cc7952cf2ace0b69d67995121f6970254904a4ee..71b8d6dd56a5552d74a3f5e71673da6e27d8eba7 100644
--- a/testing/testing_zlantr.c
+++ b/testing/testing_zlantr.c
@@ -160,7 +160,7 @@ testing_zlantr_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrix */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt( M, N, A, LDA, seedA );
diff --git a/testing/testing_zlascal.c b/testing/testing_zlascal.c
index 5a5364dca73f7c9c8e972d5200dcdccbda3b1a02..479a91f322c394ed3faa5f04e1d3ac6096dff788 100644
--- a/testing/testing_zlascal.c
+++ b/testing/testing_zlascal.c
@@ -131,7 +131,7 @@ testing_zlascal_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrix */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt( M, N, A, LDA, seedA );
diff --git a/testing/testing_zlauum.c b/testing/testing_zlauum.c
index 117328d569c4af576da932289d61c92d5ae8dbe2..2899c9dee3a94f7928052d9721a8e0389f4f0d29 100644
--- a/testing/testing_zlauum.c
+++ b/testing/testing_zlauum.c
@@ -106,7 +106,7 @@ testing_zlauum_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Initialises the matrices with the same values */
     CHAMELEON_zplghe( 0., uplo, N, A, LDA, seedA );
@@ -133,7 +133,7 @@ testing_zlauum_std( run_arg_list_t *args, int check )
     testing_stop( &test_data, flops_zlauum( N ) );
 
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplghe( 0., uplo, N, A0, LDA, seedA );
 
         hres += check_zlauum_std( args, uplo, N, A0, A, LDA );
diff --git a/testing/testing_zpoinv.c b/testing/testing_zpoinv.c
index 1f487fa9549f4a1aa5dfa84638f9e8df49d4a817..d6f35a056c2302c302e46af4eb8030d2b58c4e7f 100644
--- a/testing/testing_zpoinv.c
+++ b/testing/testing_zpoinv.c
@@ -109,7 +109,7 @@ testing_zpoinv_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Create the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Initialise the matrix with the random values */
     CHAMELEON_zplghe( (double)N, uplo, N, A, LDA, seedA );
@@ -129,7 +129,7 @@ testing_zpoinv_std( run_arg_list_t *args, int check )
 
     /* Check the inverse */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA * N * sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA * N * sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplghe( (double)N, uplo, N, A0, LDA, seedA );
 
         hres += check_ztrtri_std( args, ChamHermitian, uplo, ChamNonUnit, N, A0, A, LDA );
diff --git a/testing/testing_zposv.c b/testing/testing_zposv.c
index f231f4a317a2f44cd7fd89d9382411154540ef58..368821eedb10f575ed4f0b5d4405d3e041201540 100644
--- a/testing/testing_zposv.c
+++ b/testing/testing_zposv.c
@@ -131,8 +131,8 @@ testing_zposv_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N   *sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N   *sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplghe( (double)N, uplo, N, A, LDA, seedA );
@@ -167,8 +167,8 @@ testing_zposv_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *B  = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *B  = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
         /* Check the factorization */
         CHAMELEON_zplghe( (double)N, uplo, N, A0, LDA, seedA );
diff --git a/testing/testing_zpotrf.c b/testing/testing_zpotrf.c
index d083befbc83aa20c748503918114f3c6e01cb4b6..cf62105cc8d9f4a2ac1452372f331be8947f0794 100644
--- a/testing/testing_zpotrf.c
+++ b/testing/testing_zpotrf.c
@@ -103,7 +103,7 @@ testing_zpotrf_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplghe( (double)N, uplo, N, A, LDA, seedA );
@@ -137,7 +137,7 @@ testing_zpotrf_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplghe( (double)N, uplo, N, A0, LDA, seedA );
 
         hres += check_zxxtrf_std( args, ChamHermitian, uplo, N, N, A0, A, LDA );
diff --git a/testing/testing_zpotri.c b/testing/testing_zpotri.c
index 3afbcfa21ba4b5a7a95a05d42de8fd0686de2561..6b3c2fd24020b2138c170b848f2534c7c9c35f41 100644
--- a/testing/testing_zpotri.c
+++ b/testing/testing_zpotri.c
@@ -106,7 +106,7 @@ testing_zpotri_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Create the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Initialise the matrix with the random values */
     CHAMELEON_zplghe( (double)N, uplo, N, A, LDA, seedA );
@@ -147,7 +147,7 @@ testing_zpotri_std( run_arg_list_t *args, int check )
 
     /* Check the inverse */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplghe( (double)N, uplo, N, A0, LDA, seedA );
 
         hres += check_ztrtri_std( args, ChamHermitian, uplo, ChamNonUnit, N, A0, A, LDA );
diff --git a/testing/testing_zpotrs.c b/testing/testing_zpotrs.c
index 8bf6420fae349a64d128a3b4dedb240fcbe11d94..687a3d7c795e1ab78304df2b60e1784bad08dd0f 100644
--- a/testing/testing_zpotrs.c
+++ b/testing/testing_zpotrs.c
@@ -121,8 +121,8 @@ testing_zpotrs_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplghe( (double)N, uplo, N, A, LDA, seedA );
@@ -164,8 +164,8 @@ testing_zpotrs_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *B  = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *B  = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplghe( (double)N, ChamUpperLower, N, A0, LDA, seedA );
         CHAMELEON_zplrnt( N, NRHS, B, LDB, seedB );
diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c
index 257b1ae5c3bbac01d8d05c356bb2cdf9a63750e0..9165b869eb95fa98d44774d4a1ee0de0155b8e48 100644
--- a/testing/testing_zsymm.c
+++ b/testing/testing_zsymm.c
@@ -163,9 +163,9 @@ testing_zsymm_std( run_arg_list_t *args, int check )
     An = ( side == ChamLeft ) ? M : N;
 
     /* Create the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgsy( bump, uplo, An, A, LDA, seedA );
@@ -201,7 +201,7 @@ testing_zsymm_std( run_arg_list_t *args, int check )
     /* Checks the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Cinit;
-        Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        Cinit = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, N, Cinit, LDC, seedC );
 
         hres += check_zsymm_std( args, ChamSymmetric, side, uplo, M, N, alpha, A, LDA, B, LDB, beta, Cinit, C, LDC );
diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c
index cd9030091eb38927923c4b10017f01cafcebdcf7..08e7985a801e7b5472fe1489df08bd4039319ae5 100644
--- a/testing/testing_zsyr2k.c
+++ b/testing/testing_zsyr2k.c
@@ -167,9 +167,9 @@ testing_zsyr2k_std( run_arg_list_t *args, int check )
     }
 
     /* Create the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*Bn*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*Bn*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fill the matrix with random values */
     CHAMELEON_zplrnt( Am, An, A, LDA, seedA );
@@ -205,7 +205,7 @@ testing_zsyr2k_std( run_arg_list_t *args, int check )
     /* Check the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Cinit;
-        Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        Cinit = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplgsy( bump, uplo, N, Cinit, LDC, seedC );
 
         hres += check_zsyrk_std( args, ChamSymmetric, uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, Cinit, C, LDC );
diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c
index 6c0de64e3964f57de2ae84e394cdf7fba75d16fb..d182060c87ff8cbc9d219dcfd51f5403f3944a55 100644
--- a/testing/testing_zsyrk.c
+++ b/testing/testing_zsyrk.c
@@ -155,8 +155,8 @@ testing_zsyrk_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt( Am, An, A, LDA, seedA );
@@ -191,7 +191,7 @@ testing_zsyrk_std( run_arg_list_t *args, int check )
     /* Checks the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Cinit;
-        Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        Cinit = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplgsy( bump, uplo, N, Cinit, LDC, seedC );
 
         hres += check_zsyrk_std( args, ChamSymmetric, uplo, trans, N, K, alpha, A, LDA, NULL, LDA, beta, Cinit, C, LDC );
diff --git a/testing/testing_zsysv.c b/testing/testing_zsysv.c
index 4ae24d4fec3a861b10716f5f241c0c7b66fc62bf..35ef84ba0ac7e9865788e73665dcb6269537e04e 100644
--- a/testing/testing_zsysv.c
+++ b/testing/testing_zsysv.c
@@ -123,8 +123,8 @@ testing_zsysv_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgsy( (double)N, uplo, N, A, LDA, seedA );
@@ -141,13 +141,13 @@ testing_zsysv_std( run_arg_list_t *args, int check )
         CHAMELEON_Complex64_t *A0, *B;
 
         /* Check the factorization */
-        A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplgsy( (double)N, uplo, N, A0, LDA, seedA );
 
         hres += check_zxxtrf_std( args, ChamSymmetric, uplo, N, N, A0, A, LDA );
 
         /* Check the solve */
-        B = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        B = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( N, NRHS, B, LDB, seedB );
 
         CHAMELEON_zplgsy( (double)N, uplo, N, A0, LDA, seedA );
diff --git a/testing/testing_zsytrf.c b/testing/testing_zsytrf.c
index 0bc75fa82f1e5e967bc6a94c4aaaa91ad5f76901..2d42111fe968fd9803f076c54106289674fb4728 100644
--- a/testing/testing_zsytrf.c
+++ b/testing/testing_zsytrf.c
@@ -94,7 +94,7 @@ testing_zsytrf_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgsy( (double)N, uplo, N, A, LDA, seedA );
@@ -107,7 +107,7 @@ testing_zsytrf_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplgsy( (double)N, uplo, N, A0, LDA, seedA );
 
         hres += check_zxxtrf_std( args, ChamSymmetric, uplo, N, N, A0, A, LDA );
diff --git a/testing/testing_zsytrs.c b/testing/testing_zsytrs.c
index ed7fa090a3852f58df5abb4b4054c3308739c954..fb7fd0d20586ab5cece85eff78e748c3339669cf 100644
--- a/testing/testing_zsytrs.c
+++ b/testing/testing_zsytrs.c
@@ -113,8 +113,8 @@ testing_zsytrs_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-    X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+    X = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplgsy( (double)N, uplo, N, A, LDA, seedA );
@@ -131,8 +131,8 @@ testing_zsytrs_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and residue */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*   sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *B  = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*   sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *B  = malloc( (size_t) LDB*NRHS*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplgsy( (double)N, uplo, N, A0, LDA, seedA );
         CHAMELEON_zplrnt( N, NRHS, B, LDB, seedB );
diff --git a/testing/testing_ztradd.c b/testing/testing_ztradd.c
index 7ea8b8e7b614474c3b31ea6d479612a11d775873..a3412017b06195f9f1f47a4b5225700ddb4ad681 100644
--- a/testing/testing_ztradd.c
+++ b/testing/testing_ztradd.c
@@ -193,8 +193,8 @@ testing_ztradd_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*N* sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*N* sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     switch ( uplo ) {
@@ -218,7 +218,7 @@ testing_ztradd_std( run_arg_list_t *args, int check )
 
     /* Checks the solution */
     if ( check ) {
-        CHAMELEON_Complex64_t *B0 = malloc( LDB*N* sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *B0 = malloc( (size_t) LDB*N* sizeof(CHAMELEON_Complex64_t) );
 
         if ( uplo == ChamUpperLower ) {
             CHAMELEON_zplrnt( M, N, B0, LDB, seedB );
diff --git a/testing/testing_ztrmm.c b/testing/testing_ztrmm.c
index 9d4256dc014e8ca6a5d2908450d77775c7a35dd1..d9ecddad6e6f7941f8f239a6cf1afdbf4b5bcaf8 100644
--- a/testing/testing_ztrmm.c
+++ b/testing/testing_ztrmm.c
@@ -140,8 +140,8 @@ testing_ztrmm_std( run_arg_list_t *args, int check )
     An = ( side == ChamLeft ) ? M : N;
 
     /* Creates the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt( An, An, A, LDA, seedA );
@@ -177,7 +177,7 @@ testing_ztrmm_std( run_arg_list_t *args, int check )
     /* Checks the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Binit;
-        Binit = malloc( LDB*N*sizeof(CHAMELEON_Complex64_t) );
+        Binit = malloc( (size_t) LDB*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, N, Binit, LDB, seedB );
 
         hres += check_ztrmm_std( args, CHECK_TRMM, side, uplo, trans, diag, M, N, alpha, A, LDA, B, Binit, LDB );
diff --git a/testing/testing_ztrsm.c b/testing/testing_ztrsm.c
index bc63e1888a0546a423fea095fdf08c506d5b8423..c87f6e9eeaf86931be50e0dc06e4bb13eb77b4b3 100644
--- a/testing/testing_ztrsm.c
+++ b/testing/testing_ztrsm.c
@@ -132,8 +132,8 @@ testing_ztrsm_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    B = malloc( (size_t) LDB*N *sizeof(CHAMELEON_Complex64_t) );
 
     /* Fills the matrix with random values */
     /* We bump a little bit the diagonal to make it stable */
@@ -170,7 +170,7 @@ testing_ztrsm_std( run_arg_list_t *args, int check )
     /* Checks the solution */
     if ( check ) {
         CHAMELEON_Complex64_t *Binit;
-        Binit = malloc( LDB*N*sizeof(CHAMELEON_Complex64_t) );
+        Binit = malloc( (size_t) LDB*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, N, Binit, LDB, seedB );
 
         hres += check_ztrmm_std( args, CHECK_TRSM, side, uplo, trans, diag, M, N, alpha, A, LDA, B, Binit, LDB );
diff --git a/testing/testing_ztrtri.c b/testing/testing_ztrtri.c
index 322935c53d8b3aef8f6b607c0b139d48b3739e51..6bf5cec0d6e178ab09477485e7cbf7cca12be607 100644
--- a/testing/testing_ztrtri.c
+++ b/testing/testing_ztrtri.c
@@ -102,7 +102,7 @@ testing_ztrtri_std( run_arg_list_t *args, int check )
     CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb );
 
     /* Creates the matrices */
-    A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
 
     /* Initialises the matrices with the same values */
     CHAMELEON_zplghe( (double)N, uplo, N, A, LDA, seedA );
@@ -130,7 +130,7 @@ testing_ztrtri_std( run_arg_list_t *args, int check )
 
     /* Checks the inverse */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplghe( (double)N, uplo, N, A0, LDA, seedA );
 
         hres += check_ztrtri_std( args, ChamTriangular, uplo, diag, N, A0, A, LDA );
diff --git a/testing/testing_zunglq.c b/testing/testing_zunglq.c
index d631c9506250c9d16ef87a8864c5585b84fb82ad..b38d0374f720523a1d4c1805c11574afb2908a34 100644
--- a/testing/testing_zunglq.c
+++ b/testing/testing_zunglq.c
@@ -165,8 +165,8 @@ testing_zunglq_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A    = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
-    Qlap = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A    = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    Qlap = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( K, N, &descT, P, Q );
 
     /* Fills the matrix with random values */
@@ -187,7 +187,7 @@ testing_zunglq_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( K, N, A0, LDA, seedA );
 
         hres += check_zortho_std( args, M, N, Qlap, LDA );
diff --git a/testing/testing_zunglq_hqr.c b/testing/testing_zunglq_hqr.c
index c099bec595e77370dced98ae6785ea6707a08fe2..dcf4f891d7602f00541e51565a0913b19f52a377 100644
--- a/testing/testing_zunglq_hqr.c
+++ b/testing/testing_zunglq_hqr.c
@@ -175,8 +175,8 @@ testing_zunglq_hqr_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A    = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
-    Qlap = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A    = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    Qlap = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( K, N, &descTS, P, Q );
     CHAMELEON_Alloc_Workspace_zgels( K, N, &descTT, P, Q );
 
@@ -208,7 +208,7 @@ testing_zunglq_hqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( K, N, A0, LDA, seedA );
 
         hres += check_zortho_std( args, M, N, Qlap, LDA );
diff --git a/testing/testing_zungqr.c b/testing/testing_zungqr.c
index 6497ff066259d05b1ac6343d7b659c40f6a28efb..1ec9b56302ebe0509ca9415acc01604871352b6b 100644
--- a/testing/testing_zungqr.c
+++ b/testing/testing_zungqr.c
@@ -165,8 +165,8 @@ testing_zungqr_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A    = malloc( LDA*K*sizeof(CHAMELEON_Complex64_t) );
-    Qlap = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A    = malloc( (size_t) LDA*K*sizeof(CHAMELEON_Complex64_t) );
+    Qlap = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, K, &descT, P, Q );
 
     /* Fills the matrix with random values */
@@ -187,7 +187,7 @@ testing_zungqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*K*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*K*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, K, A0, LDA, seedA );
 
         hres += check_zortho_std( args, M, N, Qlap, LDA );
diff --git a/testing/testing_zungqr_hqr.c b/testing/testing_zungqr_hqr.c
index 3fa7b45d51272d365e95d06aa0d4122565b50441..bd37dfb94fd3efa0a3538fd7660f2de1e7a18856 100644
--- a/testing/testing_zungqr_hqr.c
+++ b/testing/testing_zungqr_hqr.c
@@ -175,8 +175,8 @@ testing_zungqr_hqr_std( run_arg_list_t *args, int check )
     }
 
     /* Creates the matrices */
-    A    = malloc( LDA*K*sizeof(CHAMELEON_Complex64_t) );
-    Qlap = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) );
+    A    = malloc( (size_t) LDA*K*sizeof(CHAMELEON_Complex64_t) );
+    Qlap = malloc( (size_t) LDA*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( M, K, &descTS, P, Q );
     CHAMELEON_Alloc_Workspace_zgels( M, K, &descTT, P, Q );
 
@@ -208,7 +208,7 @@ testing_zungqr_hqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *A0 = malloc( LDA*K*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *A0 = malloc( (size_t) LDA*K*sizeof(CHAMELEON_Complex64_t) );
         CHAMELEON_zplrnt( M, K, A0, LDA, seedA );
 
         hres += check_zortho_std( args, M, N, Qlap, LDA );
diff --git a/testing/testing_zunmlq.c b/testing/testing_zunmlq.c
index a974be8bf2dc6ad14f6bdf16c4f0524313cb43a7..5dc1b41d4b40352e84803abc3621126c4ee07931 100644
--- a/testing/testing_zunmlq.c
+++ b/testing/testing_zunmlq.c
@@ -162,8 +162,8 @@ testing_zunmlq_std( run_arg_list_t *args, int check )
     An = ( side == ChamLeft ) ? M : N;
 
     /* Creates the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( K, An, &descT, P, Q );
 
     /* Fills the matrix with random values */
@@ -181,8 +181,8 @@ testing_zunmlq_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *C0   = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *Qlap = malloc( An*An*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *C0   = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) An*An*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, C0, LDC, seedC );
         CHAMELEON_zunglq( An, An, K, A, LDA, descT, Qlap, An );
diff --git a/testing/testing_zunmlq_hqr.c b/testing/testing_zunmlq_hqr.c
index fbfc8f8789999368c35c6352cd69f22ea0f6299f..7399d260dfe8e453ea5a85cc8e01ad8bb617c071 100644
--- a/testing/testing_zunmlq_hqr.c
+++ b/testing/testing_zunmlq_hqr.c
@@ -170,8 +170,8 @@ testing_zunmlq_hqr_std( run_arg_list_t *args, int check )
     An = ( side == ChamLeft ) ? M : N;
 
     /* Creates the matrices */
-    A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*An*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N *sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( K, An, &descTS, P, Q );
     CHAMELEON_Alloc_Workspace_zgels( K, An, &descTT, P, Q );
 
@@ -198,8 +198,8 @@ testing_zunmlq_hqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *C0   = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *Qlap = malloc( An*An*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *C0   = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) An*An*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, C0, LDC, seedC );
         CHAMELEON_zunglq_param( &qrtree, An, An, K, A, LDA, descTS, descTT, Qlap, An );
diff --git a/testing/testing_zunmqr.c b/testing/testing_zunmqr.c
index dc98102002c52c63de900b9d18dd98978fcd3ee4..4217e59192362dc30441d935da316c07b457f3e8 100644
--- a/testing/testing_zunmqr.c
+++ b/testing/testing_zunmqr.c
@@ -162,8 +162,8 @@ testing_zunmqr_std( run_arg_list_t *args, int check )
     Am = ( side == ChamLeft ) ? M : N;
 
     /* Creates the matrices */
-    A = malloc( LDA*K*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*K*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( Am, K, &descT, P, Q );
 
     /* Fills the matrix with random values */
@@ -181,8 +181,8 @@ testing_zunmqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *C0   = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *Qlap = malloc( Am*Am*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *C0   = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) Am*Am*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, C0, LDC, seedC );
         CHAMELEON_zungqr( Am, Am, K, A, LDA, descT, Qlap, Am );
diff --git a/testing/testing_zunmqr_hqr.c b/testing/testing_zunmqr_hqr.c
index ed0eb243190046c7948a09d98cd52ae51f9e1897..3196b21a4f78ad6a4b9fd4014dd64ba097646ef6 100644
--- a/testing/testing_zunmqr_hqr.c
+++ b/testing/testing_zunmqr_hqr.c
@@ -170,8 +170,8 @@ testing_zunmqr_hqr_std( run_arg_list_t *args, int check )
     Am = ( side == ChamLeft ) ? M : N;
 
     /* Creates the matrices */
-    A = malloc( LDA*K*sizeof(CHAMELEON_Complex64_t) );
-    C = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
+    A = malloc( (size_t) LDA*K*sizeof(CHAMELEON_Complex64_t) );
+    C = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
     CHAMELEON_Alloc_Workspace_zgels( Am, K, &descTS, P, Q );
     CHAMELEON_Alloc_Workspace_zgels( Am, K, &descTT, P, Q );
 
@@ -198,8 +198,8 @@ testing_zunmqr_hqr_std( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        CHAMELEON_Complex64_t *C0   = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) );
-        CHAMELEON_Complex64_t *Qlap = malloc( Am*Am*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *C0   = malloc( (size_t) LDC*N*sizeof(CHAMELEON_Complex64_t) );
+        CHAMELEON_Complex64_t *Qlap = malloc( (size_t) Am*Am*sizeof(CHAMELEON_Complex64_t) );
 
         CHAMELEON_zplrnt( M, N, C0, LDC, seedC );
         CHAMELEON_zungqr_param( &qrtree, Am, Am, K, A, LDA, descTS, descTT, Qlap, Am );