HomePhabricator

[MC][ARM] Don't create multiple .ARM.exidx associated to one .text
Audit Requiredd0c4277d3886

Authored by MaskRay on Feb 24 2020, 5:54 PM.

Description

[MC][ARM] Don't create multiple .ARM.exidx associated to one .text

Fixed an issue exposed by D74006.

In clang cc1as, MCContext::UseNamesOnTempLabels is true.
When parsing a .fnstart directive, FnStart gets redefined to a temporary symbol of a different name (.Ltmp0, .Ltmp1, ...).
MCContext::getELFSection() called by SwitchToEHSection() will create a different .ARM.exidx each time.

llvm-mc uses Ctx.setUseNamesOnTempLabels(false); and FnStart is unnamed.
MCContext::getELFSection() called by SwitchToEHSection() will reuse the same .ARM.exidx .

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D75095

Details

Auditors
grosbach
Committed
MaskRayFeb 25 2020, 6:18 PM
Reviewer
efriedma
Differential Revision
D75095: [MC][ARM] Don't create multiple .ARM.exidx associated to one .text
Parents
rG6fb70c872517: [Analysis] Fix -Wrange-loop-analysis after D69876
Branches
Unknown
Tags
Unknown