HomeFreeBSD

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

Description

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

(cherry picked from commit 7955b1d7ec787bf13f2cfea75e9355a3f3e91a53)

Details

Provenance
dimAuthored on Sep 13 2024, 9:11 AM
Parents
R11:ce0335c20a5d: graphics/vigra: fix build with clang 19
Branches
Unknown
Tags
Unknown