// By default - all relocations in PIC mode would force symbol to be
// placed in r/w section.
- unsigned Reloc = (TM.getRelocationModel() != Reloc::Static ?
- Reloc::LocalOrGlobal : Reloc::None);
-
- if (Reloc != Reloc::None && C->ContainsRelocations(Reloc))
+ if (TM.getRelocationModel() != Reloc::Static &&
+ C->ContainsRelocations(Reloc::LocalOrGlobal))
return (C->ContainsRelocations(Reloc::Global) ?
(isConstant ?
SectionKind::DataRelRO : SectionKind::DataRel) :
// note, there is no thread-local r/o section.
Constant *C = GVar->getInitializer();
if (C->ContainsRelocations(Reloc::LocalOrGlobal)) {
- // Decide, whether it is still possible to put symbol into r/o section.
- unsigned Reloc = (TM.getRelocationModel() != Reloc::Static ?
- Reloc::LocalOrGlobal : Reloc::None);
-
- // We already did a query for 'all' relocs, thus - early exits.
- if (Reloc == Reloc::LocalOrGlobal)
+ // Decide whether it is still possible to put symbol into r/o section.
+ if (TM.getRelocationModel() != Reloc::Static)
return SectionKind::Data;
- else if (Reloc == Reloc::None)
+ else
return SectionKind::ROData;
- else {
- // Ok, target wants something funny. Honour it.
- return (C->ContainsRelocations(Reloc) ?
- SectionKind::Data : SectionKind::ROData);
- }
} else {
// Check, if initializer is a null-terminated string
if (isConstantString(C))