blob: c81191b9fedd1092f1418a40788e861ac95630f7 [file] [log] [blame]
Adrian Prantl59f0a5a2013-05-16 00:41:29 +00001// 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 Hines0e2c34f2015-03-23 12:09:02 -07007// CHECK: ![[LPAD]] = !MDLocation(line: 24, scope: !{{.*}})
Adrian Prantl59f0a5a2013-05-16 00:41:29 +00008
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