[Bug 271870] math/coinutils: fix build with clang 16

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 06 Jun 2023 16:51:38 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271870

            Bug ID: 271870
           Summary: math/coinutils: fix build with clang 16
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: yuri@freebsd.org
          Reporter: dim@FreeBSD.org
          Assignee: yuri@freebsd.org
             Flags: maintainer-feedback?(yuri@freebsd.org)

Since clang 16 (and gcc 11) the default C++ standard is now gnu++17.
Because math/coinutils's build infrastructure does not explicitly set
its C++ standard, this leads to several errors:

  ./CoinOslC.h:37:15: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  int c_ekkbtrn(register const EKKfactinfo *fact,
                ^~~~~~~~~
  ./CoinOslC.h:40:22: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  int c_ekkbtrn_ipivrw(register const EKKfactinfo *fact,
                       ^~~~~~~~~
  ./CoinOslC.h:44:15: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  int c_ekketsj(register /*const*/ EKKfactinfo *fact,
                ^~~~~~~~
  ./CoinOslC.h:49:15: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  int c_ekkftrn(register const EKKfactinfo *fact,
                ^~~~~~~~~
  ./CoinOslC.h:53:18: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  int c_ekkftrn_ft(register EKKfactinfo *fact,
                   ^~~~~~~~~
  ./CoinOslC.h:55:17: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  void c_ekkftrn2(register EKKfactinfo *fact, double *dwork1,
                  ^~~~~~~~~
  ./CoinOslC.h:59:15: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  int c_ekklfct(register EKKfactinfo *fact);
                ^~~~~~~~~
  ./CoinOslC.h:60:15: error: ISO C++17 does not allow 'register' storage class
specifier [-Wregister]
  int c_ekkslcf(register const EKKfactinfo *fact);
                ^~~~~~~~~

To work around the errors, define the register keyword away using
CPPFLAGS.

-- 
You are receiving this mail because:
You are the assignee for the bug.