зеркало из https://github.com/microsoft/clang-1.git
Fix crashing rdar://9122854 & http://llvm.org/PR9461.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129967 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
e8ba8d78a2
Коммит
34f52d1474
|
@ -7216,8 +7216,10 @@ TreeTransform<Derived>::TransformUnresolvedMemberExpr(UnresolvedMemberExpr *Old)
|
|||
// This can happen because of dependent hiding.
|
||||
if (isa<UsingShadowDecl>(*I))
|
||||
continue;
|
||||
else
|
||||
else {
|
||||
R.clear();
|
||||
return ExprError();
|
||||
}
|
||||
}
|
||||
|
||||
// Expand using declarations.
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||||
|
||||
// Don't crash.
|
||||
|
||||
template<typename,typename=int,typename=int>struct basic_string;
|
||||
|
||||
typedef basic_string<char> string;
|
||||
|
||||
|
||||
|
||||
template<typename aT,typename,typename oc>
|
||||
struct basic_string
|
||||
{
|
||||
int us;
|
||||
basic_string(const aT*,const oc&a=int());
|
||||
|
||||
int _S_construct();
|
||||
|
||||
int _S_construct(int);
|
||||
|
||||
_S_construct(); // expected-error {{requires}}
|
||||
};
|
||||
|
||||
template<typename _CharT,typename _Traits,typename _Alloc>
|
||||
basic_string<_CharT,_Traits,_Alloc>::basic_string(const _CharT*,const _Alloc&)
|
||||
:us(_S_construct)
|
||||
{string a;}
|
||||
|
||||
struct runtime_error{runtime_error(string);};
|
||||
|
||||
struct system_error:runtime_error{ // expected-note {{to match}} expected-note {{specified here}}
|
||||
system_error():time_error("" // expected-error 4 {{expected}} expected-error {{initializer}} expected-note {{to match}}
|
Загрузка…
Ссылка в новой задаче