1*67e74705SXin Li // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -emit-llvm -debug-info-kind=limited -triple x86_64-apple-darwin10 %s -o - | FileCheck %s 2*67e74705SXin Li // The landing pad should have the line number of the closing brace of the function. 3*67e74705SXin Li // rdar://problem/13888152 4*67e74705SXin Li // CHECK: ret i32 5*67e74705SXin Li // CHECK: landingpad {{.*}} 6*67e74705SXin Li // CHECK-NEXT: !dbg ![[LPAD:[0-9]+]] 7*67e74705SXin Li // CHECK: ![[LPAD]] = !DILocation(line: 24, scope: !{{.*}}) 8*67e74705SXin Li 9*67e74705SXin Li # 1 "/usr/include/c++/4.2.1/vector" 1 3 10*67e74705SXin Li typedef long unsigned int __darwin_size_t; 11*67e74705SXin Li typedef __darwin_size_t size_t; 12*67e74705SXin Li namespace std { 13*67e74705SXin Li template<typename _Tp> 14*67e74705SXin Li class allocator 15*67e74705SXin Li { 16*67e74705SXin Li public: 17*67e74705SXin Li template<typename _Tp1> 18*67e74705SXin Li struct rebind 19*67e74705SXin Li { typedef allocator<_Tp1> other; }; ~allocator()20*67e74705SXin Li ~allocator() throw() { } 21*67e74705SXin Li }; 22*67e74705SXin Li template<typename _Tp, typename _Alloc> 23*67e74705SXin Li struct _Vector_base 24*67e74705SXin Li { 25*67e74705SXin Li typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; 26*67e74705SXin Li struct _Vector_impl 27*67e74705SXin Li { _Vector_implstd::_Vector_base::_Vector_impl28*67e74705SXin Li _Vector_impl(_Tp_alloc_type const& __a) { } 29*67e74705SXin Li }; 30*67e74705SXin Li typedef _Alloc allocator_type; _Vector_basestd::_Vector_base31*67e74705SXin Li _Vector_base(const allocator_type& __a) 32*67e74705SXin Li : _M_impl(__a) 33*67e74705SXin Li { } ~_Vector_basestd::_Vector_base34*67e74705SXin Li ~_Vector_base() { } 35*67e74705SXin Li _Vector_impl _M_impl; 36*67e74705SXin Li }; 37*67e74705SXin Li template<typename _Tp, typename _Alloc = std::allocator<_Tp> > 38*67e74705SXin Li class vector 39*67e74705SXin Li : protected _Vector_base<_Tp, _Alloc> 40*67e74705SXin Li { 41*67e74705SXin Li typedef _Vector_base<_Tp, _Alloc> _Base; 42*67e74705SXin Li public: 43*67e74705SXin Li typedef _Tp value_type; 44*67e74705SXin Li typedef size_t size_type; 45*67e74705SXin Li typedef _Alloc allocator_type; vector(const allocator_type & __a=allocator_type ())46*67e74705SXin Li vector(const allocator_type& __a = allocator_type()) 47*67e74705SXin Li : _Base(__a) 48*67e74705SXin Li { } 49*67e74705SXin Li size_type push_back(const value_type & __x)50*67e74705SXin Li push_back(const value_type& __x) 51*67e74705SXin Li {} 52*67e74705SXin Li }; 53*67e74705SXin Li } 54*67e74705SXin Li # 10 "main.cpp" 2 55*67e74705SXin Li 56*67e74705SXin Li 57*67e74705SXin Li 58*67e74705SXin Li main(int argc,char const * argv[],char const * envp[])59*67e74705SXin Liint main (int argc, char const *argv[], char const *envp[]) 60*67e74705SXin Li { // 15 61*67e74705SXin Li std::vector<long> longs; 62*67e74705SXin Li std::vector<short> shorts; 63*67e74705SXin Li for (int i=0; i<12; i++) 64*67e74705SXin Li { 65*67e74705SXin Li longs.push_back(i); 66*67e74705SXin Li shorts.push_back(i); 67*67e74705SXin Li } 68*67e74705SXin Li return 0; // 23 69*67e74705SXin Li } // 24 70