Gisle Vanem wrote: > I'm not sure exactly when or how these new warnings from > clang-cl happened (a lot of them): > > f:/ProgramFiler-x86/WindowsKits/Include/10.0.15063.0/ucrt/stdlib.h(78,5): > warning: macro expansion producing 'defined' has undefined behavior > [-Wexpansion-to-defined] > #if _CRT_INTERNAL_NONSTDC_NAMES > ^ > > f:\ProgramFiler-x86\WindowsKits\Include\10.0.15063.0\ucrt\corecrt.h(288,11): > note: expanded from macro > '_CRT_INTERNAL_NONSTDC_NAMES' > ( defined _CRT_DECLARE_NONSTDC_NAMES && > _CRT_DECLARE_NONSTDC_NAMES) || \ > ^ > > Really, why?
Well, the compiler's "note" tells you: The system include files (corecrt.h in your case) define _CRT_INTERNAL_NONSTDC_NAMES to some expression that includes the 'defined' keyword. You seem to be doing a native Windows compilation with the MSVC include files and a non-Microsoft compiler [1]. This is not the among usual tested combinations; good luck with this adventure :) I just fixed a wrong #if in this area two days ago [2]; you can expect to find more mistakes of this sort in gnulib and other GNU packages. Bruno [1] https://clang.llvm.org/docs/MSVCCompatibility.html [2] https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=1888a27a1e48e4f8b9006c164ba1d1218a143c28