Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 
      3 // Don't crash.
      4 
      5 template<typename,typename=int,typename=int>struct basic_string;
      6 
      7 typedef basic_string<char> string;
      8 
      9 
     10 
     11 template<typename aT,typename,typename oc>
     12 struct basic_string
     13 {
     14 int us;
     15 basic_string(const aT*,const oc&a=int());
     16 
     17 int _S_construct();
     18 
     19 int _S_construct(int);
     20 
     21 _S_construct(); // expected-error {{requires}}
     22 };
     23 
     24 template<typename _CharT,typename _Traits,typename _Alloc>
     25 basic_string<_CharT,_Traits,_Alloc>::basic_string(const _CharT*,const _Alloc&)
     26 :us(_S_construct)
     27 {string a;}
     28 
     29 struct runtime_error{runtime_error(string);}; // expected-note 2 {{candidate constructor}}
     30 
     31 struct system_error:runtime_error{ // expected-note {{to match}} expected-note {{specified here}}
     32 system_error():time_error("" // expected-error 4 {{expected}} expected-error {{initializer}} expected-note {{to match}} expected-error {{no matching constructor}}
     33