param_key: fix container of when no struct member is referenced
[smatch.git] / Documentation / release-notes / v0.6.2.rst
blobae5e25047e2a13d78125c2f886b2ed0068d3ba1c
1 v0.6.2 (2020-06-21)
2 ===================
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.
8 * add support for GCC's __auto_type
10 * add support for _Generic
12 * fully propagate declarations downward.
13     For example, it means that code like::
15         static int foo(void);
16         int foo(void) { return 0; }
18     now behaves as expected: foo() is effectively static.
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
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
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
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
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
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
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()