From: Benjamin Kramer Date: Fri, 12 Sep 2014 08:56:53 +0000 (+0000) Subject: Fix an ODR violation consisting of two 'struct Query' in the global namespace. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=8f3452d079c8fa0d0887f3099b211b1fe094e8df 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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217662 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/InstructionSimplify.cpp b/lib/Analysis/InstructionSimplify.cpp index cd795fdb781..32bc25ad8c8 100644 --- a/lib/Analysis/InstructionSimplify.cpp +++ b/lib/Analysis/InstructionSimplify.cpp @@ -41,6 +41,7 @@ enum { RecursionLimit = 3 }; STATISTIC(NumExpand, "Number of expansions"); STATISTIC(NumReassoc, "Number of reassociations"); +namespace { struct Query { const DataLayout *DL; const TargetLibraryInfo *TLI; @@ -53,6 +54,7 @@ struct Query { const Instruction *cxti = nullptr) : DL(DL), TLI(tli), DT(dt), AT(at), CxtI(cxti) {} }; +} // end anonymous namespace static Value *SimplifyAndInst(Value *, Value *, const Query &, unsigned); static Value *SimplifyBinOp(unsigned, Value *, Value *, const Query &, diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp index 74c862a88dd..f208bb72e2e 100644 --- a/lib/Analysis/ValueTracking.cpp +++ b/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).