From 4ba675006b5a8edfc48b6a9bd3dcf54a70cc08f2 Mon Sep 17 00:00:00 2001 From: Roman Divacky Date: Tue, 13 Jul 2010 17:21:42 +0000 Subject: Update clang to r108243. --- include/clang/AST/UsuallyTinyPtrVector.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'include/clang/AST/UsuallyTinyPtrVector.h') diff --git a/include/clang/AST/UsuallyTinyPtrVector.h b/include/clang/AST/UsuallyTinyPtrVector.h index 5ee40e05c9567..534d4d4a367f7 100644 --- a/include/clang/AST/UsuallyTinyPtrVector.h +++ b/include/clang/AST/UsuallyTinyPtrVector.h @@ -41,6 +41,7 @@ public: typedef const T **iterator; iterator begin() const; iterator end() const; + size_t size() const; void push_back(T *Method); void Destroy(); @@ -56,7 +57,6 @@ UsuallyTinyPtrVector::begin() const { return &Vec->front(); } - template typename UsuallyTinyPtrVector::iterator UsuallyTinyPtrVector::end() const { @@ -71,6 +71,15 @@ UsuallyTinyPtrVector::end() const { return &Vec->front() + Vec->size(); } +template +size_t UsuallyTinyPtrVector::size() const { + if ((Storage & 0x01) == 0) + return (Storage == 0) ? 0 : 1; + + vector_type *Vec = reinterpret_cast(Storage & ~0x01); + return Vec->size(); +} + template void UsuallyTinyPtrVector::push_back(T *Element) { if (Storage == 0) { -- cgit v1.2.3