Add a class that is useful for hacking around linking problem due to
authorChris Lattner <sabre@nondot.org>
Wed, 21 Aug 2002 23:48:55 +0000 (23:48 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 21 Aug 2002 23:48:55 +0000 (23:48 +0000)
pass implementations not being linked in when they are used if the
implementation is in a .a file.

  - Fighting with linking problem due to removing the ::ID elements.  Now the
    implementation .cpp files for analyses are not being included into gccas
    and friends because it is linking to the .a file and there is no explicit
    symbol reference to bring in the .o file.  The new IncludeFile hack is the
    result.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3434 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/PassSupport.h

index e7bb0418254a2083709d8a07d5ca301d66582d9c..270b9f6108af11834cf62fc4273f1fb3bf1e0727 100644 (file)
@@ -337,4 +337,14 @@ struct PassRegistrationListener {
   virtual void passEnumerate(const PassInfo *P) {}
 };
 
+
+//===---------------------------------------------------------------------------
+// IncludeFile class - This class is used as a hack to make sure that the
+// implementation of a header file is included into a tool that uses the header.
+// This is solely to overcome problems linking .a files and not getting the
+// implementation of passes we need.
+//
+struct IncludeFile {
+  IncludeFile(void *);
+};
 #endif