aaron.ballman added a comment.

In D119051#3714645 <https://reviews.llvm.org/D119051#3714645>, @dblaikie wrote:

> Realized maybe we don't need a separate driver flag for this at all, and rely 
> only on the abi-compat flag? That seems to be how (at least some) other ABI 
> compat changes have been handled, looking at other uses of `ClangABI` enum 
> values.

Agreed, I think this is the better approach.

> There could be more testing than only the indirect result of the packing 
> problem that first inspired this patch. Any suggestions on what might be the 
> most direct way to test whether the type's been considered pod in this sense?

I would have thought use of `__is_pod` would tell us, but I'm not seeing the 
behavior described in the test case when using that: 
https://godbolt.org/z/1vr3MK4KW Oddly, it seems that 
`QualType::isCXX11PODType()` doesn't look at `PlainOldData` at all! What is 
your expectation as to how the type trait should be behaving?



================
Comment at: clang/test/SemaCXX/class-layout.cpp:2-9
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -Wno-c++11-extensions
+// RUN: %clang_cc1 -triple x86_64-apple-darwin    %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -Wno-c++11-extensions -DCLANG_ABI_COMPAT=14
+// RUN: %clang_cc1 -triple x86_64-scei-ps4        %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -Wno-c++11-extensions -DCLANG_ABI_COMPAT=6
+// RUN: %clang_cc1 -triple x86_64-sie-ps5         %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -Wno-c++11-extensions -DCLANG_ABI_COMPAT=6
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -Wno-c++11-extensions -fclang-abi-compat=6 
-DCLANG_ABI_COMPAT=6
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -Wno-c++11-extensions -fclang-abi-compat=14 
-DCLANG_ABI_COMPAT=14
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -Wno-c++11-extensions -fclang-abi-compat=15 
-DCLANG_ABI_COMPAT=15
----------------
No need for `-Wno-c++11-extensions` on these RUN lines, right (they already 
specify c++11 specifically, so there are no extensions to warn about)?


================
Comment at: clang/test/SemaCXX/class-layout.cpp:663-665
+_Static_assert(_Alignof(t2) == 4, "");
+#else
+_Static_assert(_Alignof(t2) == 1, "");
----------------



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D119051

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

Reply via email to