OSDN Git Service

Change from using a stub function to a stub variable for passing to the
authorReid Spencer <rspencer@reidspencer.com>
Thu, 1 Jun 2006 07:02:51 +0000 (07:02 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Thu, 1 Jun 2006 07:02:51 +0000 (07:02 +0000)
IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.

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

15 files changed:
include/llvm/Analysis/AliasAnalysis.h
include/llvm/Analysis/CallGraph.h
include/llvm/Analysis/Dominators.h
include/llvm/Analysis/FindUsedTypes.h
include/llvm/Analysis/LoopInfo.h
include/llvm/Analysis/PostDominators.h
include/llvm/Analysis/ValueNumbering.h
lib/Analysis/AliasAnalysis.cpp
lib/Analysis/BasicAliasAnalysis.cpp
lib/Analysis/IPA/CallGraph.cpp
lib/Analysis/IPA/FindUsedTypes.cpp
lib/Analysis/LoopInfo.cpp
lib/Analysis/PostDominators.cpp
lib/Analysis/ValueNumbering.cpp
lib/VMCore/Dominators.cpp

index 1cce4ea..0de7a7f 100644 (file)
@@ -321,8 +321,8 @@ public:
 // the risk of AliasAnalysis being used, but the default implementation not
 // being linked into the tool that uses it.
 //
-extern void BasicAAStub();
-static IncludeFile HDR_INCLUDE_BASICAA_CPP((void*)&BasicAAStub);
+extern int BasicAAStub;
+static IncludeFile HDR_INCLUDE_BASICAA_CPP(&BasicAAStub);
 
 } // End llvm namespace
 
index 7343060..5602cec 100644 (file)
@@ -155,7 +155,7 @@ public:
   void dump() const;
   
   // stub - dummy function, just ignore it
-  static void stub();
+  static int stub;
 protected:
 
   // destroy - Release memory for the call graph
@@ -289,7 +289,7 @@ template<> struct GraphTraits<const CallGraph*> :
 
 // Make sure that any clients of this file link in CallGraph.cpp
 static IncludeFile
-CALLGRAPH_INCLUDE_FILE((void*)&CallGraph::stub);
+CALLGRAPH_INCLUDE_FILE(&CallGraph::stub);
 
 extern void BasicCallGraphStub();
 static IncludeFile HDR_INCLUDE_CALLGRAPH_CPP((void*)&BasicCallGraphStub);
index d73b407..224e529 100644 (file)
@@ -276,7 +276,7 @@ public:
   }
 
   // stub - dummy function, just ignore it
-  static void stub();
+  static int stub;
 };
 
 
@@ -654,7 +654,7 @@ private:
 
 // Make sure that any clients of this file link in Dominators.cpp
 static IncludeFile
-DOMINATORS_INCLUDE_FILE((void*)&DominatorSet::stub);
+DOMINATORS_INCLUDE_FILE(&DominatorSet::stub);
 } // End llvm namespace
 
 #endif
index 92f3677..e16fe9d 100644 (file)
@@ -55,12 +55,12 @@ public:
   }
 
   // stub - dummy function, just ignore it
-  static void stub();
+  static int stub;
 };
 
 // Make sure that any clients of this file link in PostDominators.cpp
 static IncludeFile
-FIND_USED_TYPES_INCLUDE_FILE((void*)(&FindUsedTypes::stub));
+FIND_USED_TYPES_INCLUDE_FILE(&FindUsedTypes::stub);
 
 } // End llvm namespace
 
index 425c33f..065ce31 100644 (file)
@@ -295,7 +295,7 @@ public:
   /// BasicBlocks to loops.
   void removeBlock(BasicBlock *BB);
 
-  static void stub();  // Noop
+  static int stub;  // Noop
 private:
   void Calculate(ETForest &EF);
   Loop *ConsiderForLoop(BasicBlock *BB, ETForest &EF);
@@ -306,7 +306,7 @@ private:
 
 // Make sure that any clients of this file link in LoopInfo.cpp
 static IncludeFile
