[all-commits] [llvm/llvm-project] d0c427: [MC][ARM] Don't create multiple .ARM.exidx associa...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Feb 25 18:18:59 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d0c4277d388628154b647a45cbc6914a1ea5a822
      https://github.com/llvm/llvm-project/commit/d0c4277d388628154b647a45cbc6914a1ea5a822
  Author: Fangrui Song <maskray at google.com>
  Date:   2020-02-25 (Tue, 25 Feb 2020)

  Changed paths:
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp

  Log Message:
  -----------
  [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




More information about the All-commits mailing list