[clang] [Clang] Fix missing diagnostic for non-standard layout type in `offsetof` (PR #65246)

via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 26 02:33:36 PDT 2023


kasuga-fj wrote:

> Do we have any Github workflow documentation that mentions we shouldn't force-push to update PRs?

According to the [LLVM GitHub User Guide](https://llvm.org/docs/GitHub.html#rebasing-pull-requests-and-force-pushes), we should generally avoid rebasing and pushing force. But I trust it will be allowed in this case.

> My question is about the desired end state of libc++, not whether that end state should be achieved in this specific patch or not.

I misunderstood, sorry. I'm not an expert of libcxx, so I cannot determine what is should be (although it is only what an amateur thinks, at least it seems to be working fine now, so just suppressing warning would not be a big problem, I think). 
Incidentally, as you may have already noticed, it may be worth noting that a relatively recent commit introduced `__libcpp_datasizeof` (https://github.com/llvm/llvm-project/commit/c4e98722ca79c827dd57b809e0ef16b3b8da8c72).

> Certainly _FirstPaddingByte<> can't be standard layout if the T it holds is not standard layout?

Yes, you are correct. I was only checking with standard-layout class... I tried passing a non-standard layout class in the type parameter and `_FirstPaddingByte<>` became non standard-layout. By the way, I checked the CI's failure log and it looks that perhaps there is no test which uses `__libcpp_datasizeof` with non standard-layout type (I may have missed something). I think it would be better adding such one.

https://github.com/llvm/llvm-project/pull/65246


More information about the cfe-commits mailing list