-LOOP_INFO_INCLUDE_FILE((void*)(&LoopInfo::stub));
+LOOP_INFO_INCLUDE_FILE(&LoopInfo::stub);
 
 // Allow clients to walk the list of nested loops...
 template <> struct GraphTraits<const Loop*> {
index b9a1feb..1436be3 100644 (file)
@@ -129,7 +129,7 @@ struct PostDominanceFrontier : public DominanceFrontierBase {
   }
 
   // stub - dummy function, just ignore it
-  static void stub();
+  static int stub;
 
 private:
   const DomSetType &calculate(const PostDominatorTree &DT,
@@ -138,7 +138,7 @@ private:
 
 // Make sure that any clients of this file link in PostDominators.cpp
 static IncludeFile
-POST_DOMINATOR_INCLUDE_FILE((void*)&PostDominanceFrontier::stub);
+POST_DOMINATOR_INCLUDE_FILE(&PostDominanceFrontier::stub);
 
 } // End llvm namespace
 
index 6169955..2fc9497 100644 (file)
@@ -65,9 +65,9 @@ struct ValueNumbering {
   }
 };
 
-extern void BasicValueNumberingStub();
+extern int BasicValueNumberingStub;
 static IncludeFile
-HDR_INCLUDE_VALUENUMBERING_CPP((void*)&BasicValueNumberingStub);
+HDR_INCLUDE_VALUENUMBERING_CPP(&BasicValueNumberingStub);
 
 } // End llvm namespace
 
index 15a27e7..6d5a375 100644 (file)
@@ -189,6 +189,6 @@ bool AliasAnalysis::canInstructionRangeModify(const Instruction &I1,
 // being linked into the tool that uses it.
 //
 namespace llvm {
-  extern void BasicAAStub();
+  extern int BasicAAStub;
 }
 static IncludeFile INCLUDE_BASICAA_CPP((void*)&BasicAAStub);
index 2a37ab8..3cda92e 100644 (file)
@@ -27,7 +27,7 @@
 using namespace llvm;
 
 // Make sure that anything that uses AliasAnalysis pulls in this file...
-void llvm::BasicAAStub() {}
+int llvm::BasicAAStub;
 
 namespace {
   /// NoAA - This class implements the -no-aa pass, which always returns "I
index 9089afe..71b303b 100644 (file)
@@ -258,7 +258,7 @@ CallGraphNode *CallGraph::getOrInsertFunction(const Function *F) {
 
 
 
-void CallGraph::stub() {}
+int CallGraph::stub; // to ensure linkage of this file.
 
 void CallGraphNode::print(std::ostream &OS) const {
   if (Function *F = getFunction())
index 09e14a8..f7efc7d 100644 (file)
@@ -25,7 +25,7 @@ static RegisterAnalysis<FindUsedTypes>
 X("printusedtypes", "Find Used Types");
 
 // stub to help linkage
-void FindUsedTypes::stub() {}
+int FindUsedTypes::stub; // to ensure linkage of this file
 
 // IncorporateType - Incorporate one type and all of its subtypes into the
 // collection of used types.
index 2860aa4..f2ef176 100644 (file)
@@ -86,7 +86,7 @@ void Loop::dump() const {
 //===----------------------------------------------------------------------===//
 // LoopInfo implementation
 //
-void LoopInfo::stub() {}
+int LoopInfo::stub;
 
 bool LoopInfo::runOnFunction(Function &) {
   releaseMemory();
index b8b173e..611ea60 100644 (file)
@@ -360,6 +360,5 @@ PostDominanceFrontier::calculate(const PostDominatorTree &DT,
 }
 
 // stub - a dummy function to make linking work ok.
-void PostDominanceFrontier::stub() {
-}
+int PostDominanceFrontier::stub;
 
index 9a35937..0648222 100644 (file)
@@ -239,4 +239,4 @@ void BVNImpl::handleTernaryInst(Instruction &I) {
 }
 
 
-void llvm::BasicValueNumberingStub() { }
+int llvm::BasicValueNumberingStub; // to ensure linkage of this file
index 24b3e87..a0a6d25 100644 (file)
@@ -304,7 +304,7 @@ bool DominatorSet::runOnFunction(Function &F) {
   return false;
 }
 
-void DominatorSet::stub() {}
+int DominatorSet::stub;
 
 namespace llvm {
 static std::ostream &operator<<(std::ostream &o,