Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Sep 2024 09:49:19 +0000
From:      bugzilla-noreply@freebsd.org
To:        gnome@FreeBSD.org
Subject:   [Bug 281477] audio/libaudiofile: fix build with clang 19, enable tests
Message-ID:  <bug-281477-6497-sxbpL3lsR1@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-281477-6497@https.bugs.freebsd.org/bugzilla/>
References:  <bug-281477-6497@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D281477

--- Comment #3 from commit-hook@FreeBSD.org ---
A commit in branch 2024Q3 references this bug:

URL:
https://cgit.FreeBSD.org/ports/commit/?id=3D1a4cfe7f1ee1ce76987f1455d361032=
fe456d081

commit 1a4cfe7f1ee1ce76987f1455d361032fe456d081
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-09-13 09:11:45 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-09-28 09:48:23 +0000

    audio/libaudiofile: fix build with clang 19, enable tests

    Clang 19 has become more strict about initialization with undefined
    behavior, resulting in errors similar to:

      ./SimpleModule.h:126:40: error: in-class initializer for static data
member is not a constant expression
        126 |         static const int kMinSignedValue =3D -1 << kScaleBits;
            |                                            ~~~^~~~~~~~~~~~~
      ./SimpleModule.h:176:22: note: in instantiation of template class
'signConverter<kInt8>' requested here
        176 |                 transform<typename
signConverter<Format>::signedToUnsigned>(src, dst, count);
            |                                    ^
      ./SimpleModule.h:183:5: note: in instantiation of function template
specialization 'ConvertSign::convertSignedToUnsigned<kInt8>' requested here
        183 |=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20
convertSignedToUnsigned<kInt8>(src, dst, count);
            |                                 ^

    This is because left-shifting negative values is undefined. Replace -1
    with ~0u which results in the expected value.

    While here, add a few other patches to remove warnings about undefined
    left-shifts, and add support for the "make test" target.

    PR:             281477
    Approved by:    maintainer timeout (2 weeks)
    MFH:            2024Q3

    (cherry picked from commit 7955b1d7ec787bf13f2cfea75e9355a3f3e91a53)

 audio/libaudiofile/Makefile                        |  3 +++
 audio/libaudiofile/files/patch-gtest_gtest.h (new) | 11 ++++++++
 ...patch-libaudiofile_modules_SimpleModule.h (new) | 11 ++++++++
 .../files/patch-test_FloatToInt.cpp (new)          | 11 ++++++++
 .../files/patch-test_IntToFloat.cpp (new)          | 11 ++++++++
 audio/libaudiofile/files/patch-test_NeXT.cpp (new) | 29 ++++++++++++++++++=
++++
 audio/libaudiofile/files/patch-test_Sign.cpp (new) | 20 +++++++++++++++
 7 files changed, 96 insertions(+)

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-281477-6497-sxbpL3lsR1>