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