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

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 13 Sep 2024 09:11:22 UTC
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-gnome (Nobody)
<gnome@FreeBSD.org> for maintainer-feedback:
Bug 281477: audio/libaudiofile: fix build with clang 19, enable tests
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281477



--- Description ---
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.