[all-commits] [llvm/llvm-project] b1e542: [NFC-I] Remove hack for fp-classification builtins
Erich Keane via All-commits
all-commits at lists.llvm.org
Mon Dec 16 13:05:11 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: b1e542f302c1ed796ad9f703d4d36e010afcb914
https://github.com/llvm/llvm-project/commit/b1e542f302c1ed796ad9f703d4d36e010afcb914
Author: Erich Keane <erich.keane at intel.com>
Date: 2019-12-16 (Mon, 16 Dec 2019)
Changed paths:
M clang/include/clang/Basic/Builtins.def
M clang/lib/Sema/SemaChecking.cpp
A clang/test/Sema/builtin-fpclassification.c
M clang/test/Sema/crash-invalid-builtin.c
Log Message:
-----------
[NFC-I] Remove hack for fp-classification builtins
The FP-classification builtins (__builtin_isfinite, etc) use variadic
packs in the definition file to mean an overload set. Because of that,
floats were converted to doubles, which is incorrect. There WAS a patch
to remove the cast after the fact.
THis patch switches these builtins to just be custom type checking,
calls the implicit conversions for the integer members, and makes sure
the correct L->R casts are put into place, then does type checking like
normal.
A future direction (that wouldn't be NFC) would consider making
conversions for the floating point parameter legal.
More information about the All-commits
mailing list