Every remaining warning in the first green aarch64 build (job 2111537),
each verified per-TU silent after the fix, none changing behavior:
- sign-compare (14 sites): FileSystem read/write result checks compare
in size_t after the positive-size guard; CDVD NVRAM bounds in int;
Patch loops index cast at the comparison; GSLocalMemory tw*th in u32;
MTGS ring positions keep the atomic loads' int instead of widening;
R5900/R3000A cycle checks cast the small event operand to the signed
side, preserving the deliberate wraparound-delta semantics rather than
widening the delta and destroying them.
- fallthrough (4): annotated at Hw.cpp TAG_END, Interpreter GAME_LOADING,
PAD config exit ("on purpose (but I don't know why)" -- annotated, not
explained), GSHwHack bloom state machine.
- enum/non-enum conditionals (4): the non-enum arm gets the enum's
integer type at GSRendererHW/GSTextureCache PSMCT24 selection,
GSDeviceVK dirty flags, VKShaderCache debug messages.
- unused variables: main.cpp's retro_vfs_interface_info was dead since
the hybrid-VFS rework -- deleted; vtlb guest_addr and MultiISA q_div
move inside the non-arm64 arm that consumes them; GSDeviceSW's
x_is_identity is consumed only by the SIMD fast path and is marked.
- CsoFileReader initializes in declaration order; TextureDecompress
value-initializes the 16 fallback pixels instead of memset on a class;
main.cpp loses a nested /* that made a comment swallow its neighbor.
- vendored, fixed at source with comments: cpuinfo's Raspberry Pi fixup
declared a 64-byte static bound over the 9-byte revision buffer every
caller actually passes (api.h already knew the right bound);
clog's stderr writes consume the warn_unused_result value ((void)
does not silence glibc's attribute); vk_mem_alloc's assert-only and
debug-gated locals are marked, and the VMA_DEBUG_MARGIN dead branches
move to the preprocessor where -Wtype-limits cannot see them.
Full lean build links and boots; emitter gates 35/35; the byte suites
covering the one emitter-adjacent change are green in the previous
commit.
Three exported helpers in common/ have no callers anywhere in the tree:
- StringUtil::toUpper
- StringUtil::UTF8StringToWideString (both overloads, _WIN32 only)
- FileSystem::RenamePath (Win32 and POSIX implementations)
Drop their declarations and definitions. toLower, WideStringToUTF8String
and DeleteDirectory live immediately adjacent to the removed code and are
still in use, so the surrounding _WIN32 guards and the rename()/MoveFileEx
neighbours are left intact.