[llvm] r338968 - Revert "Add a warning if someone attempts to add extra section flags to sections"
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 6 23:26:22 PDT 2018
Merged to 7.0 in r339099.
On Sun, Aug 5, 2018 at 4:23 PM, Eric Christopher via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: echristo
> Date: Sun Aug 5 07:23:37 2018
> New Revision: 338968
>
> URL: http://llvm.org/viewvc/llvm-project?rev=338968&view=rev
> Log:
> Revert "Add a warning if someone attempts to add extra section flags to sections"
>
> There are a bunch of edge cases and inconsistencies in how we're emitting sections
> cause this warning to fire and it needs more work.
>
> This reverts commit r335558.
>
> Removed:
> llvm/trunk/test/MC/ELF/extra-section-flags.s
> Modified:
> llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
>
> Modified: llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp?rev=338968&r1=338967&r2=338968&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp (original)
> +++ llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp Sun Aug 5 07:23:37 2018
> @@ -481,34 +481,6 @@ static bool hasPrefix(StringRef SectionN
> return SectionName.startswith(Prefix) || SectionName == Prefix.drop_back();
> }
>
> -// Return a set of section flags based on the section name that can then
> -// be augmented later, otherwise return 0 if we don't have any reasonable
> -// defaults.
> -static unsigned defaultSectionFlags(StringRef SectionName) {
> -
> - if (hasPrefix(SectionName, ".rodata.cst"))
> - return ELF::SHF_ALLOC | ELF::SHF_MERGE;
> -
> - if (hasPrefix(SectionName, ".rodata.") || SectionName == ".rodata1")
> - return ELF::SHF_ALLOC;
> -
> - if (SectionName == ".fini" || SectionName == ".init" ||
> - hasPrefix(SectionName, ".text."))
> - return ELF::SHF_ALLOC | ELF::SHF_EXECINSTR;
> -
> - if (hasPrefix(SectionName, ".data.") || SectionName == ".data1" ||
> - hasPrefix(SectionName, ".bss.") ||
> - hasPrefix(SectionName, ".init_array.") ||
> - hasPrefix(SectionName, ".fini_array.") ||
> - hasPrefix(SectionName, ".preinit_array."))
> - return ELF::SHF_ALLOC | ELF::SHF_WRITE;
> -
> - if (hasPrefix(SectionName, ".tdata.") || hasPrefix(SectionName, ".tbss."))
> - return ELF::SHF_ALLOC | ELF::SHF_WRITE | ELF::SHF_TLS;
> -
> - return 0;
> -}
> -
> bool ELFAsmParser::ParseSectionArguments(bool IsPush, SMLoc loc) {
> StringRef SectionName;
>
> @@ -518,13 +490,27 @@ bool ELFAsmParser::ParseSectionArguments
> StringRef TypeName;
> int64_t Size = 0;
> StringRef GroupName;
> + unsigned Flags = 0;
> const MCExpr *Subsection = nullptr;
> bool UseLastGroup = false;
> MCSymbolELF *Associated = nullptr;
> int64_t UniqueID = ~0;
>
> - // Set the default section flags first in case no others are given.
> - unsigned Flags = defaultSectionFlags(SectionName);
> + // Set the defaults first.
> + if (hasPrefix(SectionName, ".rodata.") || SectionName == ".rodata1")
> + Flags |= ELF::SHF_ALLOC;
> + else if (SectionName == ".fini" || SectionName == ".init" ||
> + hasPrefix(SectionName, ".text."))
> + Flags |= ELF::SHF_ALLOC | ELF::SHF_EXECINSTR;
> + else if (hasPrefix(SectionName, ".data.") || SectionName == ".data1" ||
> + hasPrefix(SectionName, ".bss.") ||
> + hasPrefix(SectionName, ".init_array.") ||
> + hasPrefix(SectionName, ".fini_array.") ||
> + hasPrefix(SectionName, ".preinit_array."))
> + Flags |= ELF::SHF_ALLOC | ELF::SHF_WRITE;
> + else if (hasPrefix(SectionName, ".tdata.") ||
> + hasPrefix(SectionName, ".tbss."))
> + Flags |= ELF::SHF_ALLOC | ELF::SHF_WRITE | ELF::SHF_TLS;
>
> if (getLexer().is(AsmToken::Comma)) {
> Lex();
> @@ -552,12 +538,6 @@ bool ELFAsmParser::ParseSectionArguments
>
> if (extraFlags == -1U)
> return TokError("unknown flag");
> -
> - // If we found additional section flags on a known section then give a
> - // warning.
> - if (Flags && Flags != extraFlags)
> - Warning(loc, "setting incorrect section attributes for " + SectionName);
> -
> Flags |= extraFlags;
>
> bool Mergeable = Flags & ELF::SHF_MERGE;
>
> Removed: llvm/trunk/test/MC/ELF/extra-section-flags.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/extra-section-flags.s?rev=338967&view=auto
> ==============================================================================
> --- llvm/trunk/test/MC/ELF/extra-section-flags.s (original)
> +++ llvm/trunk/test/MC/ELF/extra-section-flags.s (removed)
> @@ -1,12 +0,0 @@
> -# RUN: llvm-mc -triple x86_64-unknown-unknown -filetype=obj %s -o /dev/null 2>&1 | FileCheck %s
> -
> -.section .rodata, "ax"
> -# CHECK: warning: setting incorrect section attributes for .rodata
> -nop
> -
> -.section .rodata, "a"
> -nop
> -.section .rodata.cst4, "aM", at progbits,8
> -nop
> -# CHECK-NOT: warning:
> -
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list