[all-commits] [llvm/llvm-project] ef1227: [lld-macho] Warn on method name collisions from ca...

Jez Ng via All-commits all-commits at lists.llvm.org
Tue Mar 7 14:49:57 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ef122753db7fe8e9a0b7bedd46d2f3668a780fcb
      https://github.com/llvm/llvm-project/commit/ef122753db7fe8e9a0b7bedd46d2f3668a780fcb
  Author: Jez Ng <jezng at fb.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/InputSection.cpp
    M lld/MachO/InputSection.h
    A lld/MachO/Layout.h
    M lld/MachO/ObjC.cpp
    M lld/MachO/ObjC.h
    M lld/MachO/Relocations.cpp
    M lld/MachO/Relocations.h
    M lld/MachO/UnwindInfoSection.cpp
    A lld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libobjc.tbd
    A lld/test/MachO/objc-category-conflicts.s
    M lld/test/MachO/objc-imageinfo.s

  Log Message:
  -----------
  [lld-macho] Warn on method name collisions from category definitions

This implements ld64's checks for duplicate method names in categories &
classes.

In addition, this sets us up for implementing Obj-C category merging.
This diff handles the most of the parsing work; what's left is rewriting
those category / class structures.

Numbers for chromium_framework:

             base           diff           difference (95% CI)
  sys_time   2.182 ± 0.027  2.200 ± 0.047  [  -0.2% ..   +1.8%]
  user_time  6.451 ± 0.034  6.479 ± 0.062  [  -0.0% ..   +0.9%]
  wall_time  6.841 ± 0.048  6.885 ± 0.105  [  -0.1% ..   +1.4%]
  samples    33             22

Fixes https://github.com/llvm/llvm-project/issues/54912.

Reviewed By: #lld-macho, thevinster, oontvoo

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




More information about the All-commits mailing list