Reusing an existing attribute diagnostic
In a previous patch, a new generic error diagnostic for inconsistent attributes was added. In this commit I reuse this diagnostic for ns_returns_retained attribute check. Differential Revision: https://reviews.llvm.org/D32697 llvm-svn: 302024
This commit is contained in:
parent
d0baa524d0
commit
bada0d4628
|
@ -2820,9 +2820,6 @@ def warn_cconv_structors : Warning<
|
|||
def err_regparm_mismatch : Error<"function declared with regparm(%0) "
|
||||
"attribute was previously declared "
|
||||
"%plural{0:without the regparm|:with the regparm(%1)}1 attribute">;
|
||||
def err_returns_retained_mismatch : Error<
|
||||
"function declared with the ns_returns_retained attribute "
|
||||
"was previously declared without the ns_returns_retained attribute">;
|
||||
def err_function_attribute_mismatch : Error<
|
||||
"function declared with %0 attribute "
|
||||
"was previously declared without the %0 attribute">;
|
||||
|
|
|
@ -2951,7 +2951,8 @@ bool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD,
|
|||
// Merge ns_returns_retained attribute.
|
||||
if (OldTypeInfo.getProducesResult() != NewTypeInfo.getProducesResult()) {
|
||||
if (NewTypeInfo.getProducesResult()) {
|
||||
Diag(New->getLocation(), diag::err_returns_retained_mismatch);
|
||||
Diag(New->getLocation(), diag::err_function_attribute_mismatch)
|
||||
<< "'ns_returns_retained'";
|
||||
Diag(OldLocation, diag::note_previous_declaration);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -199,4 +199,4 @@ class rdar10142572 {
|
|||
};
|
||||
|
||||
id rdar10142572::f() { return 0; } // okay: merged down
|
||||
id __attribute__((ns_returns_retained)) rdar10142572::g() { return 0; } // expected-error{{function declared with the ns_returns_retained attribute was previously declared without the ns_returns_retained attribute}}
|
||||
id __attribute__((ns_returns_retained)) rdar10142572::g() { return 0; } // expected-error{{function declared with 'ns_returns_retained' attribute was previously declared without the 'ns_returns_retained' attribute}}
|
||||
|
|
Loading…
Reference in New Issue