• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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