]> granicus.if.org Git - clang/commitdiff
__builtin_fpclassify missing one int parameter
authorDavid Sheinkman <davidsheinkman@outlook.com>
Fri, 14 Oct 2016 20:43:37 +0000 (20:43 +0000)
committerDavid Sheinkman <davidsheinkman@outlook.com>
Fri, 14 Oct 2016 20:43:37 +0000 (20:43 +0000)
Patch by Tania Albarghouthi.

Differential Revision: https://reviews.llvm.org/D25480

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284277 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/Builtins.def
test/Sema/builtin-unary-fp.c

index c39656cd1b4aa4adb44249b6107362150bbc7719..b1f8253fba7ae898fa7f4afd039ab204b41095bb 100644 (file)
@@ -367,7 +367,7 @@ BUILTIN(__builtin_islessgreater , "i.", "Fnc")
 BUILTIN(__builtin_isunordered   , "i.", "Fnc")
 
 // Unary FP classification
-BUILTIN(__builtin_fpclassify, "iiiii.", "Fnc")
+BUILTIN(__builtin_fpclassify, "iiiiii.", "Fnc")
 BUILTIN(__builtin_isfinite,   "i.", "Fnc")
 BUILTIN(__builtin_isinf,      "i.", "Fnc")
 BUILTIN(__builtin_isinf_sign, "i.", "Fnc")
index 57568db8ae3ff008f05ee415e5141fbc2bdf1bcf..2b75b10fcbe52932cc1c04c94e91064fea1ebf5d 100644 (file)
@@ -11,6 +11,7 @@ void a() {
   check(__builtin_isnan(1,2)); // expected-error{{too many arguments}}
   check(__builtin_fpclassify(0, 0, 0, 0, 0, 1.0));
   check(__builtin_fpclassify(0, 0, 0, 0, 0, 1)); // expected-error{{requires argument of floating point type}}
+  check(__builtin_fpclassify(0, 1, 2, 3, 4.5, 5.0)); // expected-warning{{implicit conversion from 'double' to 'int' changes value from 4.5 to 4}}
   check(__builtin_fpclassify(0, 0, 0, 0, 1)); // expected-error{{too few arguments}}
   check(__builtin_fpclassify(0, 0, 0, 0, 0, 1, 0)); // expected-error{{too many arguments}}
 }