================ @@ -11792,6 +11792,26 @@ static bool CheckMultiVersionFunction(Sema &S, FunctionDecl *NewFD, OldDecl, Previous); } +static void CheckFunctionDeclarationAttributesUsage(Sema &S, + FunctionDecl *NewFD) { + bool IsPure = NewFD->hasAttr<PureAttr>(); + bool IsConst = NewFD->hasAttr<ConstAttr>(); + + if (IsPure && IsConst) { + S.Diag(NewFD->getLocation(), diag::warn_const_attr_with_pure_attr); + NewFD->dropAttr<PureAttr>(); + } + if (IsPure || IsConst) { + // constructors and destructors also functions which returns void ---------------- erichkeane wrote:
```suggestion // Constructors and destructors are functions which return void, so are handled here as well. ``` https://github.com/llvm/llvm-project/pull/78200 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits