[MC][ELF] Fix "enumeral and non-enumeral type in conditional expression" warning...
authorYang Fan <nullptr.cpp@gmail.com>
Wed, 10 Mar 2021 03:26:39 +0000 (11:26 +0800)
committerYang Fan <nullptr.cpp@gmail.com>
Wed, 10 Mar 2021 03:27:15 +0000 (11:27 +0800)
GCC warning:
```
/llvm-project/llvm/lib/MC/ELFObjectWriter.cpp: In member function ‘void {anonymous}::ELFWriter::writeHeader(const llvm::MCAssembler&)’:
/llvm-project/llvm/lib/MC/ELFObjectWriter.cpp:421:20: warning: enumeral and non-enumeral type in conditional expression [-Wextra]
  420 |   W.OS << char(OSABI == ELF::ELFOSABI_NONE && OWriter.seenGnuAbi()
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  421 |                    ? ELF::ELFOSABI_GNU
      |                    ^~~~~~~~~~~~~~~~~~~
  422 |                    : OSABI);
      |                    ~~~~~~~
```

llvm/lib/MC/ELFObjectWriter.cpp

index b837e6e..dd36aec 100644 (file)
@@ -418,7 +418,7 @@ void ELFWriter::writeHeader(const MCAssembler &Asm) {
   // e_ident[EI_OSABI]
   uint8_t OSABI = OWriter.TargetObjectWriter->getOSABI();
   W.OS << char(OSABI == ELF::ELFOSABI_NONE && OWriter.seenGnuAbi()
-                   ? ELF::ELFOSABI_GNU
+                   ? int(ELF::ELFOSABI_GNU)
                    : OSABI);
   // e_ident[EI_ABIVERSION]
   W.OS << char(OWriter.TargetObjectWriter->getABIVersion());