diff options
author | Lubos Lunak <l.lunak@suse.cz> | 2013-07-21 13:15:58 +0000 |
---|---|---|
committer | Lubos Lunak <l.lunak@suse.cz> | 2013-07-21 13:15:58 +0000 |
commit | 1f490f3aea7ab36f0950f8ca33ec1011e23704e5 (patch) | |
tree | 54f6b458d629395656aab11a796a2a6ba091958e /clang/lib/AST/Expr.cpp | |
parent | 9cd2435b9a9841255a27a6f6780a125bbd0aeb46 (diff) | |
download | bcm5719-llvm-1f490f3aea7ab36f0950f8ca33ec1011e23704e5.tar.gz bcm5719-llvm-1f490f3aea7ab36f0950f8ca33ec1011e23704e5.zip |
report unused-value warning also for warn_unused types
llvm-svn: 186793
Diffstat (limited to 'clang/lib/AST/Expr.cpp')
-rw-r--r-- | clang/lib/AST/Expr.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 8473c096afe..5c1a27da365 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -2075,8 +2075,17 @@ bool Expr::isUnusedResultAWarning(const Expr *&WarnE, SourceLocation &Loc, return false; case CXXTemporaryObjectExprClass: - case CXXConstructExprClass: + case CXXConstructExprClass: { + if (const CXXRecordDecl *Type = getType()->getAsCXXRecordDecl()) { + if (Type->hasAttr<WarnUnusedAttr>()) { + WarnE = this; + Loc = getLocStart(); + R1 = getSourceRange(); + return true; + } + } return false; + } case ObjCMessageExprClass: { const ObjCMessageExpr *ME = cast<ObjCMessageExpr>(this); |