clang: fix -Wextra-semi warnings (#1134)

Achieved by adding do/while to mandate a semicolon.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev
2023-09-15 23:23:45 -07:00
committed by GitHub
parent 7646184d6b
commit 97a74ca3d8
3 changed files with 108 additions and 70 deletions

View File

@ -23,45 +23,45 @@
#define TAGLIB_MODFILEPRIVATE_H
// some helper-macros only used internally by (s3m|it|xm)file.cpp
#define READ_ASSERT(cond) \
if(!(cond)) \
{ \
setValid(false); \
return; \
}
#define READ_ASSERT(cond) \
do { \
if(!(cond)) { \
setValid(false); \
return; \
} \
} while(0)
#define READ(setter,type,read) \
{ \
type number; \
READ_ASSERT(read(number)); \
setter(number); \
}
#define READ(setter, type, read) \
do { \
type number; \
READ_ASSERT(read(number)); \
setter(number); \
} while(0)
#define READ_BYTE(setter) READ(setter,unsigned char,readByte)
#define READ_U16L(setter) READ(setter,unsigned short,readU16L)
#define READ_U32L(setter) READ(setter,unsigned long,readU32L)
#define READ_U16B(setter) READ(setter,unsigned short,readU16B)
#define READ_U32B(setter) READ(setter,unsigned long,readU32B)
#define READ_BYTE(setter) READ(setter, unsigned char, readByte)
#define READ_U16L(setter) READ(setter, unsigned short, readU16L)
#define READ_U32L(setter) READ(setter, unsigned long, readU32L)
#define READ_U16B(setter) READ(setter, unsigned short, readU16B)
#define READ_U32B(setter) READ(setter, unsigned long, readU32B)
#define READ_STRING(setter,size) \
{ \
String s; \
READ_ASSERT(readString(s, size)); \
setter(s); \
}
#define READ_STRING(setter, size) \
do { \
String s; \
READ_ASSERT(readString(s, size)); \
setter(s); \
} while(0)
#define READ_AS(type,name,read) \
type name = 0; \
READ_ASSERT(read(name));
#define READ_AS(type, name, read) \
type name = 0; \
READ_ASSERT(read(name))
#define READ_BYTE_AS(name) READ_AS(unsigned char,name,readByte)
#define READ_U16L_AS(name) READ_AS(unsigned short,name,readU16L)
#define READ_U32L_AS(name) READ_AS(unsigned long,name,readU32L)
#define READ_U16B_AS(name) READ_AS(unsigned short,name,readU16B)
#define READ_U32B_AS(name) READ_AS(unsigned long,name,readU32B)
#define READ_STRING_AS(name,size) \
String name; \
READ_ASSERT(readString(name, size));
#define READ_BYTE_AS(name) READ_AS(unsigned char, name, readByte)
#define READ_U16L_AS(name) READ_AS(unsigned short, name, readU16L)
#define READ_U32L_AS(name) READ_AS(unsigned long, name, readU32L)
#define READ_U16B_AS(name) READ_AS(unsigned short, name, readU16B)
#define READ_U32B_AS(name) READ_AS(unsigned long, name, readU32B)
#define READ_STRING_AS(name, size) \
String name; \
READ_ASSERT(readString(name, size))
#endif

View File

@ -32,31 +32,37 @@
using namespace TagLib;
#define stringUnion(method) \
if(tag(0) && !tag(0)->method().isEmpty()) \
return tag(0)->method(); \
if(tag(1) && !tag(1)->method().isEmpty()) \
return tag(1)->method(); \
if(tag(2) && !tag(2)->method().isEmpty()) \
return tag(2)->method(); \
return String(); \
#define stringUnion(method) \
do { \
if(tag(0) && !tag(0)->method().isEmpty()) \
return tag(0)->method(); \
if(tag(1) && !tag(1)->method().isEmpty()) \
return tag(1)->method(); \
if(tag(2) && !tag(2)->method().isEmpty()) \
return tag(2)->method(); \
return String(); \
} while(0)
#define numberUnion(method) \
if(tag(0) && tag(0)->method() > 0) \
return tag(0)->method(); \
if(tag(1) && tag(1)->method() > 0) \
return tag(1)->method(); \
if(tag(2) && tag(2)->method() > 0) \
return tag(2)->method(); \
return 0
#define numberUnion(method) \
do { \
if(tag(0) && tag(0)->method() > 0) \
return tag(0)->method(); \
if(tag(1) && tag(1)->method() > 0) \
return tag(1)->method(); \
if(tag(2) && tag(2)->method() > 0) \
return tag(2)->method(); \
return 0; \
} while(0)
#define setUnion(method, value) \
if(tag(0)) \
tag(0)->set##method(value); \
if(tag(1)) \
tag(1)->set##method(value); \
if(tag(2)) \
tag(2)->set##method(value); \
#define setUnion(method, value) \
do { \
if(tag(0)) \
tag(0)->set##method(value); \
if(tag(1)) \
tag(1)->set##method(value); \
if(tag(2)) \
tag(2)->set##method(value); \
} while(0)
class TagUnion::TagUnionPrivate
{