// 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
