aboutsummaryrefslogtreecommitdiff
path: root/src/transformations
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-09-04 18:00:20 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-09-04 18:01:11 +0200
commita767ae5d14063f3df1a3af994f26915f973de408 (patch)
treeacd84b4c078ac55cb587297737f57b92c9baf9c9 /src/transformations
parent49c0ef87bad8de7d3351b99eeae0e437adc60f0b (diff)
downloadPROJ-a767ae5d14063f3df1a3af994f26915f973de408.tar.gz
PROJ-a767ae5d14063f3df1a3af994f26915f973de408.zip
Workaround 'Overlapping read/write of union is undefined behavior' cppcheck warning (but really fixing them would be more involved)
Diffstat (limited to 'src/transformations')
-rw-r--r--src/transformations/helmert.cpp12
-rw-r--r--src/transformations/molodensky.cpp12
2 files changed, 16 insertions, 8 deletions
diff --git a/src/transformations/helmert.cpp b/src/transformations/helmert.cpp
index f9bb45e0..253dc2f6 100644
--- a/src/transformations/helmert.cpp
+++ b/src/transformations/helmert.cpp
@@ -369,7 +369,8 @@ static PJ_XYZ helmert_forward_3d (PJ_LPZ lpz, PJ *P) {
point.lpz = lpz;
if (Q->fourparam) {
- point.xy = helmert_forward(point.lp, P);
+ const auto xy = helmert_forward(point.lp, P);
+ point.xy = xy;
return point.xyz;
}
@@ -409,7 +410,8 @@ static PJ_LPZ helmert_reverse_3d (PJ_XYZ xyz, PJ *P) {
point.xyz = xyz;
if (Q->fourparam) {
- point.lp = helmert_reverse(point.xy, P);
+ const auto lp = helmert_reverse(point.xy, P);
+ point.lp = lp;
return point.lpz;
}
@@ -448,7 +450,8 @@ static PJ_COORD helmert_forward_4d (PJ_COORD point, PJ *P) {
build_rot_matrix(P);
}
- point.xyz = helmert_forward_3d (point.lpz, P);
+ const auto xyz = helmert_forward_3d (point.lpz, P);
+ point.xyz = xyz;
return point;
}
@@ -466,7 +469,8 @@ static PJ_COORD helmert_reverse_4d (PJ_COORD point, PJ *P) {
build_rot_matrix(P);
}
- point.lpz = helmert_reverse_3d (point.xyz, P);
+ const auto lpz = helmert_reverse_3d (point.xyz, P);
+ point.lpz = lpz;
return point;
}
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;
}