• Linus Torvalds's avatar
    Merge tag 'compiler-attributes-for-linus-4.20-rc1' of https://github.com/ojeda/linux · e468f5c0
    Linus Torvalds authored
    Pull compiler attribute updates from Miguel Ojeda:
     "This is an effort to disentangle the include/linux/compiler*.h headers
      and bring them up to date.
      The main idea behind the series is to use feature checking macros
      (i.e. __has_attribute) instead of compiler version checks (e.g.
      GCC_VERSION), which are compiler-agnostic (so they can be shared,
      reducing the size of compiler-specific headers) and version-agnostic.
      Other related improvements have been performed in the headers as well,
      which on top of the use of __has_attribute it has amounted to a
      significant simplification of these headers (e.g. GCC_VERSION is now
      only guarding a few non-attribute macros).
      This series should also help the efforts to support compiling the
      kernel with clang and icc. A fair amount of documentation and comments
      have also been added, clarified or removed; and the headers are now
      more readable, which should help kernel developers in general.
      The series was triggered due to the move to gcc >= 4.6. In turn, this
      series has also triggered Sparse to gain the ability to recognize
      __has_attribute on its own.
      Finally, the __nonstring variable attribute series has been also
      applied on top; plus two related patches from Nick Desaulniers for
      unreachable() that came a bit afterwards"
    * tag 'compiler-attributes-for-linus-4.20-rc1' of https://github.com/ojeda/linux:
      compiler-gcc: remove comment about gcc 4.5 from unreachable()
      compiler.h: update definition of unreachable()
      Compiler Attributes: ext4: remove local __nonstring definition
      Compiler Attributes: auxdisplay: panel: use __nonstring
      Compiler Attributes: enable -Wstringop-truncation on W=1 (gcc >= 8)
      Compiler Attributes: add support for __nonstring (gcc >= 8)
      Compiler Attributes: add MAINTAINERS entry
      Compiler Attributes: add Doc/process/programming-language.rst
      Compiler Attributes: remove uses of __attribute__ from compiler.h
      Compiler Attributes: KENTRY used twice the "used" attribute
      Compiler Attributes: use feature checks instead of version checks
      Compiler Attributes: add missing SPDX ID in compiler_types.h
      Compiler Attributes: remove unneeded sparse (__CHECKER__) tests
      Compiler Attributes: homogenize __must_be_array
      Compiler Attributes: remove unneeded tests
      Compiler Attributes: always use the extra-underscores syntax
      Compiler Attributes: remove unused attributes