aaronpuchert added a comment.

I'd leave it to @rsmith to decide whether this makes sense in Sema.h.

I tend to follow the rule that if it's just used once I keep it local, but you 
might have good reasons for making it public.



================
Comment at: clang/lib/Sema/SemaDecl.cpp:13316
+  return VD->getType()->isDependentType() ||
+         std::any_of(range.begin(), range.end(), [](const AlignedAttr *AA) {
+           return AA->isAlignmentDependent();
----------------
From `llvm/include/llvm/ADT/STLExtras.h`.


================
Comment at: clang/lib/Sema/SemaDecl.cpp:13317
+         std::any_of(range.begin(), range.end(), [](const AlignedAttr *I) {
+           return I->isAlignmentDependent();
+         });
----------------
mizvekov wrote:
> Quuxplusone wrote:
> > Tangent: It would be nice to rename `isAlignmentDependent` into 
> > `hasDependentAlignment` or simply `isDependent`. IIUC, the intended meaning 
> > is "Is this alignment attribute 'dependent'?" and not (as the name would 
> > naturally parse) "is this alignment attribute 'alignment-dependent'?"
> > 
> > Arguably, it could also work to say `I->isDependentAlignment()` in the same 
> > way that we say `getType()->isDependentType()`.
> > 
> > Speaking of which, maybe `I` should be renamed to `AA` or something? Is `I` 
> > really the right abbreviation for an `AlignedAttr`?
> I agree, but it is not so simple. This attribute class is autogenerated from 
> `clang/include/clang/Basic/Attr.td` and it's not obvious to me where that 
> method name comes from. Probably the tablegen backend. But that is another 
> area that I am not familiar with yet.
> And there are a few users, and also a method named 
> `isAlignmentErrorDependent` which would benefit from the same kind of rename.
> This DR is supposed to be a quick fix for a regression, I better leave that 
> tangent for another time :)
> 
> The second rename, well it is very common to name a predicate variable as 
> `I`, but I renamed to `AA` as that is also good.
Seems plausible that it comes from

```
let Args = [ExprArgument<"Alignment">];
```

in `AlignValue`. An expression can be dependent, and to distinguish expression 
arguments, it probably generates functions `isXXXDependent` for 
`ExprArgument<"XXX">`. But I'm just guessing.

But yeah, nothing we can easily change here.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105380

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

Reply via email to