diff --git a/llvm/lib/MC/MCContext.cpp b/llvm/lib/MC/MCContext.cpp --- a/llvm/lib/MC/MCContext.cpp +++ b/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()) diff --git a/llvm/test/MC/ELF/data-section-prefix.ll b/llvm/test/MC/ELF/data-section-prefix.ll new file mode 100644 --- /dev/null +++ b/llvm/test/MC/ELF/data-section-prefix.ll @@ -0,0 +1,7 @@ +; RUN: llc -filetype obj -o - %s + +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