[PATCH] D136018: [Clang] Fix crash when checking misaligned member with dependent type
Shafik Yaghmour via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 17 11:39:57 PDT 2022
shafik added inline comments.
================
Comment at: clang/lib/Sema/SemaChecking.cpp:17398-17399
+ const bool IsDiscardMisalignedPointer =
+ T->isPointerType() &&
+ (T->getPointeeType()->isIncompleteType() || T->isDependentType() ||
+ Context.getTypeAlignInChars(T->getPointeeType()) <= MA->Alignment);
----------------
aaron.ballman wrote:
> Hmm, is this logic correct? Don't we want:
>
> ```
> T->isDependentType() ||
> (T->isPointerType() &&
> (T->getPointeeType()->isIncompleteType() || Context.getTypeAlignInChars(T->getPointeeType()) <= MA->Alignment))
> ```
Why did you drop the `T->isIntegerType()`?
================
Comment at: clang/test/SemaCXX/misaligned-member-with-depdent-type.cpp:4
+// expected-no-diagnostics
+struct __attribute__((packed)) {
+ unsigned options;
----------------
I think since the bug report had malformed code, it would be worth it to include that case as well.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136018/new/
https://reviews.llvm.org/D136018
More information about the cfe-commits
mailing list