v0.5.2 (2018-04-30)

The latest release of sparse have been pushed to the official repository. It’s a smaller release than the previous one but it contains some important changes to not be flooded by unimportant warnings while compiling the kernel.

The most notable changes are:

  • better tracking and handling of expression constness

  • fix bug with variadic macros

  • less warnings on unknown attributes (none by default now)

  • teach sparse about __builtin_{isinf_sign,isfinite,isnan}

  • various update to the documentation

  • do selfcheck with the locally built sparse

  • some fixes or improvements for build (armhf, GNU/kfreebsd, …)

  • also evaluate files included via -include

Many thanks to everyone involved.

Luc Van Oostenryck

Al Viro (1):
  • Sparse preprocessing bug with zero-arg variadic macros

Christopher Li (8):
  • gcc attr: add nonstring warn_if_not_aligned

  • Makefile: provide CFLAGS for command line override.

  • Give the constant pseudo value a size

  • sparse-llvm: use pseudo->size to select llvm integer type

  • Update gcc attribute list

  • Fix crash cause by previous pseudo size change

Jacob Keller (1):
  • sparse: document that -Wbitwise is default

Logan Gunthorpe (1):
  • add __builtin functions for isinf_sign, isfinite and isnan

Luc Van Oostenryck (13):
  • constexpr: rename handle_simple_initializer() to handle_initializer()

  • constexpr: collect storage modifiers of initializers

  • return an error if too few args

  • give default return type in evaluate_call()

  • constexpr: flag __builtin_bswap() as constexpr

  • build: disable sparse-llvm on non-x86

  • fix cgcc ELF version for ppc64/pcc64le

  • fix: missing evaluate with ‘-include’ : add testcase

  • fix: missing evaluate with ‘-include’

  • Revert “Give the constant pseudo value a size”

  • By default disable the warning flag ‘-Wunknown-attribute’

  • bump up version to 0.5.2-RC1

  • Sparse v0.5.2

Martin Kepplinger (2):
  • compile-i386.c: fix a memory leak in sort_array()

  • compile-i386: make use of expression_list_size()

Nicolai Stange (20):
  • constexpr: introduce additional expression constness tracking flags

  • constexpr: init flags at expression allocation

  • constexpr: examine constness of casts at evaluation only

  • constexpr: examine constness of binops and alike at evaluation only

  • constexpr: examine constness of preops at evaluation only

  • constexpr: examine constness of conditionals at evaluation only

  • constexpr: add support for tagging arithmetic constant expressions

  • constexpr: add support for tagging address constants

  • constexpr: check static storage duration objects’ intializers’ constness

  • constexpr: recognize static objects as address constants

  • constexpr: recognize address constants created through casts

  • constexpr: recognize address constants created through pointer arithmetic

  • constexpr: recognize members of static compound objects as address constants

  • constexpr: recognize string literals as address constants

  • constexpr: recognize references to labels as address constants

  • constexpr: examine constness of __builtin_offsetof at evaluation only

  • constexpr: flag builtins constant_p, safe_p and warning as constexprs

  • constexpr: relax some constant expression rules for pointer expressions

  • constexpr: support compound literals as address constants

  • constexpr: treat comparisons between types as integer constexpr

Ramsay Jones (1):
  • Makefile: use locally built sparse in the selfcheck target

Randy Dunlap (5):
  • sparse: minor manpage corrections

  • Documentation: make data-structures.txt easier to read

  • Documentation: editing fixes in test-suite

  • test-suite: handle format with filename.c not existing

  • sparse: ignore indirect_branch attribute

Uwe Kleine-König (4):
  • build: remove version.h in clean target

  • cgcc: teach cgcc about GNU/kFreeBSD

  • compile-i386: Use SPARSE_VERSION instead of __DATE__

  • cgcc: provide __ARM_PCS_VFP for armhf