aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/io.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-02-18 22:50:16 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-02-18 22:50:16 +0100
commit2b1cf12bf36e536cd29994951b46f180e81e1179 (patch)
tree9e49a7b998f27b5a11bff304461baa836212420a /src/iso19111/io.cpp
parent97016c7f7b74bd473c446ee128d1774209eddfc0 (diff)
downloadPROJ-2b1cf12bf36e536cd29994951b46f180e81e1179.tar.gz
PROJ-2b1cf12bf36e536cd29994951b46f180e81e1179.zip
Fix a few issues with i386 builds
Relax tolerances in a few unit test, and in laea code. Seen with gcc 5.3 and also 7.1 Related to the use of the 387 floating-point math, since they disappear with gcc 7.1 if using non-default -mfpmath=sse -msse
Diffstat (limited to 'src/iso19111/io.cpp')
-rw-r--r--src/iso19111/io.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index 6edce579..e14239b0 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -6920,7 +6920,11 @@ CRSNNPtr PROJStringParser::Private::buildProjectedCRS(
const auto &lat_2 = getParamValue(step, "lat_2");
const auto &k = getParamValueK(step);
if (lat_2.empty() && !lat_0.empty() && !lat_1.empty() &&
- getAngularValue(lat_0) == getAngularValue(lat_1)) {
+ (lat_0 == lat_1 ||
+ // For some reason with gcc 5.3.1-14ubuntu2 32bit, the following
+ // comparison returns false even if lat_0 == lat_1. Smells like
+ // a compiler bug
+ getAngularValue(lat_0) == getAngularValue(lat_1))) {
mapping = getMapping(EPSG_CODE_METHOD_LAMBERT_CONIC_CONFORMAL_1SP);
} else if (!k.empty() && getNumericValue(k) != 1.0) {
mapping = getMapping(