learn about some more functions.
authorChris Lattner <sabre@nondot.org>
Tue, 29 Mar 2005 20:04:24 +0000 (20:04 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 29 Mar 2005 20:04:24 +0000 (20:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20929 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/IPA/Andersens.cpp

index ed9d54953e19e9d8867ac3785e9494b8ca16f1c7..9ed21e06908f8ba15175eebc2cc214d31f858a7b 100644 (file)
@@ -612,11 +612,12 @@ bool Andersens::AddConstraintsForExternalCall(CallSite CS, Function *F) {
   // These functions don't induce any points-to constraints.
   if (F->getName() == "printf" || F->getName() == "fprintf" ||
       F->getName() == "sprintf" ||
-      F->getName() == "fgets" ||
+      F->getName() == "fgets" || F->getName() == "__assert_fail" ||
       F->getName() == "open" || F->getName() == "fopen" ||
       F->getName() == "fclose" || F->getName() == "fflush" ||
       F->getName() == "rewind" ||
-      F->getName() == "atoi" || F->getName() == "unlink" ||
+      F->getName() == "atoi" || F->getName() == "atol" ||
+      F->getName() == "unlink" ||
       F->getName() == "sscanf" || F->getName() == "fscanf" ||
       F->getName() == "llvm.memset" || F->getName() == "memcmp" ||
       F->getName() == "read" || F->getName() == "write")
@@ -633,8 +634,10 @@ bool Andersens::AddConstraintsForExternalCall(CallSite CS, Function *F) {
     return true;
   }
 
-  if (F->getName() == "realloc") {
-    // Result = Arg
+  // Result = Arg0
+  if (F->getName() == "realloc" || F->getName() == "strchr" ||
+      F->getName() == "strrchr" || F->getName() == "strstr" ||
+      F->getName() == "strtok") {
     Constraints.push_back(Constraint(Constraint::Copy,
                                      getNode(CS.getInstruction()),
                                      getNode(CS.getArgument(0))));