[PATCH] D106900: [PowerPC][AIX] Packed zero-width bitfields do not affect alignment.

Sean Fertile via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 30 07:06:45 PDT 2021


sfertile added inline comments.


================
Comment at: clang/lib/AST/RecordLayoutBuilder.cpp:1781
-  // pragma align(packed).
-  if (isAIXLayout(Context) && !MaxFieldAlignment.isZero() && !FieldSize)
-    FieldAlign = std::min(FieldAlign, MaxFieldAlignmentInBits);
----------------
stevewan wrote:
> Just noting that the comment says `MaxFieldAlignment - The maximum allowed field alignment. This is set by #pragma pack`, but `__attribute__(packed)` also seems to set it to some large value that is at least as large as the FieldAlign. Maybe edit the comment accordingly for now, and a future follow-on patch if necessary.
Sorry Steven, not sure what you are asking for. 

attribute packed will set 'FieldPacked` to true, in which case we ignore the max field alignment  (and why the new comment says, or 1 if packed). IIUC the MaXFieldAlign is set by only by pragma pack and pragma align in the Itanium recored layout builder, and the place where it is set based on attribute packed is int he Microsoft record layout builder and doesn't affect us here.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D106900



More information about the llvm-commits mailing list