Merge commit db492316399a from llvm-project (by Dimitry Andric):

[clang][BFloat] Avoid redefining bfloat16_t in arm_neon.h

  As of https://reviews.llvm.org/D79708, clang-tblgen generates `arm_neon.h`,
  `arm_sve.h` and `arm_bf16.h`, and all those generated files will contain a
  typedef of `bfloat16_t`. However, `arm_neon.h` and `arm_sve.h` include
  `arm_bf16.h` immediately before their own typedef:

      #include <arm_bf16.h>
      typedef __bf16 bfloat16_t;

  With a recent version of clang (I used 16.0.1) this results in warnings:

      /usr/lib/clang/16/include/arm_neon.h:38:16: error: redefinition of typedef 'bfloat16_t' is a C11 feature [-Werror,-Wtypedef-redefinition]

  Since `arm_bf16.h` is very likely supposed to be the one true place where
  `bfloat16_t` is defined, I propose to delete the duplicate typedefs from the
  generated `arm_neon.h` and `arm_sve.h`.

  Reviewed By: sdesmalen, simonbutcher

  Differential Revision: https://reviews.llvm.org/D148822

PR:		271047
MFC after:	1 month
This commit is contained in:
Dimitry Andric 2023-04-20 21:22:59 +02:00
parent 482e0fcdf7
commit 1ac57eed95
2 changed files with 0 additions and 2 deletions

View File

@ -2353,7 +2353,6 @@ void NeonEmitter::run(raw_ostream &OS) {
OS << "#include <stdint.h>\n\n";
OS << "#include <arm_bf16.h>\n";
OS << "typedef __bf16 bfloat16_t;\n";
// Emit NEON-specific scalar typedefs.
OS << "typedef float float32_t;\n";

View File

@ -1103,7 +1103,6 @@ void SVEEmitter::createHeader(raw_ostream &OS) {
OS << "typedef __SVBFloat16_t svbfloat16_t;\n";
OS << "#include <arm_bf16.h>\n";
OS << "typedef __bf16 bfloat16_t;\n";
OS << "typedef __SVFloat32_t svfloat32_t;\n";
OS << "typedef __SVFloat64_t svfloat64_t;\n";