Sparse 0.4.2 released

From Sparse Wiki
Jump to: navigation, search

I have tagged and released the sparse version 0.4.2 at http://ftp.be.debian.org/pub/software/devel/sparse/dist/ with sha1sum a2adef3f78c7409e8c0bb80941f473d775afcac4

As previously discussed on the sparse mailing list, I am the new maintainer of the sparse project. This is my first release for sparse. Thanks Josh Triplett for the previous maintenance of the project.

I also created a new sparse wiki, it will replace the current sparse home page. https://sparse.wiki.kernel.org/

A lot of bug fixes and enhancements have gone into this release. Special thanks to Al Viro for overhauling the parser. Now sparse has better ctype and attribute handling. The detailed changes follow.

  Al Viro (39):
       saner warnings for restricted types
       fix show_typename()
       catch !x & y brainos
       fun with declarations and definitions
       Fix type_info_expression()
       fun with declarations and definitions
       Fix handling of ident-less declarations
       Separate parsing of identifier-list (in K&R-style declarations)
       More nested declarator fixes
       Fix attribute/asm handling
       more direct_declarator() sanitizing
       Warn about non-empty identifier list outside of definition
       Apply attributes after ( to the right place
       Leave applying attributes until we know whether it's a nested declarator
       Don't mess with passing symbol to declarator/direct_declarator
       Fix braino in which_kind()
       Sanitize direct_declarator logics
       Separating ctype and parser state, part 1
       Propagate decl_state to declaration_specifiers()
       Fix regression created by commit af30c6df74f01db10fa78ac0cbdb5c3c40b5c73f
       Take the rest of storage class keywords to parse.c
       Fix handling of typedefs with several declarators
       preparations to ->declarator() cleanup - separate typedef handling
       Take the rest of specifiers to parse.c
       Saner type for __builtin_va_list
       Rewrite and fix specifiers handling
       Have ->declarator() act directly on ctype being affected
       Clean up and split declaration_specifiers()
       Pass decl_state down to ->declarator() and handle_attributes()
       Pass decl_state down to ->attribute()
       Restore __attribute__((mode)) handling
       Fix enumeration constants' scope beginning
       Fix declaration_specifiers() handling of typedef name shadowed by NS_SYMBOL
       Fix __label__ handling
       Simplify get_number_value() and ctype_integer()
       Don't mix storage class bits with ctype->modifiers while parsing type
       Sanitize pointer()
       Segfault at evaluate.c:341
       warn directive in argument list
  
  Alberto Bertogli (1):
       Support the __thread storage class
  
  Alexander Shishkin (1):
       don't call sparse when called to generate dependencies
  
  Alexey Zaytsev (16):
       Remove symbol.id_list
       Replace the -specs cgcc option with -target
       Make show_symbol newline-consistent
       Handle a terminal -o option properly.
       Looks more evident this way.
       Mark handle_switch as static and don't export it from lib.h
       Handle missing argument to -D.
       Gdb macros to get a better look at some sparse data structures.
       A slightly edited irc discussion with Josh Triplett.
       Warning should be enough for an unhandled transparent union
       Set gcc include path at runtime.
       Let cgcc pass -gcc-base-dir to sparse.
       Document -gcc-base-dir in sparse.1
       Rename dirafter to idirafter.
       Let void have sizeof 1
       Also warn about sizeof(function)
  
  Blue Swirl (6):
       Sparc64 (Sparc V9, LP64) support
       OpenBSD support
       Ignore attribute __bounded__, used by OpenBSD headers.
       Add c{l,t}z{,l,ll}, ffsl{,l}, popcountll and floating point comparison builtins.
       Add support for TImode type (__int128_t)
       Define __LP64__ for x86_64 unless in 32 bit mode
  
  Christopher Li (11):
       Evaluate iterator symbols
       Remove pre_buffer
       Add enum member list to the parent
       Teach classify_type to handle typeof
       Warn about explicit usage of sizeof(void)
       Makefile automatic header dependency
       Clean up Makefile long lines
       Update the validation check for ftabstop=
       Add validation for restrict and attribute warning
       move extern inline function to file scope
       Sparse 0.4.2
  
  David Given (2):
       Unhardcode byte size being 8 bits.
       Add type information to struct instruction.
  
  Geoff Johnstone (4):
       Add support for GCC's -std=... and -ansi command line options.
       Add builtin functions for use with __FORTIFY_SOURCE
       Fix type mismatches with incomplete types
       Add -Wno-declaration-after-statement
  
  Hannes Eder (4):
       Add -ftabstop=WIDTH
       refactor handle_switch_f
       test-suite: be more verbose on 'unhandled' and 'known to fail' tests
       test-suite: integrate unhandled proprocessor tests
  
  Johannes Berg (8):
       cgcc: handle ppc arch
       make sparse keep its promise about context tracking
       sparse test suite: add test mixing __context__ and __attribute__((context(...)))
       sparse: simple conditional context tracking
       inlined call bugfix & test
       improve -Wcontext code and messages
       fix bug in context tracking code
       Revert the context tracking code
  
  Josh Triplett (2):
       Add test case for new warning about !x & y
       Expand "dubious !x & y" handling to other combinations of !, &, and |.
  
  Kamil Dudka (4):
       compile-i386: do not generate an infinite loop
       linearize.h: sanitize header
       unssa: track uses when replacing a phi node
       make sparse headers self-compilable...
  
  Linus Torvalds (5):
       Fix cast instruction generation
       Simplify (and warn about) right shifts that result in zero
       Allow array declarators to have 'restrict' in them
       Turn off '-Wtransparent-union' by default
       Avoid "attribute 'warning': unknown attribute" warning
  
  Martin Nagy (3):
       .gitignore: Ignore dependencies and Vim swap files
       Add missing checks for Waddress-space
       Print an error if typeof() lacks an argument
  
  Pavel Roskin (1):
       Ignore "cold" and "hot" attributes, which appeared in gcc 4.3
  
  Pekka Enberg (1):
       sparse: Add GCC pre-defined macros for user-space
  
  Ramsay Jones (1):
       Makefile: suppress error message from pkg-config
  
  Reinhard Tartler (1):
       show_token: handle TOKEN_UNTAINT and TOKEN_ARG_COUNT types
  
  Samuel Bronson (1):
       Have Makefile import local.mk if it exists.
  
  Thomas Schmid (1):
       Fix implicit cast to float
  
  Vegard Nossum (2):
       Fix use of invalid file descriptor
       Set *tree to NULL on error

-- Chris Li

Personal tools