diff options
Diffstat (limited to 'test/CodeGenCXX/lpad-linetable.cpp')
-rw-r--r-- | test/CodeGenCXX/lpad-linetable.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/CodeGenCXX/lpad-linetable.cpp b/test/CodeGenCXX/lpad-linetable.cpp new file mode 100644 index 0000000..dba2ad6 --- /dev/null +++ b/test/CodeGenCXX/lpad-linetable.cpp @@ -0,0 +1,69 @@ +// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -emit-llvm -g -triple x86_64-apple-darwin10 %s -o - | FileCheck %s +// The landing pad should have the line number of the closing brace of the function. +// rdar://problem/13888152 +// CHECK: ret i32 +// CHECK: landingpad {{.*}} +// CHECK-NEXT: !dbg ![[LPAD:[0-9]+]] +// CHECK: ![[LPAD]] = metadata !{i32 24, i32 0, metadata !{{.*}}, null} + +# 1 "/usr/include/c++/4.2.1/vector" 1 3 +typedef long unsigned int __darwin_size_t; +typedef __darwin_size_t size_t; +namespace std { + template<typename _Tp> + class allocator + { + public: + template<typename _Tp1> + struct rebind + { typedef allocator<_Tp1> other; }; + ~allocator() throw() { } + }; + template<typename _Tp, typename _Alloc> + struct _Vector_base + { + typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; + struct _Vector_impl + { + _Vector_impl(_Tp_alloc_type const& __a) { } + }; + typedef _Alloc allocator_type; + _Vector_base(const allocator_type& __a) + : _M_impl(__a) + { } + ~_Vector_base() { } + _Vector_impl _M_impl; + }; + template<typename _Tp, typename _Alloc = std::allocator<_Tp> > + class vector + : protected _Vector_base<_Tp, _Alloc> + { + typedef _Vector_base<_Tp, _Alloc> _Base; + public: + typedef _Tp value_type; + typedef size_t size_type; + typedef _Alloc allocator_type; + vector(const allocator_type& __a = allocator_type()) + : _Base(__a) + { } + size_type + push_back(const value_type& __x) + {} + }; +} +# 10 "main.cpp" 2 + + + + +int main (int argc, char const *argv[], char const *envp[]) +{ // 15 + std::vector<long> longs; + std::vector<short> shorts; + for (int i=0; i<12; i++) + { + longs.push_back(i); + shorts.push_back(i); + } + return 0; // 23 +} // 24 |