diff options
Diffstat (limited to 'llvm/lib/AsmParser/llvmAsmParser.y')
| -rw-r--r-- | llvm/lib/AsmParser/llvmAsmParser.y | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/AsmParser/llvmAsmParser.y b/llvm/lib/AsmParser/llvmAsmParser.y index 98d79e01c9d..a5a844b1d8e 100644 --- a/llvm/lib/AsmParser/llvmAsmParser.y +++ b/llvm/lib/AsmParser/llvmAsmParser.y @@ -515,7 +515,13 @@ static bool setValueName(Value *V, char *NameStr) { CurFun.CurrentFunction->getSymbolTable() : CurModule.CurrentModule->getSymbolTable(); - Value *Existing = ST.lookup(V->getType(), Name); + Value *Existing; + // FIXME: this is really gross + if (V->getType() != Type::TypeTy) + Existing = ST.lookup(V->getType(), Name); + else + Existing = ST.lookupType(Name); + if (Existing) { // Inserting a name that is already defined??? // There is only one case where this is allowed: when we are refining an // opaque type. In this case, Existing will be an opaque type. |

