From c37fca1492a26e0eb4eb1e77833a1489fa73ff62 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 21 Aug 2002 23:48:55 +0000 Subject: [PATCH] Add a class that is useful for hacking around linking problem due to 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 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/llvm/PassSupport.h b/include/llvm/PassSupport.h index e7bb0418254..270b9f6108a 100644 --- a/include/llvm/PassSupport.h +++ b/include/llvm/PassSupport.h @@ -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