Fix ODR violations caused by putting anonymous namespaces in header files (and

then using the symbols from those anonymous namespaces from outside the
anonymous namespace).

This was "detected" by causing the modules selfhost to fail in some cases.
The corresponding Clang bug was fixed in r232455.

llvm-svn: 232457
This commit is contained in:
Richard Smith 2015-03-17 02:36:51 +00:00
parent 563dfdb111
commit 92f18ffce7
2 changed files with 0 additions and 4 deletions

View File

@ -23,7 +23,6 @@
namespace llvm {
namespace {
template <class BlockT>
class DFCalculateWorkObject {
public:
@ -37,7 +36,6 @@ public:
const DomTreeNodeT *Node;
const DomTreeNodeT *parentNode;
};
}
template <class BlockT>
void DominanceFrontierBase<BlockT>::removeBlock(BlockT *BB) {

View File

@ -402,7 +402,6 @@ static void discoverAndMapSubloop(LoopT *L, ArrayRef<BlockT*> Backedges,
L->reserveBlocks(NumBlocks);
}
namespace {
/// Populate all loop data in a stable order during a single forward DFS.
template<class BlockT, class LoopT>
class PopulateLoopsDFS {
@ -430,7 +429,6 @@ protected:
DFSStack.push_back(std::make_pair(Block, BlockTraits::child_begin(Block)));
}
};
} // anonymous
/// Top-level driver for the forward DFS within the loop.
template<class BlockT, class LoopT>