[clang] [clang] Output an error when [[lifetimebound]] attribute is applied on a function parameter while the function returns void (PR #113460)

Boaz Brickner via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 24 00:55:54 PDT 2024


================
@@ -6970,6 +6970,18 @@ static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {
         }
       }
     }
+
+    for (unsigned int I = 0; I < FD->getNumParams(); ++I) {
+      const ParmVarDecl *P = FD->getParamDecl(I);
+
+      // The [[lifetimebound]] attribute can be applied to a function parameter
+      // only if the function returns a value.
+      if (auto *A = P->getAttr<LifetimeBoundAttr>()) {
----------------
bricknerb wrote:

Added a test to demonstrate that.

https://github.com/llvm/llvm-project/pull/113460


More information about the cfe-commits mailing list