Provide more information in the error message that occurs when there are
unresolved constants remaining.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18502 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index a18019a..8f0a7f8 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -1571,8 +1571,16 @@
// After we have finished parsing the constant pool, we had better not have
// any dangling references left.
- if (!ConstantFwdRefs.empty())
- error("Unresolved constant references exist!");
+ if (!ConstantFwdRefs.empty()) {
+ typedef std::map<std::pair<const Type*,unsigned>, Constant*> ConstantRefsType;
+ ConstantRefsType::const_iterator I = ConstantFwdRefs.begin();
+ const Type* missingType = I->first.first;
+ Constant* missingConst = I->second;
+ error(utostr(ConstantFwdRefs.size()) +
+ " unresolved constant reference exist. First one is '" +
+ missingConst->getName() + "' of type '" +
+ missingType->getDescription() + "'.");
+ }
checkPastBlockEnd("Constant Pool");
if (Handler) Handler->handleGlobalConstantsEnd();