From cfd8d909693126fbbaac3d02ce0dd84a443bca87 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Fri, 12 Sep 2014 08:56:53 +0000 Subject: Fix an ODR violation consisting of two 'struct Query' in the global namespace. Put them in their own anonymous namespaces. Found by GCC's new -Wodr (PR20915). llvm-svn: 217662 --- llvm/lib/Analysis/ValueTracking.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'llvm/lib/Analysis/ValueTracking.cpp') diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 74c862a88dd..f208bb72e2e 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -58,6 +58,7 @@ static unsigned getBitWidth(Type *Ty, const DataLayout *TD) { // isKnownToBeAPowerOfTwo (all of which can call computeKnownBits), and so on. typedef SmallPtrSet ExclInvsSet; +namespace { // Simplifying using an assume can only be done in a particular control-flow // context (the context instruction provides that context). If an assume and // the context instruction are not in the same block then the DT helps in @@ -77,6 +78,7 @@ struct Query { ExclInvs.insert(NewExcl); } }; +} // end anonymous namespace // Given the provided Value and, potentially, a context instruction, returned // the preferred context instruction (if any). -- cgit v1.2.3