forked from OSchip/llvm-project
After reporting ill-formed copy constructor(12.8.p3)
don't recurs and crash. llvm-svn: 78323
This commit is contained in:
parent
b4764e5b7f
commit
11a8e95a1a
|
@ -1344,7 +1344,8 @@ bool Sema::IsUserDefinedConversion(Expr *From, QualType ToType,
|
|||
= ToRecordDecl->lookup(ConstructorName);
|
||||
Con != ConEnd; ++Con) {
|
||||
CXXConstructorDecl *Constructor = cast<CXXConstructorDecl>(*Con);
|
||||
if (Constructor->isConvertingConstructor())
|
||||
if (!Constructor->isInvalidDecl() &&
|
||||
Constructor->isConvertingConstructor())
|
||||
AddOverloadCandidate(Constructor, &From, 1, CandidateSet,
|
||||
/*SuppressUserConversions=*/true, ForceRValue);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
// RUN: clang-cc -fsyntax-only -verify %s
|
||||
|
||||
struct S { // expected-note {{candidate function}}
|
||||
S (S); // expected-error {{copy constructor must pass its first argument by reference}} \\
|
||||
// expected-note {{candidate function}}
|
||||
};
|
||||
|
||||
S f();
|
||||
|
||||
void g() {
|
||||
S a( f() ); // expected-error {{call to constructor of 'a' is ambiguous}}
|
||||
}
|
||||
|
Loading…
Reference in New Issue