[clang] Add Clang attribute to ensure that fields are initialized explicitly (PR #102040)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 30 11:11:18 PDT 2024


================
@@ -551,3 +551,14 @@ struct full_of_empty empty_test_2(void) {
   struct full_of_empty e;
   return e; // no-warning
 }
+
+struct with_explicit_field {
+  int x;
+  int y [[clang::requires_explicit_initialization]]; // expected-note 2{{'y' declared here}}
----------------
erichkeane wrote:

Ah!  I see, based on your previous response, I thought you knew what they were.

Basically, putting the note on the line it happened splits the errors up from the note, making it unclear what is actually happening while reviewing, so I tend to insist (unless it is a super short/obvious test) that we use the 'bookmark'/'marker' feature.  Where you do something like:

```
int ThingThatCausesANote; // #NOTELOC
....
void ErrorThing();
// expected-error at -1 {{Error Text}}
// expected-note@#NOTELOC {{Note Text}}
```

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


More information about the cfe-commits mailing list