]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fix frange_nextafter odr violation
authorAlexandre Oliva <oliva@adacore.com>
Tue, 13 Jun 2023 08:26:41 +0000 (05:26 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Tue, 13 Jun 2023 08:27:33 +0000 (05:27 -0300)
C++ requires inline functions to be declared inline and defined in
every translation unit that uses them.  frange_nextafter is used in
gimple-range-op.cc but it's only defined as inline in
range-op-float.cc.  Drop the extraneous inline specifier.

Other non-static inline functions in range-op-float.cc are not
referenced elsewhere, so I'm making them static.

for  gcc/ChangeLog

* range-op-float.cc (frange_nextafter): Drop inline.
(frelop_early_resolve): Add static.
(frange_float): Likewise.

(cherry picked from commit d438b67e005bf8fc9e4af26410bf69816c30e969)

gcc/range-op-float.cc

index e0e91bad44d6d1d7739768ccf662c882ba49b7ea..22cf74b9d4a1dc55800b3255e2ee9a31df6e38a0 100644 (file)
@@ -255,7 +255,7 @@ maybe_isnan (const frange &op1, const frange &op2)
 // Floating version of relop_early_resolve that takes into account NAN
 // and -ffinite-math-only.
 
-inline bool
+static inline bool
 frelop_early_resolve (irange &r, tree type,
                      const frange &op1, const frange &op2,
                      relation_trio rel, relation_kind my_rel)
@@ -272,7 +272,7 @@ frelop_early_resolve (irange &r, tree type,
 
 // Set VALUE to its next real value, or INF if the operation overflows.
 
-inline void
+void
 frange_nextafter (enum machine_mode mode,
                  REAL_VALUE_TYPE &value,
                  const REAL_VALUE_TYPE &inf)
@@ -2878,7 +2878,7 @@ namespace selftest
 
 // Build an frange from string endpoints.
 
-inline frange
+static inline frange
 frange_float (const char *lb, const char *ub, tree type = float_type_node)
 {
   REAL_VALUE_TYPE min, max;