summaryrefslogtreecommitdiff
path: root/lib/Support/FoldingSet.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-02-04 21:11:17 +0000
committerTed Kremenek <kremenek@apple.com>2008-02-04 21:11:17 +0000
commit26e3c445fc844b2f241dfdde9ce7e0602ba13cc4 (patch)
treec6f145f1bcc7e58c24732155b47bd89e06966b7a /lib/Support/FoldingSet.cpp
parenta1e4bba98ad4f23f4385c1178b214a03c0469464 (diff)
downloadllvm-26e3c445fc844b2f241dfdde9ce7e0602ba13cc4.tar.gz
llvm-26e3c445fc844b2f241dfdde9ce7e0602ba13cc4.tar.bz2
llvm-26e3c445fc844b2f241dfdde9ce7e0602ba13cc4.tar.xz
Added "bucket_iterators" to FoldingSet. Bucket iterators allow iteration
over all the nodes in a particular bucket. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46716 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/FoldingSet.cpp')
-rw-r--r--lib/Support/FoldingSet.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Support/FoldingSet.cpp b/lib/Support/FoldingSet.cpp
index 1e8c732a14..774fbabc28 100644
--- a/lib/Support/FoldingSet.cpp
+++ b/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;
+}