mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-01 01:17:02 +00:00
Fix audio/liblo build with clang 3.5.0
On 64-bit arches, audio/liblo will fail to compile with clang 3.5.0, due to the following -Werror warning: message.c:1000:17: error: absolute value function 'abs' given an argument of type 'long' but has parameter of type 'int' which may cause truncation of value [-Werror,-Wabsolute-value] abs((char *) d - (char *) end), m); ^ On 64-bit arches, pointer differences are usually longs, but simply replacing the abs() call with labs() is also not a good solution, because then the code is incorrect for 32-bit arches. Fix this by using a ternary operator expression, which is type-safe. While here, fix the printf format conversion specifier for printing ptrdiff_t's. Approved by: portmgr (antoine)
This commit is contained in:
parent
9c3d18cec9
commit
845332310d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=373852
13
audio/liblo/files/patch-src-messages.c
Normal file
13
audio/liblo/files/patch-src-messages.c
Normal file
@ -0,0 +1,13 @@
|
||||
--- src/message.c.orig 2014-01-20 12:49:42.000000000 +0100
|
||||
+++ src/message.c 2014-12-03 23:02:28.000000000 +0100
|
||||
@@ -996,8 +996,8 @@ void lo_message_pp(lo_message m)
|
||||
putchar('\n');
|
||||
if (d != end) {
|
||||
fprintf(stderr,
|
||||
- "liblo warning: type and data do not match (off by %d) in message %p\n",
|
||||
- abs((char *) d - (char *) end), m);
|
||||
+ "liblo warning: type and data do not match (off by %td) in message %p\n",
|
||||
+ d >= end ? (char *) d - (char *) end : (char *) end - (char *) d, m);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user