On Tuesday 17 September 2024 00:26:04 Martin Storsjö wrote: > On Sun, 15 Sep 2024, Pali Rohár wrote: > > > When compiling any application with flags under gcc 7+ with flags > > -D__MINGW_INTRIN_INLINE -Wall -Wextra, it throws about 300 lines of > > If I try to build a test program, which only contains "#include <intrin.h>", > nothing else, with GCC 10, with those flags, I get a lot of errors like > "<command-line>: error: expected identifier or ‘(’ before numeric constant". > __MINGW_INTRIN_INLINE should be defined to something like "extern __inline__ > __attribute__((__always_inline__,__gnu_inline__))" anyway - and isn't it > always defined? > > So I can't reproduce this situation - did you mean some other define?
Yea, I wrote reproducer in another email. The simple one is just via preprocessor $ i686-w64-mingw32-cpp mingw-w64-headers/include/psdk_inc/intrin-impl.h -D__MINGW_INTRIN_INLINE -Wall -Wextra -O2 > /dev/null Or calling full compiler via: $ cat test.c #include <windows.h> $ i686-w64-mingw32-gcc -Imingw-w64-headers/include -Wall -Wextra -c test.c (now without explicit -D__MINGW_INTRIN_INLINE flag) I see that I wrote commit message too quickly and incorrectly. > Btw, when dealing with headers, Clang has a behaviour where it normally > silences all warnings from headers that are in the general toolchain > sysroot, considered system headers. So normally we don't see any warnings > from code in headers at all - which is a bit problematic when you want to > investigate issues like these... Does GCC do something like that, or does > GCC normally print all warnings for things in system headers too, in regular > installs? > > // Martin I started compiling mingw-w64 with flags: ./configure --host=i686-w64-mingw32 CPPFLAGS="-I$PWD/mingw-w64-headers/crt/ -I$PWD/mingw-w64-headers/include/" which allows to compile it at once step without need to install headers first and separately. And this triggered those warnings. Also after installing mingw-w64 into $ROOT, I'm just calling it via: i686-w64-mingw32-gcc -I$ROOT/usr/local/include -B$ROOT/usr/local/lib (as this does not require to overwrite system mingw-w64 and allows me to have more mingw-w64 instances with just one gcc compiler binary) And maybe this is the reason as this is not regular installation and triggers all those "hidden" warnings. I have not thought about it until now. _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public