From a767ae5d14063f3df1a3af994f26915f973de408 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 4 Sep 2021 18:00:20 +0200 Subject: Workaround 'Overlapping read/write of union is undefined behavior' cppcheck warning (but really fixing them would be more involved) --- src/transformations/molodensky.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/transformations/molodensky.cpp') diff --git a/src/transformations/molodensky.cpp b/src/transformations/molodensky.cpp index 29c51b55..3901fce9 100644 --- a/src/transformations/molodensky.cpp +++ b/src/transformations/molodensky.cpp @@ -215,7 +215,8 @@ static PJ_XY forward_2d(PJ_LP lp, PJ *P) { PJ_COORD point = {{0,0,0,0}}; point.lp = lp; - point.xyz = forward_3d(point.lpz, P); + const auto xyz = forward_3d(point.lpz, P); + point.xyz = xyz; return point.xy; } @@ -226,7 +227,8 @@ static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { point.xy = xy; point.xyz.z = 0; - point.lpz = reverse_3d(point.xyz, P); + const auto lpz = reverse_3d(point.xyz, P); + point.lpz = lpz; return point.lp; } @@ -259,7 +261,8 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { static PJ_COORD forward_4d(PJ_COORD obs, PJ *P) { - obs.xyz = forward_3d(obs.lpz, P); + const auto xyz = forward_3d(obs.lpz, P); + obs.xyz = xyz; return obs; } @@ -291,7 +294,8 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { static PJ_COORD reverse_4d(PJ_COORD obs, PJ *P) { - obs.lpz = reverse_3d(obs.xyz, P); + const auto lpz = reverse_3d(obs.xyz, P); + obs.lpz = lpz; return obs; } -- cgit v1.2.3