On 27/11/2019 23:36, Luc Van Oostenryck wrote: [snip] >> The main difference, which is new, is the spelling of the 'type names'. >> e.g. __CHAR16_TYPE__ is given as 'short unsigned int' by gcc but >> 'unsigned short' by sparse. The following table shows the 'type name' >> differences: >> >> CHAR16_TYPE short unsigned int => unsigned short >> INT16_TYPE short int => short >> INT64_TYPE long int => long >> INTMAX_TYPE long int => long >> INTPTR_TYPE long int => long >> PTRDIFF_TYPE long int => long >> SIZE_TYPE long unsigned int => unsigned long >> UINT16_TYPE short unsigned int => unsigned short >> UINT64_TYPE long unsigned int => unsigned long >> UINTMAX_TYPE long unsigned int => unsigned long >> UINTPTR_TYPE long unsigned int => unsigned long > Just FYI, I happened to be on my 32-bit Linux installation tonight, so I did a quick test of current sparse (of course) and found it to be very similar to 64-bit Linux. [passes it's own tests and run over git source with no issue]. There were some differences, of course, mainly the types that appear in the above table are slightly different (but in the same way/pattern as above), thus: INT64_TYPE long long int => long long INTMAX_TYPE long long int => long long UINT64_TYPE long long unsigned int => unsigned long long UINTMAX_TYPE long long unsigned int => unsigned long long WCHAR_TYPE long int => long The following <TYPE-WIDTH> macros were output by sparse, but not by gcc: __INTMAX_WIDTH__ __INTPTR_WIDTH__ __INT_WIDTH__ __LONG_WIDTH__ __PTRDIFF_WIDTH__ __SCHAR_WIDTH__ __SHRT_WIDTH__ __SIZE_WIDTH__ __WCHAR_WIDTH__ __WINT_WIDTH__ ... but I think this has more to do with the version of gcc on that system (Linux Mint 18.3, based on Ubuntu 16.04), which was version 5.4.0. Some of the missing macros included: i386 __i686 __i686__ __pentiumpro __pentiumpro__ Again Just FYI. ATB, Ramsay Jones