[PATCH] D107533: [lld-macho] Handle encoding personalities of same names but different kinds

Jez Ng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 17 09:52:10 PDT 2021


int3 added inline comments.


================
Comment at: lld/MachO/UnwindInfoSection.cpp:200
+      }
       if (auto *undefined = dyn_cast<Undefined>(s)) {
         treatUndefinedSymbol(*undefined);
----------------
oontvoo wrote:
> int3 wrote:
> > `symtab->find` will never return an Undefined, so we can use `else if` here
> Ah, no actually - it *can* find an undefined (dylib) symbol. (The third testcase (`c.out`) covers this).
oh yeah I forgot that while we exit early if some undefined symbols remain unresolved, that exit happens after this function runs...


================
Comment at: lld/test/MachO/compact-unwind-both-local-and-dylib-personality.s:35
+# A-NEXT: address                    index name
+# A-DAG:  0x[[#%x,GXX_PERSONALITY_LOW:]] [[#]] ___gxx_personality_v0
+# A-DAG:  0x[[#%x,GXX_PERSONALITY_HI:]]  [[#]] ___gxx_personality_v0        
----------------
oontvoo wrote:
> int3 wrote:
> > suggestion: instead of `_LOW` and `_HI`, how about `GXX_PERSONALITY_DYLIB` and `GXX_PERSONALITY`?
> But it's not the _DYLIB that's picked in b.out and c.out . so calling it that is a bit mis-leading, I think.
> 
ah gotcha


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107533/new/

https://reviews.llvm.org/D107533



More information about the llvm-commits mailing list