v0.6.3 (2020-10-17)

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

  • fix null pointer deref on return expression with invalid type

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