forked from OSchip/llvm-project
Check that line table entries don't spill over between sections even if they're empty at the end of a section
llvm-svn: 297922
This commit is contained in:
parent
618d3429f2
commit
6c5bbae7b3
|
@ -203,6 +203,7 @@ bool MCObjectStreamer::changeSectionImpl(MCSection *Section,
|
||||||
const MCExpr *Subsection) {
|
const MCExpr *Subsection) {
|
||||||
assert(Section && "Cannot switch to a null section!");
|
assert(Section && "Cannot switch to a null section!");
|
||||||
flushPendingLabels(nullptr);
|
flushPendingLabels(nullptr);
|
||||||
|
getContext().clearDwarfLocSeen();
|
||||||
|
|
||||||
bool Created = getAssembler().registerSection(*Section);
|
bool Created = getAssembler().registerSection(*Section);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
// RUN: llvm-mc -triple x86_64-unknown-unknown -filetype=obj %s | llvm-objdump -r - | FileCheck %s
|
||||||
|
// CHECK-NOT: RELOCATION RECORDS
|
||||||
|
|
||||||
|
// ensure that a .loc directive at the end of a section doesn't bleed into the
|
||||||
|
// following section previously this would produce a relocation for
|
||||||
|
// .other_section in the line table. But it should actually produce no line
|
||||||
|
// table entries at all.
|
||||||
|
.text
|
||||||
|
.file 1 "fail.cpp"
|
||||||
|
.loc 1 7 3 prologue_end # fail.cpp:7:3
|
||||||
|
# addss %xmm0, %xmm1
|
||||||
|
|
||||||
|
.section .other_section,"",@progbits
|
||||||
|
.long 46 # Length of Unit
|
||||||
|
|
Loading…
Reference in New Issue