Author: Joseph Huber Date: 2024-06-26T18:12:46-05:00 New Revision: f23a5f08f4b8d7734cf11342b2c1a405823e899e
URL: https://github.com/llvm/llvm-project/commit/f23a5f08f4b8d7734cf11342b2c1a405823e899e DIFF: https://github.com/llvm/llvm-project/commit/f23a5f08f4b8d7734cf11342b2c1a405823e899e.diff LOG: [libc] Remove atomic alignment diagnostics globally (#96803) Summary: These warnings mean that it will lower to a libcall. Previously we just disabled it locally, which didn't work with GCC. This patch does it globally in the compiler options if the compiler is clang. Added: Modified: clang/cmake/caches/Fuchsia-stage2.cmake libc/src/stdlib/rand.cpp libc/src/stdlib/srand.cpp Removed: ################################################################################ diff --git a/clang/cmake/caches/Fuchsia-stage2.cmake b/clang/cmake/caches/Fuchsia-stage2.cmake index a573ec5473210..9892b5d58e719 100644 --- a/clang/cmake/caches/Fuchsia-stage2.cmake +++ b/clang/cmake/caches/Fuchsia-stage2.cmake @@ -321,7 +321,7 @@ foreach(target armv6m-unknown-eabi;armv7m-unknown-eabi;armv8m-unknown-eabi) set(RUNTIMES_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") set(RUNTIMES_${target}_CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "") foreach(lang C;CXX;ASM) - set(RUNTIMES_${target}_CMAKE_${lang}_FLAGS "--target=${target} -mthumb" CACHE STRING "") + set(RUNTIMES_${target}_CMAKE_${lang}_FLAGS "--target=${target} -mthumb -Wno-atomic-alignment" CACHE STRING "") endforeach() foreach(type SHARED;MODULE;EXE) set(RUNTIMES_${target}_CMAKE_${type}_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "") diff --git a/libc/src/stdlib/rand.cpp b/libc/src/stdlib/rand.cpp index 8f2ae90336d51..ff3875c2f6959 100644 --- a/libc/src/stdlib/rand.cpp +++ b/libc/src/stdlib/rand.cpp @@ -13,10 +13,6 @@ namespace LIBC_NAMESPACE { -// Silence warnings on targets with slow atomics. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Watomic-alignment" - // An implementation of the xorshift64star pseudo random number generator. This // is a good general purpose generator for most non-cryptographics applications. LLVM_LIBC_FUNCTION(int, rand, (void)) { @@ -33,6 +29,4 @@ LLVM_LIBC_FUNCTION(int, rand, (void)) { } } -#pragma GCC diagnostic pop - } // namespace LIBC_NAMESPACE diff --git a/libc/src/stdlib/srand.cpp b/libc/src/stdlib/srand.cpp index 681aad8fac4e8..21166c7a6754e 100644 --- a/libc/src/stdlib/srand.cpp +++ b/libc/src/stdlib/srand.cpp @@ -12,14 +12,8 @@ namespace LIBC_NAMESPACE { -// Silence warnings on targets with slow atomics. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Watomic-alignment" - LLVM_LIBC_FUNCTION(void, srand, (unsigned int seed)) { rand_next.store(seed, cpp::MemoryOrder::RELAXED); } -#pragma GCC diagnostic pop - } // namespace LIBC_NAMESPACE _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits