When trying to load the 32 bytes of memory that follow a high offset (say 0x12345678), the RETURN and MLOAD opcodes give an out of gas error. Why is that ?
Example
PUSH1 0x20
PUSH4 0x12345678
RETURN
I would expect the result to be 0x0000...00 since the memory isn't initialized there but it appears that another operation is ran, which costs gas.
What exactly is going on here ?