[clang] [BoundsSafety][Sema] Allow counted_by and counted_by_or_null on pointers where the pointee type is incomplete but potentially completable (PR #106321)

Dan Liew via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 28 13:00:22 PDT 2024


================
@@ -8192,6 +8192,14 @@ ExprResult InitializationSequence::Perform(Sema &S,
             Kind.getRange().getEnd());
       } else {
         CurInit = new (S.Context) ImplicitValueInitExpr(Step->Type);
+        // Note the return value isn't used to return early
+        // to preserve the AST as best as possible even though an error
+        // might have occurred. For struct initialization it also allows
+        // all field assignments to be checked rather than bailing on the
+        // first error.
+        S.BoundsSafetyCheckInitialization(Entity, Kind, Sema::AA_Initializing,
+                                          /*LHSType=*/Step->Type,
+                                          /*RHSExpr=*/CurInit.get());
----------------
delcypher wrote:

This is here for clarify because it really isn't obvious that `Step->Type` means the LHS type (similarly for the other parameters).

The style guide says:

https://llvm.org/docs/CodingStandards.html#comment-formatting

---

> When documenting the significance of constants used as actual parameters in a call. This is most helpful for bool parameters, or passing 0 or nullptr. The comment should contain the parameter name, which ought to be meaningful. For example, it’s not clear what the parameter means in this call:

```
Object.emitName(nullptr);
```

> An in-line C-style comment makes the intent obvious:

```
Object.emitName(/*Prefix=*/nullptr);
```

---

So you're right that it's encouraged for constant arguments which isn't the case here. I'll drop the comments.

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


More information about the cfe-commits mailing list