X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=include%2Fllvm%2FLinker%2FLinker.h;h=50922e3ebe225131900182083eba224e92ac4afc;hp=18fa412d24af0ae956eefb872a92f031de8516f1;hb=0660f174cfea90586a2ef3cab733431e2365d018;hpb=68aeef61f4a1da7af53b6ddcdbb6eb75da7eb72d diff --git a/include/llvm/Linker/Linker.h b/include/llvm/Linker/Linker.h index 18fa412d24a..50922e3ebe2 100644 --- a/include/llvm/Linker/Linker.h +++ b/include/llvm/Linker/Linker.h @@ -12,8 +12,10 @@ #include "llvm/ADT/SmallPtrSet.h" -namespace llvm { +#include +namespace llvm { +class DiagnosticInfo; class Module; class StructType; @@ -28,6 +30,10 @@ class Linker { PreserveSource = 1 // Preserve the source module. }; + typedef std::function + DiagnosticHandlerFunction; + + Linker(Module *M, DiagnosticHandlerFunction DiagnosticHandler); Linker(Module *M); ~Linker(); @@ -44,11 +50,18 @@ class Linker { return linkInModule(Src, Linker::DestroySource); } - static bool LinkModules(Module *Dest, Module *Src, unsigned Mode); + static bool + LinkModules(Module *Dest, Module *Src, unsigned Mode, + DiagnosticHandlerFunction DiagnosticHandler); + + static bool + LinkModules(Module *Dest, Module *Src, unsigned Mode); + private: Module *Composite; SmallPtrSet IdentifiedStructTypes; + DiagnosticHandlerFunction DiagnosticHandler; }; } // End llvm namespace