aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Documentation/release-notes/v0.6.2.rst
blob: 3d0e4ba06967a1b8c1eaaf15dd2586c0ac0779bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
V0.6.2
======

* add a new tool: sindex - the semantic utility
    Sindex is a simple to use cscope-like tool but understanding
    how symbols are used and which can track struct members.

* add support for GCC's __auto_type

* add support for _Generic

* fully propagate declarations downward.
    For example, it means that code like:

        static int foo(void);
        int foo(void) { return 0; }

    now behaves as expected: foo() is effectively static.

* multi-arch:
    * allow a single sparse executable to be used for multiple architectures
    * add support for -mcmodel & -f{pic,PIC,pie,PIE}, mainly for RISC-V
    * add new option, --arch=$ARCH, to specify the target architecture
    * move all arch-specific code into separate files (target-$ARCH.c)
    * try to support the various floating-point ABIs on ARM
    * fix wchar_t & wint_t for openbsd
    * add missing predefines for PPC
    * add missing predfines: __amd64 & __amd64__
    * sparc32 on SunOS/Solaris uses 128-bit long double
    * fix wchar_t & wint_t on SunOS/Solaris
    * teach sparse about -fshort-wchar
    * keep cygwin specifics with i386/x86-64 specifics
    * keep BSD & Darwin specifics with i386/x86-64 specifics
    * fix the signedness of plain chars
    * add support for s390 (ILP32)
    * add predefine for __mips__
    * predefine "i386" if needed
    * pre-define __unix__ and friends
    * add necessary defined for sunos-derived systems
    * improved detection of the native OS

* warnings:
    * improve diagnostic message about wrong redeclaration
    * conditionally accept { 0 } without warnings
    * add -Wexternal-function-has-definition
    * display the bitfield name in error messages
    * oversized bitfields are now errors
    * add an option to suppress warning 'no newline at EOF'
    * warn when jumping into statement expressions
    * warn when using undefined labels
    * warn on defined but unused labels

* attributes:
    * allows '__<attribute-name>__' for all attributes.
    * improve handling of function attributes
    * separate modifiers into type/declaration
    * add support for attributes 'unused' & 'gnu_inline'
    * simplify parsing of inline/__tls/__visible
    * better handle function-only attributes
    * teach sparse about gnu_inline

* cgcc:
    * use -fshort-char for Cygwin
    * add support for riscv32 & riscv64
    * don't define __CYGWIN32__ on 64-bit
    * filter-out sparse-specific -msize-long & -msize-llp64
    * use -mfloat-abi=hard for armhf
    * define _BIG_ENDIAN when needed
    * remove definition of _STRING_ARCH_unaligned (defined by glibc)
    * removed unneeded predefines for integers (now defined by sparse)
    * better multi-arch support by using --arch=$ARCH

* testsuite:
    * avoid standard includes in the tests
    * fix testcase with non-constant initializer
    
* IR
    * add support for the linearization of builtins
    * generate OP_UNREACH from  __builtin_unreachable()
    * add OP_UNREACH after calls to __noreturn functions

* doc:
    * do not use obsolete sphinx's AutodocReporter
    * add basic doc about the type system
    * doc is now accessible as: https://sparse.docs.kernel.org

* misc:
    * add support for '-std=c17/c18'
    * simplify testing of which version of the standard is used
    * ensure that typeofs are evaluated before using show_typename()
    * use a single way to expand typeofs
    * various improvements to the 'dissect' tool
    * simplify the parsing of type specifiers
    * improve diagnostic messages concerning bitfields
    * fix premature examination of dereferenced object
    * various fixes for the expansion of constant symbols
    * fix type compatibility of _Atomic types