#ifndef LLVM_LINKER_H
#define LLVM_LINKER_H
+#include "llvm/ADT/SmallPtrSet.h"
#include <string>
namespace llvm {
class Module;
class StringRef;
+class StructType;
/// This class provides the core functionality of linking in LLVM. It keeps a
/// pointer to the merged module so far. It doesn't take ownership of the
Linker(Module *M);
~Linker();
+
Module *getModule() const { return Composite; }
+ void deleteModule();
/// \brief Link \p Src into the composite. The source is destroyed if
/// \p Mode is DestroySource and preserved if it is PreserveSource.
private:
Module *Composite;
+ SmallPtrSet<StructType*, 32> IdentifiedStructTypes;
};
} // End llvm namespace