diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2007-03-30 01:37:39 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2007-03-30 01:37:39 +0000 |
commit | ef01c47512f97c9846dea7a9c50ba11701b3b38d (patch) | |
tree | c86db85e24047664a88719e58911bb2da2b8a0cb /llvm/lib/AsmParser/llvmAsmParser.cpp.cvs | |
parent | cf2ccbff1a683d13fb3ea3198e983a32328c758b (diff) | |
download | bcm5719-llvm-ef01c47512f97c9846dea7a9c50ba11701b3b38d.tar.gz bcm5719-llvm-ef01c47512f97c9846dea7a9c50ba11701b3b38d.zip |
For PR1289: Regenerate
llvm-svn: 35500
Diffstat (limited to 'llvm/lib/AsmParser/llvmAsmParser.cpp.cvs')
-rw-r--r-- | llvm/lib/AsmParser/llvmAsmParser.cpp.cvs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs b/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs index ae45d47ae86..52330541189 100644 --- a/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs +++ b/llvm/lib/AsmParser/llvmAsmParser.cpp.cvs @@ -5946,6 +5946,38 @@ static Module* RunParser(Module * M) { return 0; } + // Emit an error if there are any unresolved types left. + if (!CurModule.LateResolveTypes.empty()) { + const ValID &DID = CurModule.LateResolveTypes.begin()->first; + if (DID.Type == ValID::LocalName) { + GenerateError("Undefined type remains at eof: '"+DID.getName() + "'"); + } else { + GenerateError("Undefined type remains at eof: #" + itostr(DID.Num)); + } + if (ParserResult) + delete ParserResult; + return 0; + } + + // Emit an error if there are any unresolved values left. + if (!CurModule.LateResolveValues.empty()) { + Value *V = CurModule.LateResolveValues.back(); + std::map<Value*, std::pair<ValID, int> >::iterator I = + CurModule.PlaceHolderInfo.find(V); + + if (I != CurModule.PlaceHolderInfo.end()) { + ValID &DID = I->second.first; + if (DID.Type == ValID::LocalName) { + GenerateError("Undefined value remains at eof: "+DID.getName() + "'"); + } else { + GenerateError("Undefined value remains at eof: #" + itostr(DID.Num)); + } + if (ParserResult) + delete ParserResult; + return 0; + } + } + // Check to make sure that parsing produced a result if (!ParserResult) return 0; |