refactor: use C++ static_assert; remove TR_STATIC_ASERT (#1959)

This commit is contained in:
Charles Kerr 2021-10-14 15:40:35 -05:00 committed by GitHub
parent fd5804fbb7
commit f0171668c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 34 deletions

View File

@ -706,9 +706,9 @@ bool tr_sys_file_get_info(tr_sys_file_t handle, tr_sys_path_info* info, tr_error
bool tr_sys_file_seek(tr_sys_file_t handle, int64_t offset, tr_seek_origin_t origin, uint64_t* new_offset, tr_error** error)
{
TR_STATIC_ASSERT(TR_SEEK_SET == SEEK_SET, "values should match");
TR_STATIC_ASSERT(TR_SEEK_CUR == SEEK_CUR, "values should match");
TR_STATIC_ASSERT(TR_SEEK_END == SEEK_END, "values should match");
static_assert(TR_SEEK_SET == SEEK_SET, "values should match");
static_assert(TR_SEEK_CUR == SEEK_CUR, "values should match");
static_assert(TR_SEEK_END == SEEK_END, "values should match");
TR_ASSERT(handle != TR_BAD_SYS_FILE);
TR_ASSERT(origin == TR_SEEK_SET || origin == TR_SEEK_CUR || origin == TR_SEEK_END);
@ -716,7 +716,7 @@ bool tr_sys_file_seek(tr_sys_file_t handle, int64_t offset, tr_seek_origin_t ori
bool ret = false;
off_t my_new_offset;
TR_STATIC_ASSERT(sizeof(*new_offset) >= sizeof(my_new_offset), "");
static_assert(sizeof(*new_offset) >= sizeof(my_new_offset), "");
my_new_offset = lseek(handle, offset, origin);
@ -745,7 +745,7 @@ bool tr_sys_file_read(tr_sys_file_t handle, void* buffer, uint64_t size, uint64_
bool ret = false;
ssize_t my_bytes_read;
TR_STATIC_ASSERT(sizeof(*bytes_read) >= sizeof(my_bytes_read), "");
static_assert(sizeof(*bytes_read) >= sizeof(my_bytes_read), "");
my_bytes_read = read(handle, buffer, size);
@ -782,7 +782,7 @@ bool tr_sys_file_read_at(
bool ret = false;
ssize_t my_bytes_read;
TR_STATIC_ASSERT(sizeof(*bytes_read) >= sizeof(my_bytes_read), "");
static_assert(sizeof(*bytes_read) >= sizeof(my_bytes_read), "");
#ifdef HAVE_PREAD
@ -826,7 +826,7 @@ bool tr_sys_file_write(tr_sys_file_t handle, void const* buffer, uint64_t size,
bool ret = false;
ssize_t my_bytes_written;
TR_STATIC_ASSERT(sizeof(*bytes_written) >= sizeof(my_bytes_written), "");
static_assert(sizeof(*bytes_written) >= sizeof(my_bytes_written), "");
my_bytes_written = write(handle, buffer, size);
@ -863,7 +863,7 @@ bool tr_sys_file_write_at(
bool ret = false;
ssize_t my_bytes_written;
TR_STATIC_ASSERT(sizeof(*bytes_written) >= sizeof(my_bytes_written), "");
static_assert(sizeof(*bytes_written) >= sizeof(my_bytes_written), "");
#ifdef HAVE_PWRITE

View File

@ -998,9 +998,9 @@ bool tr_sys_file_get_info(tr_sys_file_t handle, tr_sys_path_info* info, tr_error
bool tr_sys_file_seek(tr_sys_file_t handle, int64_t offset, tr_seek_origin_t origin, uint64_t* new_offset, tr_error** error)
{
TR_STATIC_ASSERT(TR_SEEK_SET == FILE_BEGIN, "values should match");
TR_STATIC_ASSERT(TR_SEEK_CUR == FILE_CURRENT, "values should match");
TR_STATIC_ASSERT(TR_SEEK_END == FILE_END, "values should match");
static_assert(TR_SEEK_SET == FILE_BEGIN, "values should match");
static_assert(TR_SEEK_CUR == FILE_CURRENT, "values should match");
static_assert(TR_SEEK_END == FILE_END, "values should match");
TR_ASSERT(handle != TR_BAD_SYS_FILE);
TR_ASSERT(origin == TR_SEEK_SET || origin == TR_SEEK_CUR || origin == TR_SEEK_END);
@ -1387,7 +1387,7 @@ tr_sys_dir_t tr_sys_dir_open(char const* path, tr_error** error)
{
#ifndef __clang__
/* Clang gives "static_assert expression is not an integral constant expression" error */
TR_STATIC_ASSERT(TR_BAD_SYS_DIR == nullptr, "values should match");
static_assert(TR_BAD_SYS_DIR == nullptr, "values should match");
#endif
TR_ASSERT(path != nullptr);

View File

@ -87,7 +87,7 @@ static bool tr_spawn_async_in_parent(int pipe_fd, tr_error** error)
int child_errno;
ssize_t count;
TR_STATIC_ASSERT(sizeof(child_errno) == sizeof(errno), "");
static_assert(sizeof(child_errno) == sizeof(errno), "");
do
{

View File

@ -296,7 +296,7 @@ int tr_lpdInit(tr_session* ss, [[maybe_unused]] tr_address* tr_addr)
* string handling in tr_lpdSendAnnounce() and tr_lpdConsiderAnnounce().
* However, the code should work as long as interfaces to the rest of
* libtransmission are compatible with char* strings. */
TR_STATIC_ASSERT(sizeof(((struct tr_info*)nullptr)->hashString[0]) == sizeof(char), "");
static_assert(sizeof(((struct tr_info*)nullptr)->hashString[0]) == sizeof(char), "");
struct ip_mreq mcastReq;
int const opt_on = 1;

View File

@ -114,26 +114,6 @@
****
***/
/**
* @def TR_STATIC_ASSERT
* @brief This helper allows to perform static checks at compile time
*/
#if defined(__cplusplus) || defined(static_assert)
#define TR_STATIC_ASSERT static_assert
#elif __has_feature(c_static_assert) || __has_extension(c_static_assert) || TR_GNUC_CHECK_VERSION(4, 6)
#define TR_STATIC_ASSERT _Static_assert
#else
#define TR_STATIC_ASSERT(x, msg) \
do \
{ \
((void)sizeof(x)); \
} while (0)
#endif
/***
****
***/
/* Only use this macro to suppress false-positive alignment warnings */
#define TR_DISCARD_ALIGN(ptr, type) ((type)(void*)(ptr))