[ANNOUNCE] Sparse v0.6.3-rc1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux