aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetIOBasic
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/CarpetIOBasic')
-rw-r--r--Carpet/CarpetIOBasic/src/iobasic.cc10
1 files changed, 3 insertions, 7 deletions
diff --git a/Carpet/CarpetIOBasic/src/iobasic.cc b/Carpet/CarpetIOBasic/src/iobasic.cc
index 28abd6454..f8366a811 100644
--- a/Carpet/CarpetIOBasic/src/iobasic.cc
+++ b/Carpet/CarpetIOBasic/src/iobasic.cc
@@ -482,14 +482,10 @@ namespace CarpetIOBasic {
int const handle = ireduction->handle;
- union {
-#define TYPECASE(N,T) T var_##T;
-#include "typecase.hh"
-#undef TYPECASE
- } result;
+ char result[100]; // assuming no type is larger than this
int const ierr
- = CCTK_Reduce (cctkGH, 0, handle, 1, vartype, &result, 1, n);
+ = CCTK_Reduce (cctkGH, 0, handle, 1, vartype, result, 1, n);
assert (not ierr);
if (CCTK_MyProc(cctkGH) == 0) {
@@ -500,7 +496,7 @@ namespace CarpetIOBasic {
#define TYPECASE(N,T) \
case N: \
{ \
- T const val = result.var_##T; \
+ T const& val = *(T const*)result; \
if (not isint) { \
if (UseScientificNotation (val)) { \
cout << scientific << setprecision(real_prec_sci); \