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
