aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-03-03 20:02:02 +0000
committerDevang Patel <dpatel@apple.com>2011-03-03 20:02:02 +0000
commitcb3a65755e5161519355e5aad5107915be750597 (patch)
tree093f59ae347553b4a2d90c0983d5200e1bb7e8a3 /lib/CodeGen
parent0f657b156f3d0890584bedda7294932a20b2ea16 (diff)
downloadexternal_llvm-cb3a65755e5161519355e5aad5107915be750597.zip
external_llvm-cb3a65755e5161519355e5aad5107915be750597.tar.gz
external_llvm-cb3a65755e5161519355e5aad5107915be750597.tar.bz2
llvm::Function argument count is not a good indicator of how many arugments does the function have at source level. If we need more space, just resize vector conservatively. This vector is only used once per function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126957 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfDebug.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 9aa0389..2feb125 100644
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -2330,8 +2330,11 @@ bool DwarfDebug::addCurrentFnArgument(const MachineFunction *MF,
if (ArgNo == 0)
return false;
- if (CurrentFnArguments.size() == 0)
+ size_t Size = CurrentFnArguments.size();
+ if (Size == 0)
CurrentFnArguments.resize(MF->getFunction()->arg_size());
+ else if (ArgNo > Size)
+ CurrentFnArguments.resize(ArgNo * 2);
CurrentFnArguments[ArgNo - 1] = Var;
return true;
}