[llvm-commits] [poolalloc] r111446 - /poolalloc/trunk/lib/DSA/DSGraph.cpp

Will Dietz wdietz2 at illinois.edu
Wed Aug 18 16:02:09 PDT 2010


Author: wdietz2
Date: Wed Aug 18 18:02:09 2010
New Revision: 111446

URL: http://llvm.org/viewvc/llvm-project?rev=111446&view=rev
Log:
When checking byval-ness, don't walk off the end of the function argument list.
Fixes segfault on 253.perlbmk

Modified:
    poolalloc/trunk/lib/DSA/DSGraph.cpp

Modified: poolalloc/trunk/lib/DSA/DSGraph.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/DSGraph.cpp?rev=111446&r1=111445&r2=111446&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/DSGraph.cpp (original)
+++ poolalloc/trunk/lib/DSA/DSGraph.cpp Wed Aug 18 18:02:09 2010
@@ -1410,8 +1410,9 @@
   // argument is not (or vice-versa), then the function is not a valid target.
   //
   if (!noDSACallConv) {
-    Function::const_arg_iterator farg = F->arg_begin();
-    for (unsigned index = 1; index < (CS.arg_size() + 1); ++farg, ++index) {
+    Function::const_arg_iterator farg = F->arg_begin(), fend = F->arg_end();
+    for (unsigned index = 1; index < (CS.arg_size() + 1) && farg != fend;
+        ++farg, ++index) {
       if (CS.paramHasAttr (index, Attribute::ByVal) != farg->hasByValAttr()) {
         return false;
       }





More information about the llvm-commits mailing list