llvm-project/clang/test/CodeGenCXX/lpad-linetable.cpp
Douglas Katzman 3459ce2e5e Stop messing with the 'g' group of options in CompilerInvocation.
With this change, most 'g' options are rejected by CompilerInvocation.
They remain only as Driver options. The new way to request debug info
from cc1 is with "-debug-info-kind={line-tables-only|limited|standalone}"
and "-dwarf-version={2|3|4}". In the absence of a command-line option
to specify Dwarf version, the Toolchain decides it, rather than placing
Toolchain-specific logic in CompilerInvocation.

Also fix a bug in the Windows compatibility argument parsing
in which the "rightmost argument wins" principle failed.

Differential Revision: http://reviews.llvm.org/D13221

llvm-svn: 249655
2015-10-08 04:24:12 +00:00

70 lines
1.8 KiB
C++

// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -emit-llvm -debug-info-kind=limited -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]] = !DILocation(line: 24, scope: !{{.*}})
# 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