Fix PR2267, by allowing indirect outputs to be intermixed
[oota-llvm.git] / lib / VMCore / Module.cpp
index a6a859172b06b018f535f57d356bec24cc8984a7..429cf1a4c69508066e17a9f8569a22ce7a21871e 100644 (file)
@@ -23,7 +23,6 @@
 #include <algorithm>
 #include <cstdarg>
 #include <cstdlib>
-#include <map>
 using namespace llvm;
 
 //===----------------------------------------------------------------------===//
@@ -33,7 +32,7 @@ using namespace llvm;
 Function *ilist_traits<Function>::createSentinel() {
   FunctionType *FTy =
     FunctionType::get(Type::VoidTy, std::vector<const Type*>(), false);
-  Function *Ret = new Function(FTy, GlobalValue::ExternalLinkage);
+  Function *Ret = Function::Create(FTy, GlobalValue::ExternalLinkage);
   // This should not be garbage monitored.
   LeakDetector::removeGarbageObject(Ret);
   return Ret;
@@ -150,7 +149,7 @@ Constant *Module::getOrInsertFunction(const std::string &Name,
   GlobalValue *F = dyn_cast_or_null<GlobalValue>(SymTab.lookup(Name));
   if (F == 0) {
     // Nope, add it
-    Function *New = new Function(Ty, GlobalVariable::ExternalLinkage, Name);
+    Function *New = Function::Create(Ty, GlobalVariable::ExternalLinkage, Name);
     FunctionList.push_back(New);
     return New;                    // Return the new prototype.
   }