sepavloff added a comment. In D152351#4402615 <https://reviews.llvm.org/D152351#4402615>, @qiucf wrote:
> It's necessary to check range of first argument in `SemaChecking.cpp` using > `SemaBuiltinConstantArgRange`. > > _Bool check_isfpclass_1(float x) { return __builtin_isfpclass(123456, x); } > // ICE > > int g; > // error: cannot compile this builtin function yet > // there's better diagnostics when 1st argument is not constant > _Bool check_isfpclass_2(float x) { return __builtin_isfpclass(g, x); } Added the check and a test for it. Thanks! ================ Comment at: clang/include/clang/Basic/Builtins.def:491 BUILTIN(__builtin_isnormal, "i.", "FnctE") +BUILTIN(__builtin_isfpclass, "iCi.", "nctE") ---------------- qiucf wrote: > Why these intrinsics' type spec end with dot? I thought they are for vaargs. It is a hack to have polymorphic builtin function. The argument `.` represents one argument but it can be of any type. So no need to have separate functions for every type. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D152351/new/ https://reviews.llvm.org/D152351 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits