From 905f9ce02c37d5e54b077bc8650fe07336a01a81 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Wed, 2 Oct 2024 20:33:50 -0700 Subject: [PATCH] [Hashing] Remove Clang<=11 -fno-pic workaround If the LLVM build and an API user have different `(!defined(__clang__) || __clang_major__ > 11)` values, we will have a non-benign ODR violation and some users prefer a clear error to silent breakage. The Clang<=11 -fno-pic x86-64 workaround is likely not useful anyway because builds are mostly PIC (`POSITION_INDEPENDENT_CODE` or LLVM_ENABLE_PIC). --- llvm/include/llvm/ADT/Hashing.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/llvm/include/llvm/ADT/Hashing.h b/llvm/include/llvm/ADT/Hashing.h index 109966257b51c..17dcf31c616aa 100644 --- a/llvm/include/llvm/ADT/Hashing.h +++ b/llvm/include/llvm/ADT/Hashing.h @@ -311,10 +311,7 @@ struct hash_state { /// depend on the particular hash values. On platforms without ASLR, this is /// still likely non-deterministic per build. inline uint64_t get_execution_seed() { - // Work around x86-64 negative offset folding for old Clang -fno-pic - // https://reviews.llvm.org/D93931 -#if LLVM_ENABLE_ABI_BREAKING_CHECKS && \ - (!defined(__clang__) || __clang_major__ > 11) +#if LLVM_ENABLE_ABI_BREAKING_CHECKS return static_cast( reinterpret_cast(&install_fatal_error_handler)); #else