[RuntimeDyld] Add an assert to catch misbehaving symbol resolvers.

Resolvers are required to find results for all requested symbols or return an
error, but if a resolver fails to adhere to this contract (by returning results
for only a subset of the requested symbols) then this code will infinite loop.
This assertion catches resolvers that fail to adhere to the contract.

llvm-svn: 334536
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
index d3ac4f1..1189be5 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
@@ -1017,6 +1017,9 @@
       if (!NewResolverResults)
         return NewResolverResults.takeError();
 
+      assert(NewResolverResults->size() == NewSymbols.size() &&
+             "Should have errored on unresolved symbols");
+
       for (auto &RRKV : *NewResolverResults) {
         assert(!ResolvedSymbols.count(RRKV.first) && "Redundant resolution?");
         ExternalSymbolMap.insert(RRKV);