aaron.ballman added inline comments.

================
Comment at: clang/include/clang/Basic/Attr.td:1948
+def RequiresDesignator : InheritableAttr {
+  let Spellings = [Clang<"requires_designator">];
+  let Subjects = SubjectList<[Record]>;
----------------
Hmm, after making this suggestion, I noticed that GCC seems to support a 
similar attribute named `designated_init` 
(https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#Common-Type-Attributes).
 Was your goal to support the same thing GCC supported?


================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:3534
+def warn_requires_designator_failed : Warning<
+  "variable declaration does not use designated initializer syntax">;
+def note_declared_requires_designator_here : Note<
----------------
These new warnings should be controlled under a diagnostic group. I would 
recommend `designated-init` because that's what's used by GCC for their 
attribute, but that's only because I am assuming you want your attribute to 
match their behavior.


================
Comment at: clang/lib/Sema/SemaDecl.cpp:11220
+      if (const auto *ILE = dyn_cast<InitListExpr>(Init)) {
+        for (auto *I : ILE->inits()) {
+          if (auto *DIE = dyn_cast<DesignatedInitExpr>(I))
----------------
`const auto *` here as well?


================
Comment at: clang/lib/Sema/SemaDecl.cpp:11221
+        for (auto *I : ILE->inits()) {
+          if (auto *DIE = dyn_cast<DesignatedInitExpr>(I))
+            continue;
----------------
You don't use `DIE` -- this should switch to an `isa<>` instead.


================
Comment at: clang/lib/Sema/SemaDecl.cpp:11254
+        if (const auto *ILE = dyn_cast<InitListExpr>(Init)) {
+          for (auto *I : ILE->inits()) {
+            if (auto *DIE = dyn_cast<DesignatedInitExpr>(I)) {
----------------
`const auto *` here and below?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64380/new/

https://reviews.llvm.org/D64380



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to