From 45d31e75e8e68d6c3cde451483ec3b3eb1cfe82b Mon Sep 17 00:00:00 2001
From: "Peter W. Draper" <p.w.draper@durham.ac.uk>
Date: Thu, 22 Feb 2018 18:14:17 +0000
Subject: [PATCH] Fix up errors and warnings from g++

---
 src/align.h              |  8 +++---
 src/clocks.c             |  2 +-
 src/common_io.c          |  4 +--
 src/common_io.h          |  2 +-
 src/engine.c             |  4 +--
 src/gravity_cache.h      | 10 ++++---
 src/io_properties.h      | 12 ++++-----
 src/runner_doiact.h      | 58 +++++++++++++++++++++++-----------------
 src/runner_doiact_grav.h | 44 +++++++++++++++---------------
 src/single_io.c          |  4 ++-
 src/space.c              | 12 ++++-----
 src/statistics.c         |  4 +--
 12 files changed, 89 insertions(+), 75 deletions(-)

diff --git a/src/align.h b/src/align.h
index 54435c4c9b..35b7f0848f 100644
--- a/src/align.h
+++ b/src/align.h
@@ -49,11 +49,11 @@
  * @param alignment The alignment in bytes of the array.
  */
 #if defined(__ICC)
-#define swift_align_information(array, alignment) \
+#define swift_align_information(type, array, alignment)  \
   __assume_aligned(array, alignment);
 #elif defined(__GNUC__)
-#define swift_align_information(array, alignment) \
-  array = __builtin_assume_aligned(array, alignment);
+#define swift_align_information(type, array, alignment)                  \
+    array = (type *)__builtin_assume_aligned(array, alignment);
 #else
 #define swift_align_information(array, alignment) ;
 #endif
@@ -72,7 +72,7 @@
  */
 #define swift_declare_aligned_ptr(type, array, ptr, alignment) \
   type *restrict array = ptr;                                  \
-  swift_align_information(array, alignment);
+  swift_align_information(type, array, alignment);
 
 /**
  * @brief Macro to tell the compiler that a given number is 0 modulo a given
diff --git a/src/clocks.c b/src/clocks.c
index 4b8b269143..fbaa83f15f 100644
--- a/src/clocks.c
+++ b/src/clocks.c
@@ -45,7 +45,7 @@ static unsigned long long clocks_cpufreq = 0;
 static ticks clocks_start = 0;
 
 /* The units of any returned times. */
-static char *clocks_units[] = {"ms", "~ms"};
+static const char *clocks_units[] = {"ms", "~ms"};
 static int clocks_units_index = 0;
 static double clocks_units_scale = 1000.0;
 
