From 1c141cb0be93bc5a5fdc3c6acf1145c087ab1d86 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Fri, 19 Oct 2018 17:34:23 +0200
Subject: [PATCH] Fix broadcast of trivial that only cast to array

This fixes the case of sequential compilation. Was correct in parallel.
---
 src/utils/Messenger.hpp | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/utils/Messenger.hpp b/src/utils/Messenger.hpp
index 8f9bedf64..09dc1f5dd 100644
--- a/src/utils/Messenger.hpp
+++ b/src/utils/Messenger.hpp
@@ -364,12 +364,8 @@ class Messenger
         CastType& cast_data = reinterpret_cast<CastType&>(data);
         _broadcast_value(cast_data, root_rank);
       } else {
-#ifdef PASTIS_HAS_MPI
-    MPI_Datatype mpi_datatype
-        = Messenger::helper::mpiType<CastType>();
-    MPI_Bcast(reinterpret_cast<CastType*>(&data), sizeof(DataType)/sizeof(CastType),
-              mpi_datatype, root_rank, MPI_COMM_WORLD);
-#endif // PASTIS_HAS_MPI
+        CastArray cast_array = cast_value_to<CastType>::from(data);
+        _broadcast_array(cast_array, root_rank);
       }
     } else {
       static_assert(std::is_trivial_v<DataType>,
-- 
GitLab