- if ($5 && !CurMeth.isDeclare) { // Is null if empty...
- for (list<pair<Argument*, char*> >::iterator I = $5->begin();
- I != $5->end(); ++I) {
- if (setValueName(I->first, I->second)) { // Insert into symtab...
+ if ($5) { // Is null if empty...
+ if (isVarArg) { // Nuke the last entry
+ assert($5->back().first->get() == Type::VoidTy && $5->back().second == 0&&
+ "Not a varargs marker!");
+ delete $5->back().first;
+ $5->pop_back(); // Delete the last entry
+ }
+ Function::aiterator ArgIt = M->abegin();
+ for (vector<pair<PATypeHolder*, char*> >::iterator I = $5->begin();
+ I != $5->end(); ++I, ++ArgIt) {
+ delete I->first; // Delete the typeholder...
+
+ if (setValueName(ArgIt, I->second)) // Insert arg into symtab...