ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
solidity_types.h
Go to the documentation of this file.
1#ifndef SOLIDITY_TYPES_H
2#define SOLIDITY_TYPES_H
3
4#include <stdbool.h>
5#include <stddef.h>
6
7#if defined(__clang__)
8# if __clang_major__ >= 16
9# define BIGINT(bits) _BitInt(bits)
10# elif __clang_major__ >= 11 && __clang_major__ <= 13
11# define BIGINT(bits) _ExtInt(bits)
12# else
13# error "Unsupported Clang version: _ExtInt/_BitInt not available."
14# endif
15#else
16# error "This code requires Clang to compile."
17#endif
18
19typedef BIGINT(256) int256_t;
20typedef unsigned BIGINT(256) uint256_t;
21typedef unsigned BIGINT(160) address_t;
22
23/* Dynamic bytes type — shared between solidity_bytes.c and solidity_builtins.c
24 */
25typedef struct BytesDynamic
26{
27 size_t offset;
28 size_t length;
29 size_t capacity;
32
34{
35 unsigned int x;
36 unsigned int y;
37};
38
39#endif /* SOLIDITY_TYPES_H */
unsigned BIGINT(512)
Definition solidity_builtins.c:58
Definition solidity_types.h:26
size_t capacity
Definition solidity_types.h:29
size_t length
Definition solidity_types.h:28
int initialized
Definition solidity_types.h:30
size_t offset
Definition solidity_types.h:27
Definition solidity_types.h:34
unsigned int x
Definition solidity_types.h:35
unsigned int y
Definition solidity_types.h:36