Created attachment 141627 [details]
The very simple attached test fails. GDB sure thinks 0x8000000000000000ll - 0x8000000000000001ll is -1ll. :(
It seems the problem is that strtoll clamps to INT64_MAX. This is very frustrating because strtol does not clamp. It produces the raw bit pattern.
When I send out the test cases where I actually encountered this problem, I will send out a fix to tests/shaders/parser_utils.c.