1v0.6.2 (2020-06-21) 2=================== 3 4* add a new tool: sindex - the semantic utility 5 Sindex is a simple to use cscope-like tool but understanding 6 how symbols are used and which can track struct members. 7 8* add support for GCC's __auto_type 9 10* add support for _Generic 11 12* fully propagate declarations downward. 13 For example, it means that code like:: 14 15 static int foo(void); 16 int foo(void) { return 0; } 17 18 now behaves as expected: foo() is effectively static. 19 20* multi-arch: 21 * allow a single sparse executable to be used for multiple architectures 22 * add support for -mcmodel & -f{pic,PIC,pie,PIE}, mainly for RISC-V 23 * add new option, --arch=$ARCH, to specify the target architecture 24 * move all arch-specific code into separate files (target-$ARCH.c) 25 * try to support the various floating-point ABIs on ARM 26 * fix wchar_t & wint_t for openbsd 27 * add missing predefines for PPC 28 * add missing predefines: __amd64 & __amd64__ 29 * sparc32 on SunOS/Solaris uses 128-bit long double 30 * fix wchar_t & wint_t on SunOS/Solaris 31 * teach sparse about -fshort-wchar 32 * keep cygwin specifics with i386/x86-64 specifics 33 * keep BSD & Darwin specifics with i386/x86-64 specifics 34 * fix the signedness of plain chars 35 * add support for s390 (ILP32) 36 * add predefine for __mips__ 37 * predefine "i386" if needed 38 * pre-define __unix__ and friends 39 * add necessary defined for sunos-derived systems 40 * improved detection of the native OS 41 42* warnings: 43 * improve diagnostic message about wrong redeclaration 44 * conditionally accept { 0 } without warnings 45 * add -Wexternal-function-has-definition 46 * display the bitfield name in error messages 47 * oversized bitfields are now errors 48 * add an option to suppress warning 'no newline at EOF' 49 * warn when jumping into statement expressions 50 * warn when using undefined labels 51 * warn on defined but unused labels 52 53* attributes: 54 * allows '__<attribute-name>__' for all attributes. 55 * improve handling of function attributes 56 * separate modifiers into type/declaration 57 * add support for attributes 'unused' & 'gnu_inline' 58 * simplify parsing of inline/__tls/__visible 59 * better handle function-only attributes 60 * teach sparse about gnu_inline 61 * parse enum attributes and, for now, ignore them 62 63* cgcc: 64 * use -fshort-char for Cygwin 65 * add support for riscv32 & riscv64 66 * don't define __CYGWIN32__ on 64-bit 67 * filter-out sparse-specific -msize-long & -msize-llp64 68 * use -mfloat-abi=hard for armhf 69 * define _BIG_ENDIAN when needed 70 * remove definition of _STRING_ARCH_unaligned (defined by glibc) 71 * removed unneeded predefines for integers (now defined by sparse) 72 * better multi-arch support by using --arch=$ARCH 73 74* testsuite: 75 * avoid standard includes in the tests 76 * fix testcase with non-constant initializer 77 78* IR 79 * add support for the linearization of builtins 80 * generate OP_UNREACH from __builtin_unreachable() 81 * add OP_UNREACH after calls to __noreturn functions 82 83* doc: 84 * do not use obsolete sphinx's AutodocReporter 85 * Sphinx's minimal version is now 1.7 86 * add basic doc about the type system 87 * doc is now accessible as: https://sparse.docs.kernel.org 88 * release notes (old and current ones) have been added to the doc 89 * now using the sphinx_rtd_theme instead of the classic theme 90 91* misc: 92 * add support for '-std=c17/c18' 93 * simplify testing of which version of the standard is used 94 * ensure that typeofs are evaluated before using show_typename() 95 * use a single way to expand typeofs 96 * various improvements to the 'dissect' tool 97 * simplify the parsing of type specifiers 98 * improve diagnostic messages concerning bitfields 99 * fix premature examination of dereferenced object 100 * various fixes for the expansion of constant symbols 101 * fix type compatibility of _Atomic types 102 * add support for builtin macros with argument 103 * add support for __has_feature() & __has_extension() 104 105