blob: 0ef67fc5ad6c3fca424996a7298cc5eade090fd0 (
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
99
100
|
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 exemple, 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-specifc code in separated 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
* typeof:
* ensure that typeofs are evaluated before using show_typename()
* use a single way to expand typeofs
* 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 mult-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 testng of which version of the standard is used
* 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
|