Author: halbi2
Date: 2025-04-30T19:29:37+08:00
New Revision: 6dfd35457123089b3506899c8bc522f3dfa6e959

URL: 
https://github.com/llvm/llvm-project/commit/6dfd35457123089b3506899c8bc522f3dfa6e959
DIFF: 
https://github.com/llvm/llvm-project/commit/6dfd35457123089b3506899c8bc522f3dfa6e959.diff

LOG: [clang] ownership_returns attribute takes no more than 2 arguments 
(#137897)

Added: 
    

Modified: 
    clang/lib/Sema/SemaDeclAttr.cpp
    clang/test/Sema/attr-ownership.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 413999b95b998..8499141c30bce 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -1483,7 +1483,7 @@ static void handleOwnershipAttr(Sema &S, Decl *D, const 
ParsedAttr &AL) {
     break;
   case OwnershipAttr::Returns:
     if (AL.getNumArgs() > 2) {
-      S.Diag(AL.getLoc(), diag::err_attribute_too_many_arguments) << AL << 1;
+      S.Diag(AL.getLoc(), diag::err_attribute_too_many_arguments) << AL << 2;
       return;
     }
     break;

diff  --git a/clang/test/Sema/attr-ownership.c 
b/clang/test/Sema/attr-ownership.c
index d2e40538a40f0..515428d7d6c44 100644
--- a/clang/test/Sema/attr-ownership.c
+++ b/clang/test/Sema/attr-ownership.c
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 %s -verify -fsyntax-only -Wno-strict-prototypes
 
 void f1(void) __attribute__((ownership_takes("foo"))); // expected-error 
{{'ownership_takes' attribute requires parameter 1 to be an identifier}}
-void *f2(void) __attribute__((ownership_returns(foo, 1, 2)));  // 
expected-error {{'ownership_returns' attribute takes no more than 1 argument}}
+void *f2(void) __attribute__((ownership_returns(foo, 1, 2)));  // 
expected-error {{'ownership_returns' attribute takes no more than 2 arguments}}
 void f3(void) __attribute__((ownership_holds(foo, 1))); // expected-error 
{{'ownership_holds' attribute parameter 1 is out of bounds}}
 void *f4(void) __attribute__((ownership_returns(foo)));
 void f5(void) __attribute__((ownership_holds(foo)));  // expected-error 
{{'ownership_holds' attribute takes at least 2 arguments}}


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to