diff --git a/src/common_io.c b/src/common_io.c
index 78bbba804c..77bb403d19 100644
--- a/src/common_io.c
+++ b/src/common_io.c
@@ -142,7 +142,7 @@ int io_is_double_precision(enum IO_DATA_TYPE type) {
  *
  * Calls #error() if an error occurs.
  */
-void io_read_attribute(hid_t grp, char* name, enum IO_DATA_TYPE type,
+void io_read_attribute(hid_t grp, const char* name, enum IO_DATA_TYPE type,
                        void* data) {
   hid_t h_attr = 0, h_err = 0;
 
@@ -173,7 +173,7 @@ void io_read_attribute(hid_t grp, char* name, enum IO_DATA_TYPE type,
 void io_write_attribute(hid_t grp, const char* name, enum IO_DATA_TYPE type,
                         void* data, int num) {
   hid_t h_space = 0, h_attr = 0, h_err = 0;
-  hsize_t dim[1] = {num};
+  hsize_t dim[1] = {(hsize_t)num};
 
   h_space = H5Screate(H5S_SIMPLE);
   if (h_space < 0) {
diff --git a/src/common_io.h b/src/common_io.h
index d37b52a13a..c317238160 100644
--- a/src/common_io.h
+++ b/src/common_io.h
@@ -60,7 +60,7 @@ hid_t io_hdf5_type(enum IO_DATA_TYPE type);
 size_t io_sizeof_type(enum IO_DATA_TYPE type);
 int io_is_double_precision(enum IO_DATA_TYPE type);
 
-void io_read_attribute(hid_t grp, char* name, enum IO_DATA_TYPE type,
+void io_read_attribute(hid_t grp, const char* name, enum IO_DATA_TYPE type,
                        void* data);
 
 void io_write_attribute(hid_t grp, const char* name, enum IO_DATA_TYPE type,
diff --git a/src/engine.c b/src/engine.c
index 7c1a695c7d..52f5b8f9e4 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -3489,7 +3489,7 @@ int engine_marktasks(struct engine *e) {
   int rebuild_space = 0;
 
   /* Run through the tasks and mark as skip or not. */
-  size_t extra_data[3] = {(size_t)e, rebuild_space, (size_t)&e->sched};
+  size_t extra_data[3] = {(size_t)e, (size_t)rebuild_space, (size_t)&e->sched};
   threadpool_map(&e->threadpool, engine_marktasks_mapper, s->tasks, s->nr_tasks,
                  sizeof(struct task), 0, extra_data);
   rebuild_space = extra_data[1];
@@ -5434,7 +5434,7 @@ void engine_config(int restart, struct engine *e,
   if (e->nodeID == 0) {
 
     /* When restarting append to these files. */
-    char *mode;
+    const char *mode;
     if (restart)
       mode = "a";
     else
diff --git a/src/gravity_cache.h b/src/gravity_cache.h
index 097e4e1cb3..d46dc3cb1f 100644
--- a/src/gravity_cache.h
+++ b/src/gravity_cache.h
@@ -187,8 +187,9 @@ __attribute__((always_inline)) INLINE static void gravity_cache_populate(
 
   /* Particles used for padding should get impossible positions
    * that have a reasonable magnitude. We use the cell width for this */
-  const float pos_padded[3] = {-2. * cell->width[0], -2. * cell->width[1],
-                               -2. * cell->width[2]};
+  const float pos_padded[3] = {-2.f * (float)cell->width[0],
+                               -2.f * (float)cell->width[1],
+                               -2.f * (float)cell->width[2]};
   const float eps_padded = epsilon[0];
 
   /* Pad the caches */
@@ -247,8 +248,9 @@ gravity_cache_populate_no_mpole(timebin_t max_active_bin,
 
   /* Particles used for padding should get impossible positions
    * that have a reasonable magnitude. We use the cell width for this */
-  const float pos_padded[3] = {-2. * cell->width[0], -2. * cell->width[1],
-                               -2. * cell->width[2]};
+  const float pos_padded[3] = {-2.f * (float)cell->width[0],
+                               -2.f * (float)cell->width[1],
+                               -2.f * (float)cell->width[2]};
   const float eps_padded = epsilon[0];
 
   /* Pad the caches */
diff --git a/src/io_properties.h b/src/io_properties.h
index 7afd22a7dc..17db123ba8 100644
--- a/src/io_properties.h
+++ b/src/io_properties.h
@@ -113,7 +113,7 @@ struct io_props {
  * Do not call this function directly. Use the macro defined above.
  */
 INLINE static struct io_props io_make_input_field_(
-    char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
+    const char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
     enum DATA_IMPORTANCE importance, enum unit_conversion_factor units,
     char* field, size_t partSize) {
   struct io_props r;
@@ -155,7 +155,7 @@ INLINE static struct io_props io_make_input_field_(
  * Do not call this function directly. Use the macro defined above.
  */
 INLINE static struct io_props io_make_output_field_(
-    char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
+    const char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
     enum unit_conversion_factor units, char* field, size_t partSize) {
   struct io_props r;
   strcpy(r.name, name);
@@ -198,7 +198,7 @@ INLINE static struct io_props io_make_output_field_(
  * Do not call this function directly. Use the macro defined above.
  */
 INLINE static struct io_props io_make_output_field_convert_part_FLOAT(
-    char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
+    const char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
     enum unit_conversion_factor units, size_t partSize,
     const struct part* parts, conversion_func_part_float functionPtr) {
 
@@ -235,7 +235,7 @@ INLINE static struct io_props io_make_output_field_convert_part_FLOAT(
  * Do not call this function directly. Use the macro defined above.
  */
 INLINE static struct io_props io_make_output_field_convert_part_DOUBLE(
-    char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
+    const char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
     enum unit_conversion_factor units, size_t partSize,
     const struct part* parts, conversion_func_part_double functionPtr) {
 
@@ -280,7 +280,7 @@ INLINE static struct io_props io_make_output_field_convert_part_DOUBLE(
  * Do not call this function directly. Use the macro defined above.
  */
 INLINE static struct io_props io_make_output_field_convert_gpart_FLOAT(
-    char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
+    const char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
     enum unit_conversion_factor units, size_t gpartSize,
     const struct gpart* gparts, conversion_func_gpart_float functionPtr) {
 
@@ -317,7 +317,7 @@ INLINE static struct io_props io_make_output_field_convert_gpart_FLOAT(
  * Do not call this function directly. Use the macro defined above.
  */
 INLINE static struct io_props io_make_output_field_convert_gpart_DOUBLE(
-    char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
+    const char name[FIELD_BUFFER_SIZE], enum IO_DATA_TYPE type, int dimension,
     enum unit_conversion_factor units, size_t gpartSize,
     const struct gpart* gparts, conversion_func_gpart_double functionPtr) {
 
diff --git a/src/runner_doiact.h b/src/runner_doiact.h
index 2897aca001..0dfaba10bf 100644
--- a/src/runner_doiact.h
+++ b/src/runner_doiact.h
@@ -166,9 +166,9 @@ void DOPAIR1_NAIVE(struct runner *r, struct cell *restrict ci,
     const int pi_active = part_is_active(pi, e);
     const float hi = pi->h;
     const float hig2 = hi * hi * kernel_gamma2;
-    const float pix[3] = {pi->x[0] - (cj->loc[0] + shift[0]),
-                          pi->x[1] - (cj->loc[1] + shift[1]),
-                          pi->x[2] - (cj->loc[2] + shift[2])};
+    const float pix[3] = {(float)(pi->x[0] - (cj->loc[0] + shift[0])),
+                          (float)(pi->x[1] - (cj->loc[1] + shift[1])),
+                          (float)(pi->x[2] - (cj->loc[2] + shift[2]))};
 
     /* Loop over the parts in cj. */
     for (int pjd = 0; pjd < count_j; pjd++) {
@@ -180,8 +180,9 @@ void DOPAIR1_NAIVE(struct runner *r, struct cell *restrict ci,
       const int pj_active = part_is_active(pj, e);
 
       /* Compute the pairwise distance. */
-      const float pjx[3] = {pj->x[0] - cj->loc[0], pj->x[1] - cj->loc[1],
-                            pj->x[2] - cj->loc[2]};
+      const float pjx[3] = {(float)(pj->x[0] - cj->loc[0]),
+                            (float)(pj->x[1] - cj->loc[1]),
+                            (float)(pj->x[2] - cj->loc[2])};
       float dx[3] = {pix[0] - pjx[0], pix[1] - pjx[1], pix[2] - pjx[2]};
       const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2];
 
@@ -254,9 +255,9 @@ void DOPAIR2_NAIVE(struct runner *r, struct cell *restrict ci,
     const int pi_active = part_is_active(pi, e);
     const float hi = pi->h;
     const float hig2 = hi * hi * kernel_gamma2;
-    const float pix[3] = {pi->x[0] - (cj->loc[0] + shift[0]),
-                          pi->x[1] - (cj->loc[1] + shift[1]),
-                          pi->x[2] - (cj->loc[2] + shift[2])};
+    const float pix[3] = {(float)(pi->x[0] - (cj->loc[0] + shift[0])),
+                          (float)(pi->x[1] - (cj->loc[1] + shift[1])),
+                          (float)(pi->x[2] - (cj->loc[2] + shift[2]))};
 
     /* Loop over the parts in cj. */
     for (int pjd = 0; pjd < count_j; pjd++) {
@@ -268,8 +269,9 @@ void DOPAIR2_NAIVE(struct runner *r, struct cell *restrict ci,
       const float hjg2 = hj * hj * kernel_gamma2;
 
       /* Compute the pairwise distance. */
-      const float pjx[3] = {pj->x[0] - cj->loc[0], pj->x[1] - cj->loc[1],
-                            pj->x[2] - cj->loc[2]};
+      const float pjx[3] = {(float)(pj->x[0] - cj->loc[0]),
+                            (float)(pj->x[1] - cj->loc[1]),
+                            (float)(pj->x[2] - cj->loc[2])};
       float dx[3] = {pix[0] - pjx[0], pix[1] - pjx[1], pix[2] - pjx[2]};
       const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2];
 
@@ -333,8 +335,9 @@ void DOSELF1_NAIVE(struct runner *r, struct cell *restrict c) {
     const int pi_active = part_is_active(pi, e);
     const float hi = pi->h;
     const float hig2 = hi * hi * kernel_gamma2;
-    const float pix[3] = {pi->x[0] - c->loc[0], pi->x[1] - c->loc[1],
-                          pi->x[2] - c->loc[2]};
+    const float pix[3] = {(float)(pi->x[0] - c->loc[0]),
+                          (float)(pi->x[1] - c->loc[1]),
+                          (float)(pi->x[2] - c->loc[2])};
 
     /* Loop over the parts in cj. */
     for (int pjd = pid + 1; pjd < count; pjd++) {
@@ -346,8 +349,9 @@ void DOSELF1_NAIVE(struct runner *r, struct cell *restrict c) {
       const int pj_active = part_is_active(pj, e);
 
       /* Compute the pairwise distance. */
-      const float pjx[3] = {pj->x[0] - c->loc[0], pj->x[1] - c->loc[1],
-                            pj->x[2] - c->loc[2]};
+      const float pjx[3] = {(float)(pj->x[0] - c->loc[0]),
+                            (float)(pj->x[1] - c->loc[1]),
+                            (float)(pj->x[2] - c->loc[2])};
       float dx[3] = {pix[0] - pjx[0], pix[1] - pjx[1], pix[2] - pjx[2]};
       const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2];
 
@@ -411,8 +415,9 @@ void DOSELF2_NAIVE(struct runner *r, struct cell *restrict c) {
     const int pi_active = part_is_active(pi, e);
     const float hi = pi->h;
     const float hig2 = hi * hi * kernel_gamma2;
-    const float pix[3] = {pi->x[0] - c->loc[0], pi->x[1] - c->loc[1],
-                          pi->x[2] - c->loc[2]};
+    const float pix[3] = {(float)(pi->x[0] - c->loc[0]),
+                          (float)(pi->x[1] - c->loc[1]),
+                          (float)(pi->x[2] - c->loc[2])};
 
     /* Loop over the parts in cj. */
     for (int pjd = pid + 1; pjd < count; pjd++) {
@@ -424,8 +429,9 @@ void DOSELF2_NAIVE(struct runner *r, struct cell *restrict c) {
       const int pj_active = part_is_active(pj, e);
 
       /* Compute the pairwise distance. */
-      const float pjx[3] = {pj->x[0] - c->loc[0], pj->x[1] - c->loc[1],
-                            pj->x[2] - c->loc[2]};
+      const float pjx[3] = {(float)(pj->x[0] - c->loc[0]),
+                            (float)(pj->x[1] - c->loc[1]),
+                            (float)(pj->x[2] - c->loc[2])};
       float dx[3] = {pix[0] - pjx[0], pix[1] - pjx[1], pix[2] - pjx[2]};
       const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2];
 
@@ -589,7 +595,8 @@ void DOPAIR_SUBSET(struct runner *r, struct cell *restrict ci,
         const double pjz = pj->x[2];
 
         /* Compute the pairwise distance. */
-        float dx[3] = {pix - pjx, piy - pjy, piz - pjz};
+        float dx[3] = {(float)(pix - pjx), (float)(piy - pjy),
+                       (float)(piz - pjz)};
         const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2];
 
 #ifdef SWIFT_DEBUG_CHECKS
@@ -637,7 +644,8 @@ void DOPAIR_SUBSET(struct runner *r, struct cell *restrict ci,
         const double pjz = pj->x[2];
 
         /* Compute the pairwise distance. */
-        float dx[3] = {pix - pjx, piy - pjy, piz - pjz};
+        float dx[3] = {(float)(pix - pjx), (float)(piy - pjy),
+                       (float)(piz - pjz)};
         const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2];
 
 #ifdef SWIFT_DEBUG_CHECKS
@@ -746,8 +754,9 @@ void DOSELF_SUBSET(struct runner *r, struct cell *restrict ci,
 
     /* Get a hold of the ith part in ci. */
     struct part *pi = &parts[ind[pid]];
-    const float pix[3] = {pi->x[0] - ci->loc[0], pi->x[1] - ci->loc[1],
-                          pi->x[2] - ci->loc[2]};
+    const float pix[3] = {(float)(pi->x[0] - ci->loc[0]),
+                          (float)(pi->x[1] - ci->loc[1]),
+                          (float)(pi->x[2] - ci->loc[2])};
     const float hi = pi->h;
     const float hig2 = hi * hi * kernel_gamma2;
 
@@ -762,8 +771,9 @@ void DOSELF_SUBSET(struct runner *r, struct cell *restrict ci,
       struct part *restrict pj = &parts_j[pjd];
 
       /* Compute the pairwise distance. */
-      const float pjx[3] = {pj->x[0] - ci->loc[0], pj->x[1] - ci->loc[1],
-                            pj->x[2] - ci->loc[2]};
+      const float pjx[3] = {(float)(pj->x[0] - ci->loc[0]),
+                            (float)(pj->x[1] - ci->loc[1]),
+                            (float)(pj->x[2] - ci->loc[2])};
       float dx[3] = {pix[0] - pjx[0], pix[1] - pjx[1], pix[2] - pjx[2]};
       const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2];
 
diff --git a/src/runner_doiact_grav.h b/src/runner_doiact_grav.h
index cee0737cba..bb54d9473e 100644
--- a/src/runner_doiact_grav.h
+++ b/src/runner_doiact_grav.h
@@ -208,10 +208,10 @@ static INLINE void runner_dopair_grav_pp_full(const struct engine *e,
     float a_x = 0.f, a_y = 0.f, a_z = 0.f;
 
     /* Make the compiler understand we are in happy vectorization land */
-    swift_align_information(cj_cache->x, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(cj_cache->y, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(cj_cache->z, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(cj_cache->m, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->x, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->y, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->z, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->m, SWIFT_CACHE_ALIGNMENT);
     swift_assume_size(gcount_padded_j, VEC_SIZE);
 
     /* Loop over every particle in the other cell. */
@@ -299,10 +299,10 @@ static INLINE void runner_dopair_grav_pp_truncated(
     float a_x = 0.f, a_y = 0.f, a_z = 0.f;
 
     /* Make the compiler understand we are in happy vectorization land */
-    swift_align_information(cj_cache->x, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(cj_cache->y, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(cj_cache->z, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(cj_cache->m, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->x, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->y, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->z, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,cj_cache->m, SWIFT_CACHE_ALIGNMENT);
     swift_assume_size(gcount_padded_j, VEC_SIZE);
 
     /* Loop over every particle in the other cell. */
@@ -496,12 +496,12 @@ void runner_dopair_grav_pp(struct runner *r, struct cell *ci, struct cell *cj) {
   const float rmax2_j = rmax_j * rmax_j;
   const struct multipole *multi_i = &ci->multipole->m_pole;
   const struct multipole *multi_j = &cj->multipole->m_pole;
-  const float CoM_i[3] = {ci->multipole->CoM[0] - shift_i[0],
-                          ci->multipole->CoM[1] - shift_i[1],
-                          ci->multipole->CoM[2] - shift_i[2]};
-  const float CoM_j[3] = {cj->multipole->CoM[0] - shift_j[0],
-                          cj->multipole->CoM[1] - shift_j[1],
-                          cj->multipole->CoM[2] - shift_j[2]};
+  const float CoM_i[3] = {(float)(ci->multipole->CoM[0] - shift_i[0]),
+                          (float)(ci->multipole->CoM[1] - shift_i[1]),
+                          (float)(ci->multipole->CoM[2] - shift_i[2])};
+  const float CoM_j[3] = {(float)(cj->multipole->CoM[0] - shift_j[0]),
+                          (float)(cj->multipole->CoM[1] - shift_j[1]),
+                          (float)(cj->multipole->CoM[2] - shift_j[2])};
 
   /* Start by constructing particle caches */
 
@@ -686,10 +686,10 @@ void runner_doself_grav_pp_full(struct runner *r, struct cell *c) {
     float a_x = 0.f, a_y = 0.f, a_z = 0.f;
 
     /* Make the compiler understand we are in happy vectorization land */
-    swift_align_information(ci_cache->x, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(ci_cache->y, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(ci_cache->z, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(ci_cache->m, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->x, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->y, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->z, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->m, SWIFT_CACHE_ALIGNMENT);
     swift_assume_size(gcount_padded, VEC_SIZE);
 
     /* Loop over every other particle in the cell. */
@@ -812,10 +812,10 @@ void runner_doself_grav_pp_truncated(struct runner *r, struct cell *c) {
     float a_x = 0.f, a_y = 0.f, a_z = 0.f;
 
     /* Make the compiler understand we are in happy vectorization land */
-    swift_align_information(ci_cache->x, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(ci_cache->y, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(ci_cache->z, SWIFT_CACHE_ALIGNMENT);
-    swift_align_information(ci_cache->m, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->x, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->y, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->z, SWIFT_CACHE_ALIGNMENT);
+    swift_align_information(float,ci_cache->m, SWIFT_CACHE_ALIGNMENT);
     swift_assume_size(gcount_padded, VEC_SIZE);
 
     /* Loop over every other particle in the cell. */
diff --git a/src/single_io.c b/src/single_io.c
index d092851272..0534094fb5 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -581,7 +581,9 @@ void write_output_single(struct engine* e, const char* baseName,
   /* Number of unassociated gparts */
   const size_t Ndm = Ntot > 0 ? Ntot - (Ngas + Nstars) : 0;
 
-  long long N_total[swift_type_count] = {Ngas, Ndm, 0, 0, Nstars, 0};
+  long long N_total[swift_type_count] = {(long long)Ngas, 
+                                         (long long)Ndm, 0, 0, 
+                                         (long long)Nstars, 0};
 
   /* File name */
   char fileName[FILENAME_BUFFER_SIZE];
diff --git a/src/space.c b/src/space.c
index 2c05cdfcb2..3460416126 100644
--- a/src/space.c
+++ b/src/space.c
@@ -319,12 +319,12 @@ void space_regrid(struct space *s, int verbose) {
 
   /* Get the new putative cell dimensions. */
   const int cdim[3] = {
-      floor(s->dim[0] /
-            fmax(h_max * kernel_gamma * space_stretch, s->cell_min)),
-      floor(s->dim[1] /
-            fmax(h_max * kernel_gamma * space_stretch, s->cell_min)),
-      floor(s->dim[2] /
-            fmax(h_max * kernel_gamma * space_stretch, s->cell_min))};
+      (int)floor(s->dim[0] /
+                 fmax(h_max * kernel_gamma * space_stretch, s->cell_min)),
+      (int)floor(s->dim[1] /
+                 fmax(h_max * kernel_gamma * space_stretch, s->cell_min)),
+      (int)floor(s->dim[2] /
+                 fmax(h_max * kernel_gamma * space_stretch, s->cell_min))};
 
   /* Check if we have enough cells for periodicity. */
   if (s->periodic && (cdim[0] < 3 || cdim[1] < 3 || cdim[2] < 3))
diff --git a/src/statistics.c b/src/statistics.c
index f3604a2417..ed5e0f7434 100644
--- a/src/statistics.c
+++ b/src/statistics.c
@@ -140,7 +140,7 @@ void stats_collect_part_mapper(void *map_data, int nr_parts, void *extra_data) {
     const double x[3] = {p->x[0], p->x[1], p->x[2]};
     const float m = hydro_get_mass(p);
     const float entropy = hydro_get_entropy(p);
-    const float u_int = hydro_get_internal_energy(p);
+    const float u_inter = hydro_get_internal_energy(p);
 
     /* Collect mass */
     stats.mass += m;
@@ -162,7 +162,7 @@ void stats_collect_part_mapper(void *map_data, int nr_parts, void *extra_data) {
 
     /* Collect energies. */
     stats.E_kin += 0.5f * m * (v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
-    stats.E_int += m * u_int;
+    stats.E_int += m * u_inter;
     stats.E_rad += cooling_get_radiated_energy(xp);
     if (gp != NULL) {
       stats.E_pot_self += m * gravity_get_potential(gp);
-- 
GitLab