diff --git a/control/descriptor.c b/control/descriptor.c
index b7963cf76d9173c5e11dde119e525827fd514e73..69d189a29a2012c155693552c2a023cf1c1c5641 100644
--- a/control/descriptor.c
+++ b/control/descriptor.c
@@ -610,6 +610,10 @@ int MORSE_Desc_Create_OOC_User(MORSE_desc_t **descptr, MORSE_enum dtyp, int mb,
                                int (*get_rankof)( const MORSE_desc_t*, int, int ))
 {
 #if !defined (CHAMELEON_SCHED_STARPU)
+    (void)descptr; (void)dtyp; (void)mb; (void)nb; (void)bsiz;
+    (void)lm; (void)ln; (void)i; (void)j; (void)m; (void)n; (void)p; (void)q;
+    (void)get_rankof;
+
     morse_error("MORSE_Desc_Create_OOC_User", "Only StarPU supports on-demand tile allocation");
     return MORSE_ERR_NOT_INITIALIZED;
 #else
diff --git a/control/descriptor.h b/control/descriptor.h
index 0d3d2173bd130d2dea2722eda16b2d4ffb56231b..7972ea05c574cc87ddfeaf6329101c096c886cb5 100644
--- a/control/descriptor.h
+++ b/control/descriptor.h
@@ -127,6 +127,7 @@ inline static void *morse_getaddr_cm(const MORSE_desc_t *A, int m, int n)
  **/
 inline static void *morse_getaddr_null(const MORSE_desc_t *A, int m, int n)
 {
+    (void)A; (void)m; (void)n;
     return NULL;
 }
 
diff --git a/runtime/quark/codelets/codelet_dataflush.c b/runtime/quark/codelets/codelet_dataflush.c
index 65e000317196ead791215e69d98656c0e4f797ec..1334e8959aed3ce506bb835f52b17013a3b34153 100644
--- a/runtime/quark/codelets/codelet_dataflush.c
+++ b/runtime/quark/codelets/codelet_dataflush.c
@@ -29,7 +29,7 @@
 void MORSE_TASK_dataflush(const MORSE_option_t *options,
                           const MORSE_desc_t *A, int Am, int An)
 {
-    (void)options; (void)A;
+    (void)options; (void)A; (void)Am; (void)An;
 
     /*
      * This is useful for StarPU implementation, if it happens in Quark, it will
diff --git a/runtime/quark/codelets/codelet_zgeadd.c b/runtime/quark/codelets/codelet_zgeadd.c
index 7a9e8af105f0ea9dcdaead84f8b0221f75529ef7..4fc1c22cf51d29cebf820a9b39442e753686dc5e 100644
--- a/runtime/quark/codelets/codelet_zgeadd.c
+++ b/runtime/quark/codelets/codelet_zgeadd.c
@@ -117,4 +117,6 @@ void MORSE_TASK_zgeadd(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ldb*n,    RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn),             INOUT,
         sizeof(int),                        &ldb,   VALUE,
         0);
+
+    (void)nb;
 }
diff --git a/runtime/quark/codelets/codelet_zgetrf_incpiv.c b/runtime/quark/codelets/codelet_zgetrf_incpiv.c
index dacb1c0d8d5d56285ce708737ce52b6d987040cb..d383dd2f5e0f66239cfdc6b4c298a688d79a8836 100644
--- a/runtime/quark/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/quark/codelets/codelet_zgetrf_incpiv.c
@@ -107,6 +107,8 @@ void MORSE_TASK_zgetrf_incpiv(const MORSE_option_t *options,
         sizeof(MORSE_bool),                &check_info,    VALUE,
         sizeof(int),                        &iinfo,         VALUE,
         0);
+
+    (void)L; (void)Lm; (void)Ln; (void)ldl;
 }
 
 
diff --git a/runtime/quark/codelets/codelet_ztradd.c b/runtime/quark/codelets/codelet_ztradd.c
index cd7919d90cad7a540237088631ce5ffb82f457df..f5b566b5188bf75634fe121d09d97a333076a380 100644
--- a/runtime/quark/codelets/codelet_ztradd.c
+++ b/runtime/quark/codelets/codelet_ztradd.c
@@ -123,5 +123,7 @@ void MORSE_TASK_ztradd(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t)*ldb*n,    RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn),             INOUT,
         sizeof(int),                        &ldb,   VALUE,
         0);
+
+    (void)nb;
 }
 
diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index 62b84a75286729194f2037807fd2405ad2ca11e6..6a05ce8baf0822c7222523f1d735ed9faf89f6e5 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -322,33 +322,28 @@ void *RUNTIME_desc_getaddr( const MORSE_desc_t *desc, int m, int n )
     int64_t im = m + (desc->i / desc->mb);
     int64_t jn = n + (desc->j / desc->nb);
 
-    starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(desc->schedopt);
-    ptrtile += ((int64_t)(desc->lmt) * (int64_t)jn + (int64_t)im);
+    starpu_data_handle_t *ptrtile = desc->schedopt;
+    ptrtile += ((int64_t)desc->lmt) * jn + im;
 
     if (*ptrtile == NULL) {
-        int64_t eltsze = MORSE_Element_Size(desc->dtyp);
+        int home_node = -1;
+        void *user_ptr = NULL;
         int myrank = desc->myrank;
         int owner  = desc->get_rankof( desc, m, n );
+        int64_t eltsze = MORSE_Element_Size(desc->dtyp);
         int tempmm = (im == desc->lmt-1) ? (desc->lm - im * desc->mb) : desc->mb;
         int tempnn = (jn == desc->lnt-1) ? (desc->ln - jn * desc->nb) : desc->nb;
 
         if ( myrank == owner ) {
-            if ( desc->get_blkaddr(desc, m, n) == (void*)NULL ) {
-                starpu_matrix_data_register(ptrtile, -1,
-                                            (uintptr_t) NULL,
-                                            BLKLDD(desc, im), tempmm, tempnn, eltsze);
-            }
-            else {
-                starpu_matrix_data_register(ptrtile, STARPU_MAIN_RAM,
-                                            (uintptr_t)desc->get_blkaddr(desc, m, n),
-                                            BLKLDD(desc, im), tempmm, tempnn, eltsze);
+            user_ptr = desc->get_blkaddr(desc, m, n);
+            if ( user_ptr != NULL ) {
+                home_node = STARPU_MAIN_RAM;
             }
         }
-        else {
-            starpu_matrix_data_register(ptrtile, -1,
-                                        (uintptr_t) NULL,
-                                        BLKLDD(desc, im), tempmm, tempnn, eltsze);
-        }
+
+        starpu_matrix_data_register(ptrtile, home_node, (uintptr_t) user_ptr,
+                                    BLKLDD(desc, im),
+                                    tempmm, tempnn, eltsze);
 
 #ifdef HAVE_STARPU_DATA_SET_COORDINATES
         starpu_data_set_coordinates(*ptrtile, 2, m, n);
@@ -362,5 +357,5 @@ void *RUNTIME_desc_getaddr( const MORSE_desc_t *desc, int m, int n )
 #endif /* defined(CHAMELEON_USE_MPI) */
     }
 
-    return (void *)(*ptrtile);
+    return *ptrtile;
 }
