Adrian Prantl | 59f0a5a | 2013-05-16 00:41:29 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -emit-llvm -g -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]+]] |
Stephen Hines | 0e2c34f | 2015-03-23 12:09:02 -0700 | [diff] [blame^] | 7 | // CHECK: ![[LPAD]] = !MDLocation(line: 24, scope: !{{.*}}) |
Adrian Prantl | 59f0a5a | 2013-05-16 00:41:29 +0000 | [diff] [blame] | 8 | |
| 9 | # 1 "/usr/include/c++/4.2.1/vector" 1 3 |
| 10 | typedef long unsigned int __darwin_size_t; |
| 11 | typedef __darwin_size_t size_t; |
| 12 | namespace 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 | |
| 59 | int 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 |