From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- clang/test/SemaCXX/crashes.cpp | 106 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 clang/test/SemaCXX/crashes.cpp (limited to 'clang/test/SemaCXX/crashes.cpp') diff --git a/clang/test/SemaCXX/crashes.cpp b/clang/test/SemaCXX/crashes.cpp new file mode 100644 index 0000000..b77248e --- /dev/null +++ b/clang/test/SemaCXX/crashes.cpp @@ -0,0 +1,106 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +// +template class allocator; +template struct char_traits; +template, + typename _Alloc = allocator<_CharT> > +class basic_string; +template +const typename basic_string<_CharT, _Traits, _Alloc>::size_type +basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_max_size // expected-error{{no member named '_Rep' in 'basic_string<_CharT, _Traits, _Alloc>'}} + = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4; + +// PR7118 +template +class Foo { + class Bar; + void f() { + Bar i; + } +}; + +// PR7625 +template struct a : T { + struct x : T { + int aa() { return p; } // expected-error{{use of undeclared identifier 'p'}} + }; +}; + +// rdar://8605381 +namespace rdar8605381 { +struct X {}; + +struct Y { // expected-note{{candidate}} + Y(); +}; + +struct { + Y obj; +} objs[] = { + new Y // expected-error{{no viable conversion}} +}; +} + +// http://llvm.org/PR8234 +namespace PR8234 { +template +class callback +{ +}; + +template +class callback +{ + public: + callback() {} +}; + +template< typename ARG_TYPE0> +class callback +{ + public: + callback() {} +}; + +void f() +{ + callback op; +} +} + +namespace PR9007 { + struct bar { + enum xxx { + yyy = sizeof(struct foo*) + }; + foo *xxx(); + }; +} + +namespace PR9026 { + class InfallibleTArray { + }; + class Variant; + class CompVariant { + operator const InfallibleTArray&() const; + }; + class Variant { + operator const CompVariant&() const; + }; + void Write(const Variant& __v); + void Write(const InfallibleTArray& __v); + Variant x; + void Write2() { + Write(x); + } +} + +namespace PR10270 { + template class C; + template void f() { + if (C == 1) // expected-error{{expected unqualified-id}} \ + // expected-error{{invalid '==' at end of declaration}} + return; + } +} -- cgit v1.2.3