From 12101ca8e322c4cbf40e44b5b1fbf7ea76aff581 Mon Sep 17 00:00:00 2001 From: Nick Desaulniers Date: Mon, 8 Jan 2024 08:51:44 -0800 Subject: [PATCH] [libc] set -Wno-frame-address for thread.cpp (#77140) The aarch64 code is using __builtin_return_address with a non-zero parameter, which generates the following warning: llvm-project/libc/src/__support/threads/linux/thread.cpp:171:38: error: calling '__builtin_frame_address' with a nonzero argument is unsafe [-Werror,-Wframe-address] 171 | return reinterpret_cast(__builtin_frame_address(1)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ Disable this diagnostic just for this file so that we can enable -Werror. Fixes: #77007 --- libc/src/__support/threads/linux/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libc/src/__support/threads/linux/CMakeLists.txt b/libc/src/__support/threads/linux/CMakeLists.txt index 642eead72772..148a0ba061c5 100644 --- a/libc/src/__support/threads/linux/CMakeLists.txt +++ b/libc/src/__support/threads/linux/CMakeLists.txt @@ -39,6 +39,8 @@ add_object_library( -O3 -fno-omit-frame-pointer # This allows us to sniff out the thread args from # the new thread's stack reliably. + -Wno-frame-address # Yes, calling __builtin_return_address with a + # value other than 0 is dangerous. We know. ) add_object_library(