[PATCH] D123435: [lld-macho] Initial support for EH Frames
David Spickett via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 8 03:34:04 PDT 2022
DavidSpickett added inline comments.
================
Comment at: lld/test/MachO/eh-frame.s:57
+# CHECK: Second level indices:
+# CHECK: Second level index[0]:
+# CHECK: [0]: function offset=0x[[#%.8x,F - BASE]], encoding[{{.*}}]=0x52{{.*}}
----------------
DavidSpickett wrote:
> DavidSpickett wrote:
> > Hi! This is very late report but as you'll see I don't think your patch is wrong, perhaps llvm-objdump is doing strange things.
> >
> > This test is failing on our 32 bit armv8 bot: https://lab.llvm.org/buildbot/#/builders/178/builds/2463
> >
> > When I run the first objdump command from my AArch64 build I get:
> > ```
> > < [0]: function offset=0x00000508, encoding[1]=0x52010000
> > < [1]: function offset=0x0000050c, encoding[0]=0x00000000
> > < [2]: function offset=0x00000510, encoding[3]=0x14000020
> > < [3]: function offset=0x00000514, encoding[2]=0x24000068
> > < [4]: function offset=0x00000518, encoding[0]=0x00000000
> > ```
> > When I do the same from a 32 bit Arm build I get:
> > ```
> > > [0]: function offset=0x00000508, encoding=0x52010000
> > > [1]: function offset=0x0000050c, encoding=0x00000000
> > > [2]: function offset=0x00000510, encoding=0x14000020
> > > [3]: function offset=0x00000514, encoding=0x24000068
> > > [4]: function offset=0x00000518, encoding=0x00000000
> > ```
> >
> > The missing `[ ]` after encoding is what causes lit to fail to match.
> >
> > Now it looks to me like the `[0]` after encoding is actually a bug on 64 bit but I'm totally guessing here. Just going by the seemingly random order of the numbering.
> >
> > Do you have any idea if those are actually expected to be there?
> (I see the same `[ ]` checked for in `lld/test/MachO/compact-unwind-stack-ind.s`, in the same `Second level index[0]` section)
As usual as soon as I write it out I see what it means. The number is the encoding number that's why the two 0x0..0 are labelled with [0]. I see there are 2 functions over in objdump one for compressed (which has these []) and regular, I'll investigate those for any 32 bit strangeness.
So your patch is fine sorry for the noise!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D123435/new/
https://reviews.llvm.org/D123435
More information about the llvm-commits
mailing list