[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 13 23:05:06 PDT 2024


================
@@ -873,30 +877,17 @@ class Sema final : public SemaBase {
   /// Warn when implicitly casting 0 to nullptr.
   void diagnoseZeroToNullptrConversion(CastKind Kind, const Expr *E);
 
-  // ----- function effects ---
+  /// All functions/lambdas/blocks which have bodies and which have a non-empty
+  /// FunctionEffectsRef to be verified.
+  SmallVector<const Decl *> DeclsWithEffectsToVerify;
+  /// The union of all effects present on DeclsWithEffectsToVerify. Conditions
+  /// are all null.
+  FunctionEffectKindSet AllEffectsToVerify;
----------------
Sirraide wrote:

If we’re adding a new section to `Sema`, that should probably go there too. Honestly, at this point we can probably just rename `EffectAnalysis.cpp` to `SemaEffect.cpp` (or maybe even better: `SemaFunctionEffects.cpp`) and move all of the effect-related stuff in Sema there so it’s all in one place. I’m not sure we need a separate sub-compoent of Sema for it tho like we do for Objective-C etc.

@Endilll Do you have any opinions on how we should organise this?

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


More information about the cfe-commits mailing list