tree 6cfcff60a01f9e10a0da59683ddcdbe6a33b30c6
parent a69487da2e746d747fc0dc19d416a7d654c8c148
author David Spickett <david.spickett@linaro.org> 1748419514 +0100
committer GitHub <noreply@github.com> 1748419514 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoNsO6CRC1aQ7uu5UhlAAAm4MQAGS41olNuNqyxJp3AyE3bKD3
 ArbjF5PHukImrs+eHpsHn4SW5dPuMHvz9J2+W2hiSIhTRUHH7JJQW4tsrD9aBYcF
 U7urgA3zfozQpx0miD7uAHf01xEvaEwkRwB6Eamz7x9+JxL1MYtdzgL9rZzt3e2i
 akdirqlq9rG6Hp6W9+M7AmdXZmLGE64gx5FHWm1FEmL7PO+PlkPXMXmiLOpkqVc6
 CUyKEph9xxJP5EGbRuxWJYX+tmEWVMmjpW7auqzyhyC+pUm4kjH3xm34lRMnN8of
 Ikl3LBum+OJQ8Bwvg6pMd6EUEB3VXznf7fHLyCDaWDAxSt6IJvBcZr9g1V4ppCeT
 78TZWACNjoXy9lVjfuulc00e4t0FkE+poXGcfs6BaxCanM7mOQlXm+c8OgzqoS9k
 /EDchZpjsIf6lgMiJQImAAT+nxTqRsJ/XhQkGQbfgY0t8JIiey5Ffvv8/DAD2Lp5
 AovUXUlNG0wgop8s/WF/hZuNECBZ2ZNmoOB2p0r7lJ5Kk/h1v+DQkEEHgl5FYglg
 Pt/c5MPtdlqgE4b/nYiGpUecArna2ztRdezNzneIFN5I4a4r6kICFQ2XyE/VJVxm
 52rxK9AA+2B4N8io7PpQQZCBKayZHu0pKXV8blDU28CwEqQebP36v7q5jy5Q/hQZ
 XhBhg6Nfwvg/rIf2uKg9
 =yzm6
 -----END PGP SIGNATURE-----
 

[llvm][llvm-objdump] Fix fatbin handling on 32-bit systems (#141620)

Which fixes a test failure seen on the bots, introduced by
https://github.com/llvm/llvm-project/pull/140286.
```
[ RUN      ] OffloadingBundleTest.checkExtractOffloadBundleFatBinary
ObjectTests: ../llvm/llvm/include/llvm/ADT/StringRef.h:618: StringRef llvm::StringRef::drop_front(size_t) const: Assertion `size() >= N && "Dropping more elements than exist"' failed.
0 0x0a24a990 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/tcwg-buildbot/worker/clang-armv8-quick/stage1/unittests/Object/./ObjectTests+0x31a990)
1 0x0a248364 llvm::sys::RunSignalHandlers() (/home/tcwg-buildbot/worker/clang-armv8-quick/stage1/unittests/Object/./ObjectTests+0x318364)
2 0x0a24b410 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
3 0xf46ed6f0 __default_rt_sa_restorer ./signal/../sysdeps/unix/sysv/linux/arm/sigrestorer.S:80:0
4 0xf46ddb06 ./csu/../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47:0
5 0xf471d292 __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
6 0xf46ec840 gsignal ./signal/../sysdeps/posix/raise.c:27:6
```
Also reported on 32-bit x86.

I think the cause is the code was casting the result of StringRef.find
into an int64_t. The failure value of find is StringRef::npos, which is
defined as:
static constexpr size_t npos = ~size_t(0);

* size_t(0) is 32 bits of 0s
* the inverse of that is 32 bits of 1s
* Cast to int64_t needs to widen this, and it will preserve the original
value in doing so, which is 0xffffffff.
* The result is 0x00000000ffffffff, which is >= 0, so we keep searching
and try to go off the end of the file.

Or put another way, this equivalent function returns true when compiled
for a 32-bit system:
```
bool fn() {
    size_t foo = ~size_t(0);
    int64_t foo64 = (int64_t)foo;
    return foo64 >= 0;
}
```

Using size_t throughout fixes the problem. Also I don't see a reason it
needs to be a signed number, given that it always searches forward from
the current offset.