[PATCH] D136018: [Clang] Fix crash when checking misaligned member with dependent type

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 17 05:56:44 PDT 2022


aaron.ballman added inline comments.


================
Comment at: clang/lib/Sema/SemaChecking.cpp:17397
+      auto *MA = llvm::find(MisalignedMembers, MisalignedMember(Op));
+      const bool IsDiscardMisalignedPointer =
+          T->isPointerType() &&
----------------
We don't typically use top-level `const` qualification.


================
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);
----------------
Hmm, is this logic correct? Don't we want:

```
T->isDependentType() ||
  (T->isPointerType() &&
    (T->getPointeeType()->isIncompleteType() || Context.getTypeAlignInChars(T->getPointeeType()) <= MA->Alignment))
```


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