Change from using a stub function to a stub variable for passing to the
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
diff --git a/include/llvm/Analysis/AliasAnalysis.h b/include/llvm/Analysis/AliasAnalysis.h
index 1cce4ea..0de7a7f 100644
--- a/include/llvm/Analysis/AliasAnalysis.h
+++ b/include/llvm/Analysis/AliasAnalysis.h
@@ -321,8 +321,8 @@
// 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
diff --git a/include/llvm/Analysis/CallGraph.h b/include/llvm/Analysis/CallGraph.h
index 7343060..5602cec 100644
--- a/include/llvm/Analysis/CallGraph.h
+++ b/include/llvm/Analysis/CallGraph.h
@@ -155,7 +155,7 @@
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 @@
// 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);
diff --git a/include/llvm/Analysis/Dominators.h b/include/llvm/Analysis/Dominators.h
index d73b407..224e529 100644
--- a/include/llvm/Analysis/Dominators.h
+++ b/include/llvm/Analysis/Dominators.h
@@ -276,7 +276,7 @@
}
// stub - dummy function, just ignore it
- static void stub();
+ static int stub;
};
@@ -654,7 +654,7 @@
// 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
diff --git a/include/llvm/Analysis/FindUsedTypes.h b/include/llvm/Analysis/FindUsedTypes.h
index 92f3677..e16fe9d 100644
--- a/include/llvm/Analysis/FindUsedTypes.h
+++ b/include/llvm/Analysis/FindUsedTypes.h
@@ -55,12 +55,12 @@
}
// 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
diff --git a/include/llvm/Analysis/LoopInfo.h b/include/llvm/Analysis/LoopInfo.h
index 425c33f..065ce31 100644
--- a/include/llvm/Analysis/LoopInfo.h
+++ b/include/llvm/Analysis/LoopInfo.h
@@ -295,7 +295,7 @@
/// 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 @@
// 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*> {
diff --git a/include/llvm/Analysis/PostDominators.h b/include/llvm/Analysis/PostDominators.h
index b9a1feb..1436be3 100644
--- a/include/llvm/Analysis/PostDominators.h
+++ b/include/llvm/Analysis/PostDominators.h
@@ -129,7 +129,7 @@
}
// stub - dummy function, just ignore it
- static void stub();
+ static int stub;
private:
const DomSetType &calculate(const PostDominatorTree &DT,
@@ -138,7 +138,7 @@
// 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
diff --git a/include/llvm/Analysis/ValueNumbering.h b/include/llvm/Analysis/ValueNumbering.h
index 6169955..2fc9497 100644
--- a/include/llvm/Analysis/ValueNumbering.h
+++ b/include/llvm/Analysis/ValueNumbering.h
@@ -65,9 +65,9 @@
}
};
-extern void BasicValueNumberingStub();
+extern int BasicValueNumberingStub;
static IncludeFile
-HDR_INCLUDE_VALUENUMBERING_CPP((void*)&BasicValueNumberingStub);
+HDR_INCLUDE_VALUENUMBERING_CPP(&BasicValueNumberingStub);
} // End llvm namespace
diff --git a/lib/Analysis/AliasAnalysis.cpp b/lib/Analysis/AliasAnalysis.cpp
index 15a27e7..6d5a375 100644
--- a/lib/Analysis/AliasAnalysis.cpp
+++ b/lib/Analysis/AliasAnalysis.cpp
@@ -189,6 +189,6 @@
// being linked into the tool that uses it.
//
namespace llvm {
- extern void BasicAAStub();
+ extern int BasicAAStub;
}
static IncludeFile INCLUDE_BASICAA_CPP((void*)&BasicAAStub);
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index 2a37ab8..3cda92e 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -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
diff --git a/lib/Analysis/IPA/CallGraph.cpp b/lib/Analysis/IPA/CallGraph.cpp
index 9089afe..71b303b 100644
--- a/lib/Analysis/IPA/CallGraph.cpp
+++ b/lib/Analysis/IPA/CallGraph.cpp
@@ -258,7 +258,7 @@
-void CallGraph::stub() {}
+int CallGraph::stub; // to ensure linkage of this file.
void CallGraphNode::print(std::ostream &OS) const {
if (Function *F = getFunction())
diff --git a/lib/Analysis/IPA/FindUsedTypes.cpp b/lib/Analysis/IPA/FindUsedTypes.cpp
index 09e14a8..f7efc7d 100644
--- a/lib/Analysis/IPA/FindUsedTypes.cpp
+++ b/lib/Analysis/IPA/FindUsedTypes.cpp
@@ -25,7 +25,7 @@
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.
diff --git a/lib/Analysis/LoopInfo.cpp b/lib/Analysis/LoopInfo.cpp
index 2860aa4..f2ef176 100644
--- a/lib/Analysis/LoopInfo.cpp
+++ b/lib/Analysis/LoopInfo.cpp
@@ -86,7 +86,7 @@
//===----------------------------------------------------------------------===//
// LoopInfo implementation
//
-void LoopInfo::stub() {}
+int LoopInfo::stub;
bool LoopInfo::runOnFunction(Function &) {
releaseMemory();
diff --git a/lib/Analysis/PostDominators.cpp b/lib/Analysis/PostDominators.cpp
index b8b173e..611ea60 100644
--- a/lib/Analysis/PostDominators.cpp
+++ b/lib/Analysis/PostDominators.cpp
@@ -360,6 +360,5 @@
}
// stub - a dummy function to make linking work ok.
-void PostDominanceFrontier::stub() {
-}
+int PostDominanceFrontier::stub;
diff --git a/lib/Analysis/ValueNumbering.cpp b/lib/Analysis/ValueNumbering.cpp
index 9a35937..0648222 100644
--- a/lib/Analysis/ValueNumbering.cpp
+++ b/lib/Analysis/ValueNumbering.cpp
@@ -239,4 +239,4 @@
}
-void llvm::BasicValueNumberingStub() { }
+int llvm::BasicValueNumberingStub; // to ensure linkage of this file
diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp
index 24b3e87..a0a6d25 100644
--- a/lib/VMCore/Dominators.cpp
+++ b/lib/VMCore/Dominators.cpp
@@ -304,7 +304,7 @@
return false;
}
-void DominatorSet::stub() {}
+int DominatorSet::stub;
namespace llvm {
static std::ostream &operator<<(std::ostream &o,