[clang] Warning for incorrect useof 'pure' attribute (PR #78200)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 18 00:40:45 PST 2024
================
@@ -11802,6 +11802,27 @@ 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) {
----------------
kelbon wrote:
Early return is good, but i think it may be customization point, where different attributes/contract checks will be in future, so early return will cause more changes in future
https://github.com/llvm/llvm-project/pull/78200
More information about the cfe-commits
mailing list