diff options
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 0f2af20447..967670f65f 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -1024,8 +1024,9 @@ UpRTypes : '\\' EUINT64VAL { // Type UpReference } | UpRTypesV '(' ArgTypeListI ')' { // Function derived type? std::vector<const Type*> Params; - mapto($3->begin(), $3->end(), std::back_inserter(Params), - std::mem_fun_ref(&PATypeHolder::get)); + for (std::list<llvm::PATypeHolder>::iterator I = $3->begin(), + E = $3->end(); I != E; ++I) + Params.push_back(*I); bool isVarArg = Params.size() && Params.back() == Type::VoidTy; if (isVarArg) Params.pop_back(); @@ -1050,9 +1051,10 @@ UpRTypes : '\\' EUINT64VAL { // Type UpReference } | '{' TypeListI '}' { // Structure type? std::vector<const Type*> Elements; - mapto($2->begin(), $2->end(), std::back_inserter(Elements), - std::mem_fun_ref(&PATypeHolder::get)); - + for (std::list<llvm::PATypeHolder>::iterator I = $2->begin(), + E = $2->end(); I != E; ++I) + Elements.push_back(*I); + $$ = new PATypeHolder(HandleUpRefs(StructType::get(Elements))); delete $2; } |