* [ANNOUNCE] Sparse v0.6.3-rc1
@ 2020-10-11 22:58 Luc Van Oostenryck
2020-10-12 18:51 ` Ramsay Jones
0 siblings, 1 reply; 3+ messages in thread
From: Luc Van Oostenryck @ 2020-10-11 22:58 UTC (permalink / raw)
To: linux-sparse
Sparse v0.6.3-rc1 is now out.
The source code can be found at its usual repository:
git://git.kernel.org/pub/scm/devel/sparse/sparse.git v0.6.3-rc1
The tarballs can be found at:
https://www.kernel.org/pub/software/devel/sparse/dist/
Many thanks to people who have contributed to the 197 patches
of this release:
Alexey Gladkov, Ilya Maximets, Uwe Kleine-König, Ramsay Jones,
Oleg Nesterov, Peter Zijlstra, Linus Torvalds, Davidson Francis,
Valentin Schneider, Herbert Xu, Ard Biesheuvel and the kernel test robot.
Release notes for v0.6.3
------------------------
Bug fixes:
* fix missing inlining of _Generic expression
* fix evaluation error with assignment of qualified arrays
* delay 'empty character constant' warning to phase 5
* simplify & fix parsing of array declarators
* accept whitespace after option -U
* teach dissect about _Generic
* reset locale after gtk_init() to workaround problems with strtold()
* fix linearization of shift-assign
* force to 0 expressions which are erroneously non-constant
* fix evaluate_ptr_add() when sizeof(offset) != sizeof(pointer)
* fix access to defining instruction in simplify_unop()
* fix evaluation of pointer to bool conversions
* fix usual conversion of integers
New features:
* add support for arch specific asm constraints
* add memory asm constraint for PPC & S390
* prepend diagnostics with source's path and include chain
* add support for h8300, microblaze, nds32, openrisc, sh & xtensa
* add support for '-march=....' and use it for riscv
* add an option to specify the OS: --os=$OS
* add predefines for OS identification
* add predefines for __INT_LEAST${N}_TYPE__ & __INT_FAST${N}_TYPE__
* document the sparse's extensions
* sindex/semind: allow indexing outside the project tree
* rename tool 'sindex' to 'semind'
* add builtin support for __sync_{bool,val}_compare_and_swap()
* add support for wide strings
* union-cast: teach sparse about union casts
* add support for a new instruction: OP_FMADD
* add various warnings for dangerous usage of flexible array members
* add builtin support for __builtin_ia32_pause()
Misc changes:
* cleanup the handling of options flags
* avoid multiple warnings when inlining undeclared calls
* small fixes for alpha, arm, nios2, ppc, sparc & x86
* add missing predefines for endianness on arm, arm64, mips
* add various missing arch-specific predefines
* add the predefines '__cdecl', ... on cygwin
* warn on empty assignments & initializations
* reorganize the keyword parsing table
* the message in _Static_assert() is now optional (C2x)
* small fixes & improvement to the [online] documentation
* allow [*] in array declarators
* do not accept comma expressions in array declarator
* simplify parsing of attributes & storage class
* bad-shift: wait dead code elimination to warn about bad shifts
* fix is_scalar_type(): fouled types are scalars too
* better support for linearization of builtins
* remove definition of removed OP_{AND,OR}_BOOL
------------------------
The full changes since v0.6.2 are:
Alexey Gladkov (3):
dissect: add support for _Generic
sindex: allow indexing outside the project tree
sindex: rename it to 'semind'
Davidson Francis (1):
test-inspect: reset locale after gtk_init()
Ilya Maximets (2):
add helpers is_struct_type() & is_union_type()
flex-array: allow arrays of unions with flexible members.
Luc Van Oostenryck (188):
gensel: remove unneeded test/uninitialized warning
teach sparse about __STDC_HOSTED__
testsuite: fix 'format help' / validate number of arguments
remove unneeded BSD & Solaris compatibility layer
options: let handle_onoff_switch() use null terminated arrays
options: move -Wsparse-all's processing out of handle_onoff_switch()
options: move on top the definition of warning type enums
options: make Wsparse_error less special
options: handle_onoff_switch() can handle any flags, not only warnings
options: move helpers up
options: alphasort the handle_switch_[a-zA_Z]()
options: avoid spaces between function name and arguments list
options: move declaration of tabstop out of "token.h"
options: add a small helper: handle_switch_finalize()
options: move option parsing in a separate file
options: keep the options sorted
cleanup: move predefines in a separate file
avoid multiple warnings when inlining undeclared calls
testsuite: add new flag '-p' to subcommand 'format'
add support for arch specific asm constraints
add memory asm constraint for PPC
add memory asm constraint for S390
sindex: avoid a warning with 'case -1:'
cleanup: move parsing helpers to parse.c
cleanup: move hexval() to utils.c
arch: add minimal support for microblaze
testsuite: add testcase for bogus linearization of >>= & /=
predefine: add testcase for multi-token predefines
predefine: fix multi-token predefine
predefine: add helper predefine_{strong,weak}()
predefine: avoid add_pre_buffer() for targets
predef: simplify add_pre_buffer()
arch: teach sparse about the '-march' option
riscv: parse '-march=....'
riscv: add the predefines for the extensions
nios2: long double is 64-bit
nios2: add non-trailing double underscore predefines
c2x: message in _Static_assert() is now optional
mips: add predefines __MIPSEL__ or __MIPSEB__ & friends
arm64: add predefine for endianness
arm: add predefine __ARMEL__ or __ARMEB__
keyword: reorganize the keyword table
keyword: reorder the keywords
keyword: use some macros to avoid duplication
x86: reorg the target file
add a testcase for assignment to const <type> (*)[]
add another testcase with const array/pointer
add testcase for missing warning for assignment to const
teach sparse about -fmax-errors
arch: add an option to specify the OS: --os=$OS
predefine: add __linux__ & __linux
predefine: no __unix__ for Darwin
x86: fixes types for NetBSD & OpenBSD
sparc: char are unsigned on Solaris
arch: add predefines for OS identification
cygwin: add the predefines '__cdecl', ...
cgcc: remove now unneeded options & defines
arm: fix int32_t & uint32_t on bare-metal.
target: keep tables sorted
h8300: add minimal support
xtensa: add minimal support
nds32: add minimal support
sh: add minimal support
openrisc: add minimal support
fix evaluation error with assignment of qualified arrays
sparc: add 'sparcv8' predefines for sparc32
alpha: has 64-bit long double & int128
ppc: add predefines __LONGDOUBLE128 & __LONG_DOUBLE_128__
arch: add predefines __INT_LEAST${N}_TYPE__
arch: add predefines __INT_FAST${N}_TYPE__
predefine: teach sparse about __SIG_ATOMIC_TYPE__
arch: allow target specific [u]intptr_t & ptrdiff_t
x86-x32: fix it by defining a separate target for it
add testcase for incorrect empty expressions
warn on empty assignments
warn on empty initializations
syntax errors in numbers are not fatal
predefine: let predefine_width() take the usual interface
prepend diagnostics with source's path and include chain
delay 'empty character constant' warning to phase 5
add position to struct stream
doc: document the sparse's extensions
doc: replace nocast-vs-bitwise document with its lore link
doc: simplify the toctree
doc: add index to the sidebar
doc: remove link "edit on github"
doc: shorter title for "submitting-patches.md"
add testcase for comma in array declarator
do not accept comma expressions in array declarator
add testcases for C99 array declarators
simplify & fix parsing of array declarators
remove now unused match_idents()
allow [*] in array declarators
generic: fix missing inlining of generic expression
show-mod: add helper to show the modifiers but without ending space
show-mod: no ending space when showing a single modifier
show-mod: no extra space when showing modifiers + ident
manpage: replace homepage to sparse.docs.kernel.org
doc: use https URLs
doc: do not display bugzilla's URL, it's too long
option: accept 'sparse -U ...'
use lookup_keyword() for qualifiers
attribute: split handle_asm_name() from handle_attributes()
attribute: fold parse_asm_declarator() into handle_asm_name()
attribute: remove argument 'keywords' from handle_attributes()
attribute: directly use attribute_specifier() to handle attributes
attribute: factorize matching of '__attribute__'
attribute: no need to lookup '__attribute__' in NS_KEYWORD
testing for SYM_KEYWORD is unneeded for lookup_keyword()
testing for sym->op is unneeded for lookup_keyword()
attribute: simplify parsing of attributes
keyword type is a bitmask and must be tested so
remove unsed field for EXPR_GENERIC
xtensa: fix configuration of endianness
dissect: use struct symbol::visited/inspected instead of ::examined/evaluated
fix stream_prev() for invalid (negative) stream
fix diagnostic source path from command line
fix build on Hurd which doesn't define PATH_MAX
shift-assign: add more testcases for bogus linearization
shift-assign: fix linearization of shift-assign
shift-assign: restrict shift count to unsigned int
bad-shift: wait dead code elimination to warn about bad shifts
add testcases for __sync_{bool,val}_compare_and_swap()
export evaluate_arguments()
add builtin support for __sync_{bool,val}_compare_and_swap()
wstring: add support for evaluation of wide string
wstring: add support for checking size in string initializer
wstring: add support for examination of string initialization
wstring: add helper is_wchar_type()
wstring: extend is_string_type() to also detect wide strings
wstring: call is_string_type() only when needed
warning: conditionalize "advancing past deep designator"
fix checking if type is void
force to 0 expressions which are erroneously non-constant
parse: rework handling of storage_class
parse: associate modifiers with their keyword
parse: let asm_modifier() use the keyword modifier
parse: improve error messages concerning storage specifiers
parse: simplify set_storage_class()
doc: use a smaller logo in the sidebar
doc: make the sidebar more compact
doc: decrease vertical spacing
doc: move down info about tarballs, after git repositories
doc: reorganize the table of content
doc: use shorter titles
doc: add links to some external doc
fix is_scalar_type(): fouled types are scalars too
union-cast: add some testcases
union-cast: extract evaluate_compound_literal()
fix typo in warning
union-cast: teach sparse about union casts
fix evaluate_ptr_add() when sizeof(offset) != sizeof(pointer)
remove unneeded predeclaration of evaluate_cast()
add helper replace_with_value()
use replace_with_value()
replace_with_{pseudo,value}() can be tail-calls
testsuite: easier testing via script & makefile
add support for a new instruction: OP_FMADD
builtin: allow linearization to fail
builtin: add declaration for __builtin_fma{,f,l}()
builtin: teach sparse to linearize __builtin_fma()
flex-array: add testcases
flex-array: factor out common part of lay_out_{struct,union}()
flex-array: do not lay out invalid struct members
flex-array: flexible array members have zero size and alignment is OK
flex-array: detect structures with a flexible array member
flex-array: warn on flexible arrays in unions
flex-array: warn if flexible array is not last
flex-array: identify structures with a flexible array member
flex-array: add helper has_flexible_array()
flex-array: warn when using sizeof() on a flexible array
flex-array: warn an arrays containing a flexible array
flex-array: warn on flexible array in nested aggregate types
fix Hurd PATH_MAX ...
testsuite: fix erroneous comment
add builtin type for wide strings
add builtin types for signed char* and short *
add builtin types for size_t*, intmax_t* & ptrdiff_t*
flex-array: remove unneeded test
remove definition of removed OP_{AND,OR}_BOOL
unop: fix access to defining instruction in simplify_unop()
build: rule for validation needs to be FORCEd
fix evaluation of pointer to bool conversions
fix usual conversion of integers
flex-array: fix location for nesting of flexible members
builtin: teach sparse about __builtin_ia32_pause()
doc: add release notes for incoming v0.6.3
Sparse v0.6.3-rc1
Oleg Nesterov (1):
dissect: support _Generic() a bit more
Ramsay Jones (1):
bug-assign-op0.c: fix test on 32-bit builds
Uwe Kleine-König (1):
sindex.1: Use ' for a plain quote char
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [ANNOUNCE] Sparse v0.6.3-rc1
2020-10-11 22:58 [ANNOUNCE] Sparse v0.6.3-rc1 Luc Van Oostenryck
@ 2020-10-12 18:51 ` Ramsay Jones
2020-10-12 22:32 ` Luc Van Oostenryck
0 siblings, 1 reply; 3+ messages in thread
From: Ramsay Jones @ 2020-10-12 18:51 UTC (permalink / raw)
To: Luc Van Oostenryck, linux-sparse
On 11/10/2020 23:58, Luc Van Oostenryck wrote:
> Sparse v0.6.3-rc1 is now out.
>
> The source code can be found at its usual repository:
> git://git.kernel.org/pub/scm/devel/sparse/sparse.git v0.6.3-rc1
Tested as usual (on 32-bit Linux (LM19.3), 64-bit Linux (LM20) and
64-bit cygwin), no issues found! ;-D
Thanks!
ATB,
Ramsay Jones
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [ANNOUNCE] Sparse v0.6.3-rc1
2020-10-12 18:51 ` Ramsay Jones
@ 2020-10-12 22:32 ` Luc Van Oostenryck
0 siblings, 0 replies; 3+ messages in thread
From: Luc Van Oostenryck @ 2020-10-12 22:32 UTC (permalink / raw)
To: Ramsay Jones; +Cc: linux-sparse
On Mon, Oct 12, 2020 at 07:51:59PM +0100, Ramsay Jones wrote:
> On 11/10/2020 23:58, Luc Van Oostenryck wrote:
> > Sparse v0.6.3-rc1 is now out.
> >
> > The source code can be found at its usual repository:
> > git://git.kernel.org/pub/scm/devel/sparse/sparse.git v0.6.3-rc1
>
> Tested as usual (on 32-bit Linux (LM19.3), 64-bit Linux (LM20) and
> 64-bit cygwin), no issues found! ;-D
Thank you very much!
-- Luc
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-10-12 22:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-11 22:58 [ANNOUNCE] Sparse v0.6.3-rc1 Luc Van Oostenryck
2020-10-12 18:51 ` Ramsay Jones
2020-10-12 22:32 ` Luc Van Oostenryck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).