summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp4
-rw-r--r--clang/test/SemaCXX/deleted-function.cpp6
2 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 7a76f6ae765..0a6b0c85458 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -2591,7 +2591,7 @@ static ExprResult BuildCXXCastArgument(Sema &S,
S.CheckConstructorAccess(CastLoc, Constructor,
InitializedEntity::InitializeTemporary(Ty),
Constructor->getAccess());
- if (S.DiagnoseUseOfDecl(FoundDecl, CastLoc))
+ if (S.DiagnoseUseOfDecl(Method, CastLoc))
return ExprError();
ExprResult Result = S.BuildCXXConstructExpr(
@@ -2609,7 +2609,7 @@ static ExprResult BuildCXXCastArgument(Sema &S,
assert(!From->getType()->isPointerType() && "Arg can't have pointer type!");
S.CheckMemberOperatorAccess(CastLoc, From, /*arg*/ nullptr, FoundDecl);
- if (S.DiagnoseUseOfDecl(FoundDecl, CastLoc))
+ if (S.DiagnoseUseOfDecl(Method, CastLoc))
return ExprError();
// Create an implicit call expr that calls it.
diff --git a/clang/test/SemaCXX/deleted-function.cpp b/clang/test/SemaCXX/deleted-function.cpp
index eab1f34692a..bd6fc09eeb7 100644
--- a/clang/test/SemaCXX/deleted-function.cpp
+++ b/clang/test/SemaCXX/deleted-function.cpp
@@ -87,3 +87,9 @@ int dc12 = use_dc({0}); // expected-error {{deleted}}
int use_dcr(const DelCtor &); // expected-note {{here}}
int dc13 = use_dcr(0); // expected-error {{deleted}}
int dc14 = use_dcr({0}); // expected-error {{deleted}}
+
+struct DelCtorTemplate {
+ template<typename T> DelCtorTemplate(T) = delete; // expected-note {{deleted}}
+};
+int use_dct(const DelCtorTemplate &);
+int dc15 = use_dct(0); // expected-error {{deleted}}
OpenPOWER on IntegriCloud