https://github.com/jh7370 approved this pull request. LGTM, with nits. I asked in the Phabricator review whether GNU allows negative offsets. If it does, that functionality can be added in a follow-up patch. https://github.com/llvm/llvm-project/pull/75067