================
@@ -1466,6 +1466,58 @@ void 
Sema::checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD,
     break;
   }
 
+  case Builtin::BIread:
+  case Builtin::BIpread:
+  case Builtin::BIpread64:
+  case Builtin::BIreadlink:
+  case Builtin::BIreadlinkat:
+  case Builtin::BIgetcwd: {
+    unsigned BufIdx = 1;
+    if (BuiltinID == Builtin::BIgetcwd)
+      BufIdx = 0;
+    else if (BuiltinID == Builtin::BIreadlinkat)
+      BufIdx = 2;
+    unsigned CountIdx = BufIdx + 1;
+    unsigned ExpectedArgs = CountIdx + 1;
+    if (BuiltinID == Builtin::BIpread || BuiltinID == Builtin::BIpread64)
+      ++ExpectedArgs;
+    if (TheCall->getNumArgs() != ExpectedArgs ||
+        !TheCall->getArg(BufIdx)->getType()->isPointerType() ||
+        !TheCall->getArg(CountIdx)->getType()->isIntegerType())
+      return;
+    if (BuiltinID != Builtin::BIgetcwd &&
+        !(BuiltinID == Builtin::BIreadlink
+              ? TheCall->getArg(0)->getType()->isPointerType()
+              : TheCall->getArg(0)->getType()->isIntegerType()))
+      return;
+    if (BuiltinID == Builtin::BIreadlinkat &&
+        !TheCall->getArg(1)->getType()->isPointerType())
+      return;
----------------
nuclearcat wrote:

Done

https://github.com/llvm/llvm-project/pull/224979
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to