Index: src/IceELFObjectWriter.cpp |
diff --git a/src/IceELFObjectWriter.cpp b/src/IceELFObjectWriter.cpp |
index 202ab0e208d65bea7abd5ed1ad9bfe8729870411..2ea97d76bb4f6ebece56926e7b2ae7191c9f2345 100644 |
--- a/src/IceELFObjectWriter.cpp |
+++ b/src/IceELFObjectWriter.cpp |
@@ -115,7 +115,7 @@ ELFObjectWriter::createRelocationSection(const ELFSection *RelatedSection) { |
const Elf64_Xword ShEntSize = ELF64 ? sizeof(Elf64_Rela) : sizeof(Elf32_Rel); |
static_assert(sizeof(Elf64_Rela) == 24 && sizeof(Elf32_Rel) == 8, |
"Elf_Rel/Rela sizes cannot be derived from sizeof"); |
- const Elf64_Xword ShFlags = 0; |
+ constexpr Elf64_Xword ShFlags = 0; |
ELFRelocationSection *RelSection = createSection<ELFRelocationSection>( |
RelSectionName, ShType, ShFlags, ShAlign, ShEntSize); |
RelSection->setRelatedSection(RelatedSection); |
@@ -218,7 +218,7 @@ void ELFObjectWriter::writeFunctionCode(const IceString &FuncName, |
IceString SectionName = ".text"; |
if (FunctionSections) |
SectionName += "." + FuncName; |
- const Elf64_Xword ShFlags = SHF_ALLOC | SHF_EXECINSTR; |
+ constexpr Elf64_Xword ShFlags = SHF_ALLOC | SHF_EXECINSTR; |
const Elf64_Xword ShAlign = 1 << Asm->getBundleAlignLog2Bytes(); |
Section = createSection<ELFTextSection>(SectionName, SHT_PROGBITS, ShFlags, |
ShAlign, 0); |
@@ -322,12 +322,12 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
Elf64_Xword Align = Var->getAlignment(); |
ShAddralign = std::max(ShAddralign, Align); |
} |
- const Elf64_Xword ShEntsize = 0; // non-uniform data element size. |
+ constexpr Elf64_Xword ShEntsize = 0; // non-uniform data element size. |
// Lift this out, so it can be re-used if we do fdata-sections? |
switch (ST) { |
case ROData: { |
const IceString SectionName = MangleSectionName(".rodata", SectionSuffix); |
- const Elf64_Xword ShFlags = SHF_ALLOC; |
+ constexpr Elf64_Xword ShFlags = SHF_ALLOC; |
Section = createSection<ELFDataSection>(SectionName, SHT_PROGBITS, ShFlags, |
ShAddralign, ShEntsize); |
Section->setFileOffset(alignFileOffset(ShAddralign)); |
@@ -338,7 +338,7 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
} |
case Data: { |
const IceString SectionName = MangleSectionName(".data", SectionSuffix); |
- const Elf64_Xword ShFlags = SHF_ALLOC | SHF_WRITE; |
+ constexpr Elf64_Xword ShFlags = SHF_ALLOC | SHF_WRITE; |
Section = createSection<ELFDataSection>(SectionName, SHT_PROGBITS, ShFlags, |
ShAddralign, ShEntsize); |
Section->setFileOffset(alignFileOffset(ShAddralign)); |
@@ -349,7 +349,7 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
} |
case BSS: { |
const IceString SectionName = MangleSectionName(".bss", SectionSuffix); |
- const Elf64_Xword ShFlags = SHF_ALLOC | SHF_WRITE; |
+ constexpr Elf64_Xword ShFlags = SHF_ALLOC | SHF_WRITE; |
Section = createSection<ELFDataSection>(SectionName, SHT_NOBITS, ShFlags, |
ShAddralign, ShEntsize); |
Section->setFileOffset(alignFileOffset(ShAddralign)); |
@@ -361,14 +361,14 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
break; |
} |
- const uint8_t SymbolType = STT_OBJECT; |
+ constexpr uint8_t SymbolType = STT_OBJECT; |
for (VariableDeclaration *Var : Vars) { |
// If the variable declaration does not have an initializer, its symtab |
// entry will be created separately. |
if (!Var->hasInitializer()) |
continue; |
Elf64_Xword Align = Var->getAlignment(); |
- const Elf64_Xword MinAlign = 1; |
+ constexpr Elf64_Xword MinAlign = 1; |
Align = std::max(Align, MinAlign); |
Section->padToAlignment(Str, Align); |
SizeT SymbolSize = Var->getNumBytes(); |
@@ -405,7 +405,7 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
AssemblerFixup NewFixup; |
NewFixup.set_position(Section->getCurrentSize()); |
NewFixup.set_kind(RelocationKind); |
- const bool SuppressMangling = true; |
+ constexpr bool SuppressMangling = true; |
NewFixup.set_value(Ctx.getConstantSym( |
Reloc->getOffset(), Reloc->getDeclaration()->mangleName(&Ctx), |
SuppressMangling)); |
@@ -422,9 +422,9 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
void ELFObjectWriter::writeInitialELFHeader() { |
assert(!SectionNumbersAssigned); |
- const Elf64_Off DummySHOffset = 0; |
- const SizeT DummySHStrIndex = 0; |
- const SizeT DummyNumSections = 0; |
+ constexpr Elf64_Off DummySHOffset = 0; |
+ constexpr SizeT DummySHStrIndex = 0; |
+ constexpr SizeT DummyNumSections = 0; |
if (ELF64) { |
writeELFHeaderInternal<true>(DummySHOffset, DummySHStrIndex, |
DummyNumSections); |
@@ -445,7 +445,7 @@ void ELFObjectWriter::writeELFHeaderInternal(Elf64_Off SectionHeaderOffset, |
Str.write8(ELFDATA2LSB); |
Str.write8(EV_CURRENT); |
Str.write8(ELFOSABI_NONE); |
- const uint8_t ELF_ABIVersion = 0; |
+ constexpr uint8_t ELF_ABIVersion = 0; |
Str.write8(ELF_ABIVersion); |
Str.writeZeroPadding(EI_NIDENT - EI_PAD); |
@@ -495,7 +495,7 @@ template <typename ConstType> void ELFObjectWriter::writeConstantPool(Type Ty) { |
// Assume that writing WriteAmt bytes at a time allows us to avoid aligning |
// between entries. |
assert(WriteAmt % Align == 0); |
- const Elf64_Xword ShFlags = SHF_ALLOC | SHF_MERGE; |
+ constexpr Elf64_Xword ShFlags = SHF_ALLOC | SHF_MERGE; |
std::string SecBuffer; |
llvm::raw_string_ostream SecStrBuf(SecBuffer); |
SecStrBuf << ".rodata.cst" << WriteAmt; |
@@ -505,7 +505,7 @@ template <typename ConstType> void ELFObjectWriter::writeConstantPool(Type Ty) { |
SizeT OffsetInSection = 0; |
// The symbol table entry doesn't need to know the defined symbol's size |
// since this is in a section with a fixed Entry Size. |
- const SizeT SymbolSize = 0; |
+ constexpr SizeT SymbolSize = 0; |
Section->setFileOffset(alignFileOffset(Align)); |
// If the -reorder-pooled-constant option is set to true, we should shuffle |
@@ -523,7 +523,7 @@ template <typename ConstType> void ELFObjectWriter::writeConstantPool(Type Ty) { |
for (Constant *C : Pool) { |
if (!C->getShouldBePooled()) |
continue; |
- auto Const = llvm::cast<ConstType>(C); |
+ auto *Const = llvm::cast<ConstType>(C); |
std::string SymBuffer; |
llvm::raw_string_ostream SymStrBuf(SymBuffer); |
Const->emitPoolLabel(SymStrBuf, &Ctx); |
@@ -572,7 +572,7 @@ void ELFObjectWriter::writeJumpTable(const JumpTableData &JT, |
RelSection = createRelocationSection(Section); |
RelRODataSections.push_back(RelSection); |
- const uint8_t SymbolType = STT_OBJECT; |
+ constexpr uint8_t SymbolType = STT_OBJECT; |
Section->padToAlignment(Str, PointerSize); |
bool IsExternal = Ctx.getFlags().getDisableInternal(); |
const uint8_t SymbolBinding = IsExternal ? STB_GLOBAL : STB_LOCAL; |
@@ -596,7 +596,7 @@ void ELFObjectWriter::writeJumpTable(const JumpTableData &JT, |
void ELFObjectWriter::setUndefinedSyms(const ConstantList &UndefSyms) { |
for (const Constant *S : UndefSyms) { |
- const auto Sym = llvm::cast<ConstantRelocatable>(S); |
+ const auto *Sym = llvm::cast<ConstantRelocatable>(S); |
const IceString &Name = Sym->getName(); |
bool BadIntrinsic; |
const Intrinsics::FullIntrinsicInfo *Info = |