================
@@ -692,23 +692,22 @@ static RValue emitLibraryCall(CodeGenFunction &CGF, const 
FunctionDecl *FD,
   RValue Call =
       CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot());
 
-  // Check the supported intrinsic.
+  ASTContext &Context = CGF.getContext();
   if (unsigned BuiltinID = FD->getBuiltinID()) {
     auto IsErrnoIntrinsic = [&]() -> unsigned {
-      switch (BuiltinID) {
-      case Builtin::BIexpf:
-      case Builtin::BI__builtin_expf:
-      case Builtin::BI__builtin_expf128:
+      // Check whether a FP math builtin function, such as BI__builtin_expf
+      QualType ResultTy = FD->getReturnType();
+      bool ConstWithoutErrnoAndExceptions =
+          Context.BuiltinInfo.isConstWithoutErrnoAndExceptions(BuiltinID);
+      if (ConstWithoutErrnoAndExceptions &&
+          CGF.ConvertType(ResultTy)->isFloatingPointTy())
----------------
arsenm wrote:

The isFloatingPointTy check should be unnecessary. You can then just remove the 
whole lambda and directly check  isConstWithoutErrnoAndExceptions

https://github.com/llvm/llvm-project/pull/100302
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to