From 466c761616ff243516dd0436e2bc9d15b81f16bf Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 18 Feb 2020 21:08:56 +0100 Subject: [PATCH] Ref T773, gcc/clang warnings Remark: "assuming signed overflow does not occur when assuming that (X - c) > X is always false" --- src/blackmisc/sequence.h | 9 +++++++++ src/blackmisc/simulation/interpolationlogger.cpp | 15 +++++++++++++++ src/blackmisc/simulation/interpolationlogger.h | 7 +------ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index 89b74ba16..6119842ce 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -119,12 +119,21 @@ namespace BlackMisc //! Swap this sequence with another. void swap(CSequence &other) noexcept { m_impl.swap(other.m_impl); } +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-overflow" +#endif + //! Access an element by its index. reference operator [](size_type index) { Q_ASSERT(index >= 0 && index < m_impl.size()); return m_impl[index]; } //! Access an element by its index. const_reference operator [](size_type index) const { Q_ASSERT(index >= 0 && index < m_impl.size()); return m_impl[index]; } +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + //! Access the first element. reference front() { Q_ASSERT(!empty()); return m_impl.front(); } diff --git a/src/blackmisc/simulation/interpolationlogger.cpp b/src/blackmisc/simulation/interpolationlogger.cpp index aa5940450..3a720482a 100644 --- a/src/blackmisc/simulation/interpolationlogger.cpp +++ b/src/blackmisc/simulation/interpolationlogger.cpp @@ -583,5 +583,20 @@ namespace BlackMisc if (interpolator == 'l') { return l; } return u; } + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-overflow" +#endif + const CAircraftSituation &SituationLog::secondInterpolationSituation() const + { + if (interpolationSituations.size() < 2) { return Aviation::CAircraftSituation::null(); } + const Aviation::CAircraftSituationList::size_type i = interpolationSituations.size() - 2; // 2nd latest, latest at end + return interpolationSituations[i]; + } +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + } // namespace } // namespace diff --git a/src/blackmisc/simulation/interpolationlogger.h b/src/blackmisc/simulation/interpolationlogger.h index 7ece81d49..67b17508b 100644 --- a/src/blackmisc/simulation/interpolationlogger.h +++ b/src/blackmisc/simulation/interpolationlogger.h @@ -74,12 +74,7 @@ namespace BlackMisc } //! The second latest situation (spline) - const Aviation::CAircraftSituation &secondInterpolationSituation() const - { - if (interpolationSituations.size() < 2) { return Aviation::CAircraftSituation::null(); } - const Aviation::CAircraftSituationList::size_type i = interpolationSituations.size() - 2; // 2nd latest, latest at end - return interpolationSituations[i]; - } + const Aviation::CAircraftSituation &secondInterpolationSituation() const; //! To string QString toQString(bool withSetup,