diff --git a/timing/time_zgeqrf_tile.c b/timing/time_zgeqrf_tile.c
index 9980e56afdf16ec6f3ba82c5b84c58d251390f2c..8e461df50cf54c84a5fe4953907b51db5cf3603a 100644
--- a/timing/time_zgeqrf_tile.c
+++ b/timing/time_zgeqrf_tile.c
@@ -33,14 +33,14 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
     /* Allocate Data */
     PASTE_CODE_ALLOCATE_MATRIX_TILE( descA,  1, MORSE_Complex64_t, MorseComplexDouble, LDA, M, N );
     PASTE_CODE_ALLOCATE_MATRIX_TILE( descX,  ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDB, M, NRHS );
-    PASTE_CODE_ALLOCATE_MATRIX_TILE( descAC, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDA, M, N    );
+    PASTE_CODE_ALLOCATE_MATRIX_TILE( descA0, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDA, M, N    );
     PASTE_CODE_ALLOCATE_MATRIX_TILE( descB,  ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDB, M, NRHS );
 
     MORSE_zplrnt_Tile( descA, 5373 );
 
     /* Save A for check */
     if (check == 1 && M == N){
-        MORSE_zlacpy_Tile(MorseUpperLower, descA, descAC);
+        MORSE_zlacpy_Tile(MorseUpperLower, descA, descA0);
     }
 
     /* Allocate Workspace */
@@ -63,13 +63,13 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
         MORSE_zgeqrs_Tile( descA, descT, descX );
 
         /* Check solution */
-        dparam[IPARAM_ANORM] = MORSE_zlange_Tile(MorseInfNorm, descAC);
+        dparam[IPARAM_ANORM] = MORSE_zlange_Tile(MorseInfNorm, descA0);
         dparam[IPARAM_BNORM] = MORSE_zlange_Tile(MorseInfNorm, descB);
         dparam[IPARAM_XNORM] = MORSE_zlange_Tile(MorseInfNorm, descX);
-        MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descAC, descX, -1.0, descB );
+        MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descA0, descX, -1.0, descB );
         dparam[IPARAM_RES] = MORSE_zlange_Tile(MorseInfNorm, descB);
         PASTE_CODE_FREE_MATRIX( descX  )
-        PASTE_CODE_FREE_MATRIX( descAC )
+        PASTE_CODE_FREE_MATRIX( descA0 )
         PASTE_CODE_FREE_MATRIX( descB  )
     }