Move static asserts from EVMJIT

This commit is contained in:
Paweł Bylica 2018-04-17 11:05:54 +02:00
parent c5c34599b9
commit b2c566f79c
No known key found for this signature in database
GPG Key ID: 7A0C037434FE77EF
1 changed files with 19 additions and 0 deletions

View File

@ -6,6 +6,25 @@
#include <cstring>
// Compile time checks:
static_assert(sizeof(evmc_uint256be) == 32, "evmc_uint256be is too big");
static_assert(sizeof(evmc_address) == 20, "evmc_address is too big");
static_assert(sizeof(evmc_result) == 64, "evmc_result does not fit cache line");
static_assert(sizeof(evmc_instance) <= 64, "evmc_instance does not fit cache line");
static_assert(sizeof(evmc_message) <= 18 * 8, "evmc_message not optimally packed");
static_assert(offsetof(evmc_message, code_hash) % 8 == 0, "evmc_message.code_hash not aligned");
// Check enums match int size.
// On GCC/clang the underlying type should be unsigned int, on MSVC int
static_assert(
sizeof(evmc_call_kind) == sizeof(int), "Enum `evmc_call_kind` is not the size of int");
static_assert(sizeof(evmc_revision) == sizeof(int), "Enum `evmc_revision` is not the size of int");
static constexpr size_t optionalDataSize =
sizeof(evmc_result) - offsetof(evmc_result, create_address);
static_assert(optionalDataSize == sizeof(evmc_result_optional_data), "");
TEST_F(evmc_vm_test, abi_version_match)
{
ASSERT_EQ(vm->abi_version, EVMC_ABI_VERSION);