Home | History | Annotate | Download | only in AST

Lines Matching refs:End

35   T *Begin, *End;
38 void setEnd(T *P) { this->End = P; }
48 ASTVector() : Begin(nullptr), End(nullptr), Capacity(nullptr, false) {}
50 ASTVector(ASTVector &&O) : Begin(O.Begin), End(O.End), Capacity(O.Capacity) {
51 O.Begin = O.End = nullptr;
57 : Begin(nullptr), End(nullptr), Capacity(nullptr, false) {
65 swap(End, O.End);
73 destroy_range(Begin, End);
94 iterator end() { return End; }
95 const_iterator end() const { return End; }
98 reverse_iterator rbegin() { return reverse_iterator(end()); }
99 const_reverse_iterator rbegin() const{ return const_reverse_iterator(end()); }
103 bool empty() const { return Begin == End; }
104 size_type size() const { return End-Begin; }
107 assert(Begin + idx < End);
111 assert(Begin + idx < End);
123 return end()[-1];
126 return end()[-1];
130 --End;
131 End->~T();
142 destroy_range(Begin, End);
144 End = Begin;
158 if (End < this->capacity_ptr()) {
160 new (End) T(Elt);
161 ++End;
177 /// append - Add the specified range to the end of the SmallVector.
187 if (NumInputs > size_type(this->capacity_ptr()-this->end()))
193 std::uninitialized_copy(in_start, in_end, this->end());
194 this->setEnd(this->end() + NumInputs);
197 /// append - Add the specified range to the end of the SmallVector.
201 if (NumInputs > size_type(this->capacity_ptr()-this->end()))
205 std::uninitialized_fill_n(this->end(), NumInputs, Elt);
206 this->setEnd(this->end() + NumInputs);
217 if (I == this->end()) { // Important special case for empty vector.
219 return this->end()-1;
222 if (this->End < this->capacity_ptr()) {
224 new (this->end()) T(this->back());
225 this->setEnd(this->end()+1);
227 std::copy_backward(I, this->end()-1, this->end());
242 if (I == this->end()) { // Important special case for empty vector.
253 // If there are more elements between the insertion point and the end of the
257 if (size_t(this->end()-I) >= NumToInsert) {
258 T *OldEnd = this->end();
259 append(C, this->end()-NumToInsert, this->end());
269 // not inserting at the end.
272 T *OldEnd = this->end();
273 this->setEnd(this->end() + NumToInsert);
275 this->uninitialized_copy(I, OldEnd, this->end()-NumOverwritten);
290 if (I == this->end()) { // Important special case for empty vector.
303 // If there are more elements between the insertion point and the end of the
307 if (size_t(this->end()-I) >= NumToInsert) {
308 T *OldEnd = this->end();
309 append(C, this->end()-NumToInsert, this->end());
319 // not inserting at the end.
322 T *OldEnd = this->end();
323 this->setEnd(this->end() + NumToInsert);
325 this->uninitialized_copy(I, OldEnd, this->end()-NumOverwritten);
340 this->destroy_range(this->begin()+N, this->end());
345 construct_range(this->end(), this->begin()+N, NV);
387 if (Begin != End) {
389 std::uninitialized_copy(Begin, End, NewElts);
391 destroy_range(Begin, End);
400 End = NewElts+CurSize;
404 } // end: clang namespace