contract D {
    function f() public pure returns (uint256) {
        return 7;
    }
}


contract C {
    function diff() public pure returns (uint256 remainder) {
        bytes memory a = type(D).creationCode;
        bytes memory b = type(D).runtimeCode;
        assembly {
            remainder := mod(sub(b, a), 0x20)
        }
    }
}
// ----
// diff() -> 0 # This checks that the allocation function pads to multiples of 32 bytes #
