libaudiofile: attempt to fix Ubuntu build which is failing due to UB in code
Switch left shift of negative operand with functionally equivalent and well-defined function.
This commit is contained in:
parent
fd1a71df56
commit
3f53af93dc
2 changed files with 18 additions and 1 deletions
|
@ -1,7 +1,8 @@
|
|||
$NetBSD: distinfo,v 1.26 2015/11/03 01:12:36 agc Exp $
|
||||
$NetBSD: distinfo,v 1.27 2016/12/17 16:40:31 maya Exp $
|
||||
|
||||
SHA1 (audiofile-0.3.6.tar.gz) = 3aba3ef724b1b5f88cfc20ab9f8ce098e6c35a0e
|
||||
RMD160 (audiofile-0.3.6.tar.gz) = d0666dbf98cb4b41304b01e1b4f8ca15fe9288d8
|
||||
SHA512 (audiofile-0.3.6.tar.gz) = f9a1182d93e405c21eba79c5cc40962347bff13f1b3b732d9a396e3d1675297515188bd6eb43033aaa00e9bde74ff4628c1614462456529cabba464f03c1d5fa
|
||||
Size (audiofile-0.3.6.tar.gz) = 811733 bytes
|
||||
SHA1 (patch-libaudiofile_CAF.cpp) = ddea79105f9b1e7222f91649815668d3a8ee6e98
|
||||
SHA1 (patch-libaudiofile_modules_SimpleModule.h) = 73aeee36ef390502b38353e35bb56776a4ca052d
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
$NetBSD: patch-libaudiofile_modules_SimpleModule.h,v 1.1 2016/12/17 16:40:31 maya Exp $
|
||||
|
||||
Left shift of a negative number is UB and doesn't build (-fpermissive)
|
||||
Switch with functionally identical but well-defined operation.
|
||||
|
||||
--- libaudiofile/modules/SimpleModule.h.orig 2013-03-06 05:30:03.000000000 +0000
|
||||
+++ libaudiofile/modules/SimpleModule.h
|
||||
@@ -123,7 +123,7 @@ struct signConverter
|
||||
typedef typename IntTypes<Format>::UnsignedType UnsignedType;
|
||||
|
||||
static const int kScaleBits = (Format + 1) * CHAR_BIT - 1;
|
||||
- static const int kMinSignedValue = -1 << kScaleBits;
|
||||
+ static const int kMinSignedValue = ~((1 << kScaleBits) - 1);
|
||||
|
||||
struct signedToUnsigned : public std::unary_function<SignedType, UnsignedType>
|
||||
{
|
Loading…
Reference in a new issue