diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index 3e819071f6111c..16478c1f12e03d 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -390,6 +390,8 @@ if (CLR_CMAKE_HOST_UNIX) # to a struct or a class that has virtual members or a base class. In that case, clang # may not generate the same object layout as MSVC. add_compile_options(-Wno-incompatible-ms-struct) + + add_compile_options(-Wno-reserved-identifier) else() add_compile_options(-Wno-unused-but-set-variable) add_compile_options(-Wno-uninitialized) diff --git a/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c b/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c index f0273afac9fa6c..b3c2d6f95de957 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c +++ b/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c @@ -815,6 +815,7 @@ static int32_t GetSearchIteratorUsingCollator( if (!U_SUCCESS(err)) { int32_t r; + (void)r; // used only in assert r = RestoreSearchHandle(pSortHandle, *pSearchIterator, options); assert(r && "restoring search handle shouldn't fail."); return -1; @@ -824,6 +825,7 @@ static int32_t GetSearchIteratorUsingCollator( if (!U_SUCCESS(err)) { int32_t r; + (void)r; // used only in assert r = RestoreSearchHandle(pSortHandle, *pSearchIterator, options); assert(r && "restoring search handle shouldn't fail."); return -1; diff --git a/src/libraries/Native/Unix/System.Native/pal_process.c b/src/libraries/Native/Unix/System.Native/pal_process.c index 5e97d958f74d17..fabdfae76187ca 100644 --- a/src/libraries/Native/Unix/System.Native/pal_process.c +++ b/src/libraries/Native/Unix/System.Native/pal_process.c @@ -191,6 +191,24 @@ static int SetGroups(uint32_t* userGroups, int32_t userGroupsLength, uint32_t* p return rv; } +typedef void (*VoidIntFn)(int); + +static +VoidIntFn +handler_from_sigaction (struct sigaction *sa) +{ + if (((unsigned int)sa->sa_flags) & SA_SIGINFO) + { + // work around -Wcast-function-type + void (*tmp)(void) = (void (*)(void))sa->sa_sigaction; + return (void (*)(int))tmp; + } + else + { + return sa->sa_handler; + } +} + int32_t SystemNative_ForkAndExecProcess(const char* filename, char* const argv[], char* const envp[], @@ -371,7 +389,7 @@ int32_t SystemNative_ForkAndExecProcess(const char* filename, } if (!sigaction(sig, NULL, &sa_old)) { - void (*oldhandler)(int) = (((unsigned int)sa_old.sa_flags) & SA_SIGINFO) ? (void (*)(int))sa_old.sa_sigaction : sa_old.sa_handler; + void (*oldhandler)(int) = handler_from_sigaction (&sa_old); if (oldhandler != SIG_IGN && oldhandler != SIG_DFL) { // It has a custom handler, put the default handler back. diff --git a/src/libraries/Native/Unix/System.Native/pal_signal.c b/src/libraries/Native/Unix/System.Native/pal_signal.c index 6e7243fca17eee..39ed43f092f3fe 100644 --- a/src/libraries/Native/Unix/System.Native/pal_signal.c +++ b/src/libraries/Native/Unix/System.Native/pal_signal.c @@ -627,6 +627,7 @@ void SystemNative_DisablePosixSignalHandling(int signalCode) void InstallTTOUHandlerForConsole(ConsoleSigTtouHandler handler) { bool installed; + (void)installed; // used only for assert pthread_mutex_lock(&lock); { diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native/openssl.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native/openssl.c index c18eb0ffb7c6bb..2de6635a036e07 100644 --- a/src/libraries/Native/Unix/System.Security.Cryptography.Native/openssl.c +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native/openssl.c @@ -1289,6 +1289,7 @@ static void HandleShutdown() // ensures that there are no callers already inside the string table // when the unload (possibly) executes. int result = pthread_mutex_lock(&g_err_mutex); + (void)result; // used only in assert assert(!result && "Acquiring the error string table mutex failed."); g_err_unloaded = 1; diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_err.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_err.c index e1ca3292fbab2e..0dc9813138d6d2 100644 --- a/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_err.c +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_err.c @@ -37,6 +37,7 @@ const char* CryptoNative_ErrReasonErrorString(uint64_t error) #if defined NEED_OPENSSL_1_1 || defined NEED_OPENSSL_3_0 int result = pthread_mutex_lock(&g_err_mutex); + (void)result; // used only in assert assert(!result && "Acquiring the error string table mutex failed."); if (!g_err_unloaded) @@ -57,6 +58,7 @@ void CryptoNative_ErrErrorStringN(uint64_t e, char* buf, int32_t len) { #if defined NEED_OPENSSL_1_1 || defined NEED_OPENSSL_3_0 int result = pthread_mutex_lock(&g_err_mutex); + (void)result; // used only in assert assert(!result && "Acquiring the error string table mutex failed."); if (!g_err_unloaded) diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ssl.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ssl.c index 2b4eb271b022a2..7139a3a62388a2 100644 --- a/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ssl.c +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ssl.c @@ -75,6 +75,7 @@ static void DetectCiphersuiteConfiguration() SSL_free(ssl); int rv = SSL_CTX_set_cipher_list(ctx, "ALL"); + (void)rv; // used only in assert assert(rv); ssl = SSL_new(ctx);