MaskRay wrote: `-mms-bitfields` is a GCC x86 specific option (`aarch64-linux-gnu-gcc -mms-bitfields -xc /dev/null -E` => `error: unrecognized command-line option ‘-mms-bitfields’`). It does not make sense for MSVC. Currently, Driver defaults to pass -mms-bitfields to cc1 for `windows-gnu` triples (https://reviews.llvm.org/D81795). `windows-msvc` triples don't get `-mms-bitfields`.
This patch changes `getCXXABI().isMicrosoft()` to use the `-mms-bitfields` behavior (`RecordDecl::isMsStruct`), which is a drastic change. Is it really necessary to achieve your goal? For the `gcc_struct` feature request #24757 , I believe it's for windows-gnu triples, not for windows-msvc. We don't necessarily enable it for windows-msvc. The patch tries to do something with windows-msvc and introduces CC1 options whose names are different from Driver options. These introduce a lot complexity. https://github.com/llvm/llvm-project/pull/71148 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits