Index: llvm/lib/MC/MCContext.cpp =================================================================== --- llvm/lib/MC/MCContext.cpp +++ llvm/lib/MC/MCContext.cpp @@ -577,8 +577,10 @@ .Case(".data", SectionKind::getData()) .Case(".data1", SectionKind::getData()) .Case(".data.rel.ro", SectionKind::getReadOnlyWithRel()) + .StartsWith(".data.", SectionKind::getData()) .Case(".rodata", SectionKind::getReadOnly()) .Case(".rodata1", SectionKind::getReadOnly()) + .StartsWith(".rodata.", SectionKind::getReadOnly()) .Case(".tbss", SectionKind::getThreadBSS()) .StartsWith(".tbss.", SectionKind::getThreadData()) .StartsWith(".gnu.linkonce.tb.", SectionKind::getThreadData()) Index: llvm/test/MC/ELF/data-section-prefix.ll =================================================================== --- /dev/null +++ llvm/test/MC/ELF/data-section-prefix.ll @@ -0,0 +1,25 @@ +; RUN: llc -filetype obj -o - %s | llvm-readobj --sections - | FileCheck --check-prefix="SECTIONS" %s +; +; SECTIONS: Name: .data.A +; SECTIONS-NEXT: Type: SHT_PROGBITS (0x1) +; SECTIONS-NEXT: Flags [ (0x3) +; SECTIONS-NEXT: SHF_ALLOC (0x2) +; SECTIONS-NEXT: SHF_WRITE (0x1) +; SECTIONS-NEXT: ] +; +; SECTIONS: Name: .rodata.A +; SECTIONS-NEXT: Type: SHT_PROGBITS (0x1) +; SECTIONS-NEXT: Flags [ (0x3) +; SECTIONS-NEXT: SHF_ALLOC (0x2) +; SECTIONS-NEXT: SHF_WRITE (0x1) +; SECTIONS-NEXT: ] + + +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" +target triple = "bpf" + +@glock = dso_local local_unnamed_addr global i32 0, section ".data.A", align 8 +@ghead = dso_local local_unnamed_addr global i32 0, section ".data.A", align 8 + +@glock2 = dso_local local_unnamed_addr global i32 0, section ".rodata.A", align 8 +@ghead2 = dso_local local_unnamed_addr global i32 0, section ".rodata.A", align 8