diff --git a/gtsam/nonlinear/internal/ExpressionNode.h b/gtsam/nonlinear/internal/ExpressionNode.h index 878b2b9d8..dc0cf3764 100644 --- a/gtsam/nonlinear/internal/ExpressionNode.h +++ b/gtsam/nonlinear/internal/ExpressionNode.h @@ -717,14 +717,14 @@ class BinarySumNode : public ExpressionNode { }; /// Construct an execution trace for reverse AD - T traceExecution(const Values& values, ExecutionTrace& trace, - ExecutionTraceStorage* ptr) const override { + T traceExecution(const Values &values, ExecutionTrace &trace, + ExecutionTraceStorage *ptr) const override { assert(reinterpret_cast(ptr) % TraceAlignment == 0); - Record* record = new (ptr) Record(); + Record *record = new (ptr) Record(); trace.setFunction(record); - ExecutionTraceStorage* ptr1 = ptr + upAligned(sizeof(Record)); - ExecutionTraceStorage* ptr2 = ptr1 + expression1_->traceSize(); + auto ptr1 = reinterpret_cast(reinterpret_cast(ptr) + upAligned(sizeof(Record))); + auto ptr2 = reinterpret_cast(reinterpret_cast(ptr1) + expression1_->traceSize()); return expression1_->traceExecution(values, record->trace1, ptr1) + expression2_->traceExecution(values, record->trace2, ptr2); }