134f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis// RUN: %clang_cc1 -fsyntax-only -verify %s 234f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 334f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis// Don't crash. 434f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 534f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidistemplate<typename,typename=int,typename=int>struct basic_string; 634f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 734f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidistypedef basic_string<char> string; 834f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 934f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 1034f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 1134f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidistemplate<typename aT,typename,typename oc> 1234f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidisstruct basic_string 1334f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis{ 1434f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidisint us; 1534f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidisbasic_string(const aT*,const oc&a=int()); 1634f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 1734f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidisint _S_construct(); 1834f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 1934f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidisint _S_construct(int); 2034f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 2134f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis_S_construct(); // expected-error {{requires}} 2234f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis}; 2334f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 2434f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidistemplate<typename _CharT,typename _Traits,typename _Alloc> 2534f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidisbasic_string<_CharT,_Traits,_Alloc>::basic_string(const _CharT*,const _Alloc&) 2634f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis:us(_S_construct) 2734f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis{string a;} 2834f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 29e9ee382c32a83e9807a2fe4cfd52b5a11169a4b8Eli Friedmanstruct runtime_error{runtime_error(string);}; 3034f52d14742914bbaa975ce7de45957cccf256bcArgyrios Kyrtzidis 31e9ee382c32a83e9807a2fe4cfd52b5a11169a4b8Eli Friedmanstruct system_error:runtime_error{ // expected-note {{to match}} 32e9ee382c32a83e9807a2fe4cfd52b5a11169a4b8Eli Friedmansystem_error():time_error("" // expected-error 3 {{expected}} expected-note {{to match}} 33