For PR780:

1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
   with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28715 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer
2006-06-07 22:00:26 +00:00
parent 6296b3cac5
commit 4f1bd9e996
19 changed files with 57 additions and 78 deletions

View File

@@ -27,13 +27,15 @@
/// And, foo.cp would use:<br/>
/// <tt>DEFINING_FILE_FOR(foo)</tt><br/>
#define FORCE_DEFINING_FILE_TO_BE_LINKED(name) \
extern char name ## LinkVar; \
static IncludeFile name ## LinkObj ( &name ## LinkVar )
namespace llvm { \
extern char name ## LinkVar; \
static IncludeFile name ## LinkObj ( &name ## LinkVar ); \
}
/// This macro is the counterpart to FORCE_DEFINING_FILE_TO_BE_LINKED. It should
/// be used in a .cpp file to define the name referenced in a header file that
/// will cause linkage of the .cpp file. It should only be used at extern level.
#define DEFINING_FILE_FOR(name) char name
#define DEFINING_FILE_FOR(name) namespace llvm { char name ## LinkVar; }
namespace llvm {