Do not emit a named symbol to denote the start of the debug_frame section
authorShubham Sandeep Rastogi <srastogi22@apple.com>
Wed, 21 Jun 2023 23:47:28 +0000 (16:47 -0700)
committerShubham Sandeep Rastogi <srastogi22@apple.com>
Mon, 26 Jun 2023 18:43:07 +0000 (11:43 -0700)
commitd6576add99e5ebf936f836aa3ecdc85deb33687e
tree8f6760d71234e80ccd3fd72c5d15456461427228
parent4c37d30e22ae655394c8b3a7e292c06d393b9b44
Do not emit a named symbol to denote the start of the debug_frame section

When emitting a debug_frame section, it contains a named symbol.

> echo "void foo(void) {}" | clang -arch arm64  -ffreestanding -g -c -o \
/tmp/test.o -x c -
> nm /tmp/test.o -s __DWARF __debug_frame
0000000000000200 s ltmp1

There are no such symbols emitted in any of the other DWARF sections,
this is because when the __debug_frame section is created, it doesn't
get a `BeginSymName` and so it creates a named symbol, such as `ltmp1`
and emits it when we switch to the section in MCDwarf.cpp.

This patch fixes the above issue.

Differential Revision: https://reviews.llvm.org/D153484
llvm/lib/MC/MCObjectFileInfo.cpp
llvm/test/DebugInfo/debug_frame_symbol.ll [new file with mode: 0644]