[Bug 282830] math/givaro: fix build with clang 19

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 18 Nov 2024 10:11:08 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282830

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

Clang 19 has become more strict about errors in member functions, which
results in errors building math/givaro:

  ./givaro/givaro/givaro/random-integer.h:94:51: error: no viable overloaded
'='
     94 |                 const_cast<Integer_Domain&>(_ring)=R._ring;
        |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
  ./givaro/givaro/givaro/random-integer.h:94:51: note: type 'Integer_Domain'
(aka 'ZRing<Integer>') is incomplete
     94 |                 const_cast<Integer_Domain&>(_ring)=R._ring;
        |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
  In file included from givintprime.C:19:
  In file included from ./givaro/givintprime.h:24:
  In file included from ./givaro/givaro/givinteger.h:25:
  ../../../src/kernel/ring/givaro/zring.h:123:13: warning: misleading
indentation; statement is not part of the previous 'while'
[-Wmisleading-indentation]
    123 |             return a; }
        |             ^
  ../../../src/kernel/ring/givaro/zring.h:121:11: note: previous statement is
here
    121 |         { while (isZero(init(a, g())))
        |           ^

The `const_cast` line has been removed by upstream as part of
https://github.com/linbox-team/givaro/commit/b0cf33e1, but that commit
is rather large. It is enough to only delete the line.

Also fix a failure that occurs when running "make test":

  ../src/kernel/recint/rfiddling.h:170:29: error: no member named 'Low' in
'rint<K>'

This is because the expression `max.Low.Value` should actually be
`max.Value.Low`.

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