[Bug 281477] audio/libaudiofile: fix build with clang 19, enable tests

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 28 Sep 2024 09:48:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281477

--- Comment #2 from commit-hook@FreeBSD.org ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/ports/commit/?id=7955b1d7ec787bf13f2cfea75e9355a3f3e91a53

commit 7955b1d7ec787bf13f2cfea75e9355a3f3e91a53
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:43:47 +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 = -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 |                                
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

 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(+)

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