forked from OSchip/llvm-project
Specialize diag::warn_unused_call for the "warn_unused_result" attribute, so
it can be controlled with a distinct flag. llvm-svn: 136941
This commit is contained in:
parent
cd17c12078
commit
a17cf6330f
|
@ -163,7 +163,8 @@ def UnusedMemberFunction : DiagGroup<"unused-member-function",
|
||||||
[UnneededMemberFunction]>;
|
[UnneededMemberFunction]>;
|
||||||
def UnusedLabel : DiagGroup<"unused-label">;
|
def UnusedLabel : DiagGroup<"unused-label">;
|
||||||
def UnusedParameter : DiagGroup<"unused-parameter">;
|
def UnusedParameter : DiagGroup<"unused-parameter">;
|
||||||
def UnusedValue : DiagGroup<"unused-value">;
|
def UnusedResult : DiagGroup<"unused-result">;
|
||||||
|
def UnusedValue : DiagGroup<"unused-value", [UnusedResult]>;
|
||||||
def UnusedVariable : DiagGroup<"unused-variable">;
|
def UnusedVariable : DiagGroup<"unused-variable">;
|
||||||
def UsedButMarkedUnused : DiagGroup<"used-but-marked-unused">;
|
def UsedButMarkedUnused : DiagGroup<"used-but-marked-unused">;
|
||||||
def ReadOnlySetterAttrs : DiagGroup<"readonly-setter-attrs">;
|
def ReadOnlySetterAttrs : DiagGroup<"readonly-setter-attrs">;
|
||||||
|
|
|
@ -3783,6 +3783,9 @@ def warn_unused_property_expr : Warning<
|
||||||
def warn_unused_call : Warning<
|
def warn_unused_call : Warning<
|
||||||
"ignoring return value of function declared with %0 attribute">,
|
"ignoring return value of function declared with %0 attribute">,
|
||||||
InGroup<UnusedValue>;
|
InGroup<UnusedValue>;
|
||||||
|
def warn_unused_result : Warning<
|
||||||
|
"ignoring return value of function declared with warn_unused_result "
|
||||||
|
"attribute">, InGroup<DiagGroup<"unused-result">>;
|
||||||
|
|
||||||
def err_incomplete_type_used_in_type_trait_expr : Error<
|
def err_incomplete_type_used_in_type_trait_expr : Error<
|
||||||
"incomplete type %0 used in type trait expression">;
|
"incomplete type %0 used in type trait expression">;
|
||||||
|
|
|
@ -123,7 +123,7 @@ void Sema::DiagnoseUnusedExprResult(const Stmt *S) {
|
||||||
// a more specific message to make it clear what is happening.
|
// a more specific message to make it clear what is happening.
|
||||||
if (const Decl *FD = CE->getCalleeDecl()) {
|
if (const Decl *FD = CE->getCalleeDecl()) {
|
||||||
if (FD->getAttr<WarnUnusedResultAttr>()) {
|
if (FD->getAttr<WarnUnusedResultAttr>()) {
|
||||||
Diag(Loc, diag::warn_unused_call) << R1 << R2 << "warn_unused_result";
|
Diag(Loc, diag::warn_unused_result) << R1 << R2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (FD->getAttr<PureAttr>()) {
|
if (FD->getAttr<PureAttr>()) {
|
||||||
|
@ -142,7 +142,7 @@ void Sema::DiagnoseUnusedExprResult(const Stmt *S) {
|
||||||
}
|
}
|
||||||
const ObjCMethodDecl *MD = ME->getMethodDecl();
|
const ObjCMethodDecl *MD = ME->getMethodDecl();
|
||||||
if (MD && MD->getAttr<WarnUnusedResultAttr>()) {
|
if (MD && MD->getAttr<WarnUnusedResultAttr>()) {
|
||||||
Diag(Loc, diag::warn_unused_call) << R1 << R2 << "warn_unused_result";
|
Diag(Loc, diag::warn_unused_result) << R1 << R2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if (isa<ObjCPropertyRefExpr>(E)) {
|
} else if (isa<ObjCPropertyRefExpr>(E)) {
|
||||||
|
|
Loading…
Reference in New Issue