mstorsjo wrote:

This change makes Clang produce warnings when building Clang itself; warnings 
looking like this:
```
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.def:352:1: 
warning: bit-field 'FPEvalMethod' is not wide enough to store all enumerators 
of preferred type 'FPEvalMethodKind' [-Wpreferred-type-bitfield-enum-conversion]
  352 | BENIGN_ENUM_LANGOPT(FPEvalMethod, FPEvalMethodKind, 2, 
FEM_UnsetOnCommandLine, "FP type used for floating point arithmetic")
      | ^    
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.def:67:6: 
note: expanded from macro 'BENIGN_ENUM_LANGOPT'
   67 |      COMPATIBLE_ENUM_LANGOPT(Name, Type, Bits, Default, Description)
      |      ^ 
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.def:62:6: 
note: expanded from macro 'COMPATIBLE_ENUM_LANGOPT'
   62 |      ENUM_LANGOPT(Name, Type, Bits, Default, Description)
      |      ^
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.h:646:37: 
note: expanded from macro 'ENUM_LANGOPT'
  646 |   void set##Name(Type Value) { Name = static_cast<unsigned>(Value); }
      |                                     ^
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.def:352:53:
 note: widen this field to 3 bits to store all values of 'FPEvalMethodKind'
  352 | BENIGN_ENUM_LANGOPT(FPEvalMethod, FPEvalMethodKind, 2, 
FEM_UnsetOnCommandLine, "FP type used for floating point arithmetic")
      |                                                     ^
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.def:352:1: 
note: preferred type for bit-field 'FPEvalMethodKind' specified here
  352 | BENIGN_ENUM_LANGOPT(FPEvalMethod, FPEvalMethodKind, 2, 
FEM_UnsetOnCommandLine, "FP type used for floating point arithmetic")
      | ^
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.def:67:6: 
note: expanded from macro 'BENIGN_ENUM_LANGOPT'
   67 |      COMPATIBLE_ENUM_LANGOPT(Name, Type, Bits, Default, Description)
      |      ^
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.def:62:6: 
note: expanded from macro 'COMPATIBLE_ENUM_LANGOPT'
   62 |      ENUM_LANGOPT(Name, Type, Bits, Default, Description)
      |      ^
/home/martin/code/llvm-project/clang/include/clang/Basic/LangOptions.h:493:3: 
note: expanded from macro 'ENUM_LANGOPT'
  493 |   LLVM_PREFERRED_TYPE(Type) \
      |   ^
/home/martin/code/llvm-project/llvm/include/llvm/Support/Compiler.h:687:47: 
note: expanded from macro 'LLVM_PREFERRED_TYPE'
  687 | #define LLVM_PREFERRED_TYPE(T) __attribute__((preferred_type(T)))
      |                                               ^
```

I've seen such warnings when building Clang for x86_64 linux, aarch64 linux and 
aarch64 mingw at least.

https://github.com/llvm/llvm-project/pull/116785
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to