forked from OSchip/llvm-project
5e866e411c
I noticed that compiling on Windows with -fno-ms-compatibility had the side effect of defining __GNUC__, along with __GNUG__, __GXX_RTTI__, and a number of other macros for GCC compatibility. This is undesirable and causes Chromium to do things like mix __attribute__ and __declspec, which doesn't work. We should have a positive language option to enable GCC compatibility features so that we can experiment with -fno-ms-compatibility on Windows. This change adds -fgnuc-version= to be that option. My issue aside, users have, for a long time, reported that __GNUC__ doesn't match their expectations in one way or another. We have encouraged users to migrate code away from this macro, but new code continues to be written assuming a GCC-only environment. There's really nothing we can do to stop that. By adding this flag, we can allow them to choose their own adventure with __GNUC__. This overlaps a bit with the "GNUMode" language option from -std=gnu*. The gnu language mode tends to enable non-conforming behaviors that we'd rather not enable by default, but the we want to set things like __GXX_RTTI__ by default, so I've kept these separate. Helps address PR42817 Reviewed By: hans, nickdesaulniers, MaskRay Differential Revision: https://reviews.llvm.org/D68055 llvm-svn: 374449 |
||
---|---|---|
.. | ||
Inputs | ||
altivec-header.c | ||
altivec-intrin.c | ||
arm-acle-header.c | ||
arm-fp16-header.c | ||
arm-neon-header.c | ||
arm64-apple-ios-types.cpp | ||
c11.c | ||
c89.c | ||
cpuid.c | ||
cxx11.cpp | ||
float-darwin.c | ||
float.c | ||
float16.c | ||
htm-header.c | ||
int64-type.c | ||
limits.cpp | ||
max_align.c | ||
mm3dnow.c | ||
ms-arm64-intrin.cpp | ||
ms-cppoperkey.cpp | ||
ms-cppoperkey1.cpp | ||
ms-cppoperkey2.cpp | ||
ms-intrin.cpp | ||
ms-null-ms-header-vs-stddef.cpp | ||
ms-wchar.c | ||
nvptx_device_cmath_functions.c | ||
nvptx_device_cmath_functions.cpp | ||
nvptx_device_cmath_functions_cxx17.cpp | ||
nvptx_device_math_functions.c | ||
nvptx_device_math_functions.cpp | ||
nvptx_device_math_functions_cxx17.cpp | ||
opencl-c-header.cl | ||
pconfigintin.c | ||
pmmintrin.c | ||
ppc-intrinsics.c | ||
sgxintrin.c | ||
stdarg-gnuc_va_list.c | ||
stdarg.cpp | ||
stdatomic.c | ||
stdbool.cpp | ||
stddefneeds.cpp | ||
stdint-typeof-MINMAX.cpp | ||
tgmath-darwin.c | ||
tgmath.c | ||
thumbv7-apple-ios-types.cpp | ||
typedef_guards.c | ||
unwind.c | ||
wchar_limits.cpp | ||
wmmintrin.c | ||
x86-intrinsics-headers-clean.cpp | ||
x86-intrinsics-headers.c | ||
x86_64-apple-macosx-types.cpp | ||
x86intrin-2.c | ||
x86intrin.c | ||
x86intrin.cpp | ||
xmmintrin.c |