forked from OSchip/llvm-project
[AST][RecoveryExpr] Fix a bogus unused diagnostic when the type is preserved.
Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D85716
This commit is contained in:
parent
a4c3ed42ba
commit
466590192b
|
@ -2658,6 +2658,8 @@ bool Expr::isUnusedResultAWarning(const Expr *&WarnE, SourceLocation &Loc,
|
|||
// Otherwise, the result of the cast is unused.
|
||||
if (CE->getCastKind() == CK_ConstructorConversion)
|
||||
return CE->getSubExpr()->isUnusedResultAWarning(WarnE, Loc, R1, R2, Ctx);
|
||||
if (CE->getCastKind() == CK_Dependent)
|
||||
return false;
|
||||
|
||||
WarnE = this;
|
||||
if (const CXXFunctionalCastExpr *CXXCE =
|
||||
|
|
|
@ -75,3 +75,14 @@ namespace test5 {
|
|||
template<typename...Ts> U<Ts...>& f(); // expected-error {{pack expansion used as argument for non-pack parameter of alias template}}
|
||||
double &s1 = f(); // expected-error {{no matching function}}
|
||||
}
|
||||
|
||||
namespace test6 {
|
||||
struct T {
|
||||
T() = delete; // expected-note {{has been explicitly marked deleted here}}
|
||||
};
|
||||
|
||||
void func() {
|
||||
// verify that no -Wunused-value diagnostic.
|
||||
(T(T())); // expected-error {{call to deleted constructor}}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue