diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-02-04 21:11:17 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-02-04 21:11:17 +0000 |
commit | e2887863563fe5d2fdd8e1219b76fdc1ee9ec37d (patch) | |
tree | 5e600136534c264c0b968508c801aab740687f92 /llvm/lib/Support/FoldingSet.cpp | |
parent | 3d4f1b3695f8fc6c8feed2f0f7c01879554151b8 (diff) | |
download | bcm5719-llvm-e2887863563fe5d2fdd8e1219b76fdc1ee9ec37d.tar.gz bcm5719-llvm-e2887863563fe5d2fdd8e1219b76fdc1ee9ec37d.zip |
Added "bucket_iterators" to FoldingSet. Bucket iterators allow iteration
over all the nodes in a particular bucket.
llvm-svn: 46716
Diffstat (limited to 'llvm/lib/Support/FoldingSet.cpp')
-rw-r--r-- | llvm/lib/Support/FoldingSet.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Support/FoldingSet.cpp b/llvm/lib/Support/FoldingSet.cpp index 1e8c732a148..774fbabc28e 100644 --- a/llvm/lib/Support/FoldingSet.cpp +++ b/llvm/lib/Support/FoldingSet.cpp @@ -148,7 +148,7 @@ static FoldingSetImpl::Node *GetNextPtr(void *NextInBucketPtr) { return static_cast<FoldingSetImpl::Node*>(NextInBucketPtr); } -/// GetBucketPtr - Provides a casting of a bucket pointer for isNode + /// testing. static void **GetBucketPtr(void *NextInBucketPtr) { intptr_t Ptr = reinterpret_cast<intptr_t>(NextInBucketPtr); @@ -358,3 +358,9 @@ void FoldingSetIteratorImpl::advance() { } } +//===----------------------------------------------------------------------===// +// FoldingSetBucketIteratorImpl Implementation + +FoldingSetBucketIteratorImpl::FoldingSetBucketIteratorImpl(void **Bucket) { + Ptr = (*Bucket == 0 || GetNextPtr(*Bucket) == 0) ? (void*) Bucket : *Bucket; +} |