aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorRainer Orth <ro@gcc.gnu.org>2024-08-03 22:18:11 +0200
committerGitHub <noreply@github.com>2024-08-03 22:18:11 +0200
commit63a7786111c501920afc4cc27a4633f76cdaf803 (patch)
tree8b0a289e3c6b53e716ad278ee9ecec25ff876918 /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parent3a7861ee2381bc3b60b906411f67a719b5d4292a (diff)
downloadllvm-63a7786111c501920afc4cc27a4633f76cdaf803.zip
llvm-63a7786111c501920afc4cc27a4633f76cdaf803.tar.gz
llvm-63a7786111c501920afc4cc27a4633f76cdaf803.tar.bz2
[builtins] Fix divtc3.c etc. compilation on Solaris/SPARC with gcc (#101662)
`compiler-rt/lib/builtins/divtc3.c` and `multc3.c` don't compile on Solaris/sparcv9 with `gcc -m32`: ``` FAILED: projects/compiler-rt/lib/builtins/CMakeFiles/clang_rt.builtins-sparc.dir/divtc3.c.o [...] compiler-rt/lib/builtins/divtc3.c: In function ‘__divtc3’: compiler-rt/lib/builtins/divtc3.c:22:18: error: implicit declaration of function ‘__compiler_rt_logbtf’ [-Wimplicit-function-declaration] 22 | fp_t __logbw = __compiler_rt_logbtf( | ^~~~~~~~~~~~~~~~~~~~ ``` and many more. It turns out that while the definition of `__divtc3` is guarded with `CRT_HAS_F128`, the `__compiler_rt_logbtf` and other declarations use `CRT_HAS_128BIT && CRT_HAS_F128` as guard. This only shows up with `gcc` since, as documented in Issue #41838, `clang` violates the SPARC psABI in not using 128-bit `long double`, so this code path isn't used. Fixed by changing the guards to match. Tested on `sparcv9-sun-solaris2.11`.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions