diff options
Diffstat (limited to 'Carpet/CarpetReduce')
-rw-r--r-- | Carpet/CarpetReduce/src/reduce.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Carpet/CarpetReduce/src/reduce.cc b/Carpet/CarpetReduce/src/reduce.cc index dc24111da..9a8b804f5 100644 --- a/Carpet/CarpetReduce/src/reduce.cc +++ b/Carpet/CarpetReduce/src/reduce.cc @@ -976,8 +976,11 @@ namespace CarpetReduce { #define FINALISE(OP,S) \ case do_##OP: { \ typedef typeconv<S>::goodtype T; \ - finalise<T,OP::op<T> > (&((char*)outvals)[vartypesize*n], \ - & counts [vartypesize*n]); \ + void *const outval = &((char*)outvals)[vartypesize*n]; \ + T dummy; \ + void *const cnt = \ + red->uses_cnt() ? (void*)&counts[vartypesize*n] : (void*)&dummy; \ + finalise<T,OP::op<T> > (outval, cnt); \ break; \ } #define TYPECASE(N,T) \ |