From a3f2bddb66d107a76e8143cbc9a19f37f76265b6 Mon Sep 17 00:00:00 2001 From: Gold856 <117957790+Gold856@users.noreply.github.com> Date: Tue, 21 Jan 2025 00:04:41 -0500 Subject: [PATCH 1/2] Fix GCC 13 build issues --- examples/TriangulationLOSTExample.cpp | 6 +++--- gtsam/basis/tests/testFourier.cpp | 4 ++++ gtsam/geometry/BearingRange.h | 4 +++- gtsam/geometry/FundamentalMatrix.cpp | 4 ++++ gtsam/slam/tests/testRotateFactor.cpp | 3 +++ 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/examples/TriangulationLOSTExample.cpp b/examples/TriangulationLOSTExample.cpp index 417c37c45..52744e508 100644 --- a/examples/TriangulationLOSTExample.cpp +++ b/examples/TriangulationLOSTExample.cpp @@ -123,9 +123,9 @@ int main(int argc, char* argv[]) { double rank_tol = 1e-9; std::shared_ptr calib = std::make_shared(); - std::chrono::nanoseconds durationDLT; - std::chrono::nanoseconds durationDLTOpt; - std::chrono::nanoseconds durationLOST; + std::chrono::nanoseconds durationDLT{}; + std::chrono::nanoseconds durationDLTOpt{}; + std::chrono::nanoseconds durationLOST{}; for (int i = 0; i < nrTrials; i++) { Point2Vector noisyMeasurements = diff --git a/gtsam/basis/tests/testFourier.cpp b/gtsam/basis/tests/testFourier.cpp index 2995e8c45..9a46e066e 100644 --- a/gtsam/basis/tests/testFourier.cpp +++ b/gtsam/basis/tests/testFourier.cpp @@ -22,6 +22,10 @@ #include #include +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic warning "-Wstringop-overread" +#pragma GCC diagnostic warning "-Warray-bounds" +#endif using namespace std; using namespace gtsam; diff --git a/gtsam/geometry/BearingRange.h b/gtsam/geometry/BearingRange.h index 9c4e42edf..9deb31b69 100644 --- a/gtsam/geometry/BearingRange.h +++ b/gtsam/geometry/BearingRange.h @@ -138,8 +138,10 @@ public: TangentVector localCoordinates(const BearingRange& other) const { typename traits::TangentVector v1 = traits::Local(bearing_, other.bearing_); typename traits::TangentVector v2 = traits::Local(range_, other.range_); + // Set the first dimB elements to v1, and the next dimR elements to v2 TangentVector v; - v << v1, v2; + v.template head() = v1; + v.template tail() = v2; return v; } diff --git a/gtsam/geometry/FundamentalMatrix.cpp b/gtsam/geometry/FundamentalMatrix.cpp index 837ba7263..5c5e02715 100644 --- a/gtsam/geometry/FundamentalMatrix.cpp +++ b/gtsam/geometry/FundamentalMatrix.cpp @@ -9,6 +9,10 @@ #include #include +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif + namespace gtsam { //************************************************************************* diff --git a/gtsam/slam/tests/testRotateFactor.cpp b/gtsam/slam/tests/testRotateFactor.cpp index 68e0de0f0..b748f83ed 100644 --- a/gtsam/slam/tests/testRotateFactor.cpp +++ b/gtsam/slam/tests/testRotateFactor.cpp @@ -14,6 +14,9 @@ #include +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif using namespace std; using namespace std::placeholders; using namespace gtsam; From d6ccb57241618d425a2a85c8b36c92ce2ed4cb2a Mon Sep 17 00:00:00 2001 From: Frank Dellaert Date: Wed, 22 Jan 2025 23:20:41 -0500 Subject: [PATCH 2/2] Fix c++20 issue --- gtsam/navigation/tests/testGPSFactor.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gtsam/navigation/tests/testGPSFactor.cpp b/gtsam/navigation/tests/testGPSFactor.cpp index f240e5dbf..62456bb0d 100644 --- a/gtsam/navigation/tests/testGPSFactor.cpp +++ b/gtsam/navigation/tests/testGPSFactor.cpp @@ -38,18 +38,17 @@ static const auto& kWGS84 = Geocentric::WGS84(); // ************************************************************************* namespace example { // ENU Origin is where the plane was in hold next to runway -const double lat0 = 33.86998, lon0 = -84.30626, h0 = 274; +static constexpr double lat0 = 33.86998, lon0 = -84.30626, h0 = 274; // Convert from GPS to ENU -LocalCartesian origin_ENU(lat0, lon0, h0, kWGS84); +static const LocalCartesian origin_ENU(lat0, lon0, h0, kWGS84); // Dekalb-Peachtree Airport runway 2L -const double lat = 33.87071, lon = -84.30482, h = 274;\ +static constexpr double lat = 33.87071, lon = -84.30482, h = 274; // Random lever arm -const Point3 leverArm(0.1, 0.2, 0.3); - -} +static const Point3 leverArm(0.1, 0.2, 0.3); +} // namespace example // ************************************************************************* TEST( GPSFactor, Constructor ) { @@ -135,7 +134,7 @@ TEST( GPSFactorArmCalib, Constructor ) { // Calculate numerical derivatives Matrix expectedH1 = numericalDerivative11( - [&factor, &leverArm](const Pose3& pose_arg) { + [&factor](const Pose3& pose_arg) { return factor.evaluateError(pose_arg, leverArm); }, T); @@ -235,7 +234,7 @@ TEST( GPSFactor2ArmCalib, Constructor ) { // Calculate numerical derivatives Matrix expectedH1 = numericalDerivative11( - [&factor, &leverArm](const NavState& nav_arg) { + [&factor](const NavState& nav_arg) { return factor.evaluateError(nav_arg, leverArm); }, T);