All three of these architectures fail to handle this special case, and
will cause the corresponding setjmp/_setjmp to return 0 rather than 1.
Fix this and add regression tests (also committed upstream).
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
lib/libc/mips/gen/setjmp.S | ||
---|---|---|
224 ↗ | (On Diff #86107) | This file is full of sadness wrt delay slots; they're not exposed here (despite being exposed in _setjmp.S!), but you would be forgiven for thinking otherwise when looking at most (but not all) of the existing branches... |
Comment Actions
Interesting question with an interesting answer:
- amd64 - Hard-coded return value of 1
- arm - Hard-coded return value of 1
- arm64 - Returns argument without handling 0 properly
- i386 - Hard-coded return value of 1
- mips - Hard-coded return value of 1
- powerpc - Hard-coded return value of 1
- riscv - Returns argument without handling 0 properly
So every architecture is wrong. Gah.