hokein added inline comments.

================
Comment at: clang/lib/AST/DeclBase.cpp:400
+  for (; I != E; ++I) {
+    if (!I->isAlignmentDependent())
+      Align = std::max(Align, I->getAlignment(Ctx));
----------------
sammccall wrote:
> This doesn't seem great - previously if e.g. codegen ends up needing the 
> alignment of a dependent decl somehow, then an assert will catch that 
> programming error.
> Now it'll be silently swallowed. Seems better to check 
> isAlignmentErrorDependent() here (you'd need to add that function) and 
> continue to assert in other dependent cases.
ah, right. I think we should probably fix other similar places (where I added 
FIXMEs). We don't have problems at the moment -- because the recovery-expr is 
dependent, and they have been bailed out by isAlignmentDependent(). If we start 
capture the concrete type for recovery-expr, the `isAlignmentDependent` bailout 
will fail.


The `isAlignmentDependent` seems a bit confusing now, what does the `dependent` 
mean? if we generalize it, it could mean the attr depends on a template 
parameter (type, value, instantiation) or an error, in this sense 
`isAlignmentDependent` should cover the error-dependent case. I think here it 
only indicates the type-, value-, instantiation- dependent.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D78085



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

Reply via email to