mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 13:17:31 +00:00 
			
		
		
		
	aot_runtime.c: Add static assertions for some offset assumptions (#1103)
This commit is contained in:
		
							parent
							
								
									b36931a589
								
							
						
					
					
						commit
						0f505aafd9
					
				|  | @ -14,6 +14,22 @@ | |||
| #include "../libraries/thread-mgr/thread_manager.h" | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * Note: These offsets need to match the values hardcoded in | ||||
|  * AoT compilation code: aot_create_func_context, check_suspend_flags. | ||||
|  */ | ||||
| 
 | ||||
| bh_static_assert(offsetof(WASMExecEnv, module_inst) == 2 * sizeof(uintptr_t)); | ||||
| bh_static_assert(offsetof(WASMExecEnv, argv_buf) == 3 * sizeof(uintptr_t)); | ||||
| bh_static_assert(offsetof(WASMExecEnv, native_stack_boundary) | ||||
|                  == 4 * sizeof(uintptr_t)); | ||||
| bh_static_assert(offsetof(WASMExecEnv, suspend_flags) == 5 * sizeof(uintptr_t)); | ||||
| bh_static_assert(offsetof(WASMExecEnv, aux_stack_boundary) | ||||
|                  == 6 * sizeof(uintptr_t)); | ||||
| bh_static_assert(offsetof(WASMExecEnv, aux_stack_bottom) | ||||
|                  == 7 * sizeof(uintptr_t)); | ||||
| bh_static_assert(offsetof(WASMExecEnv, native_symbol) == 8 * sizeof(uintptr_t)); | ||||
| 
 | ||||
| static void | ||||
| set_error_buf(char *error_buf, uint32 error_buf_size, const char *string) | ||||
| { | ||||
|  |  | |||
|  | @ -22,6 +22,19 @@ bh_assert_internal(int v, const char *file_name, int line_number, | |||
| #define bh_assert(expr) (void)0 | ||||
| #endif /* end of BH_DEBUG */ | ||||
| 
 | ||||
| #if !defined(__has_extension) | ||||
| #define __has_extension(a) 0 | ||||
| #endif | ||||
| 
 | ||||
| #if __STDC_VERSION__ >= 201112L                                          \ | ||||
|     || (defined(__GNUC__) && __GNUC__ * 0x100 + __GNUC_MINOR__ >= 0x406) \ | ||||
|     || __has_extension(c_static_assert) | ||||
| 
 | ||||
| #define bh_static_assert(expr) _Static_assert(expr, #expr) | ||||
| #else | ||||
| #define bh_static_assert(expr) /* nothing */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 YAMAMOTO Takashi
						YAMAMOTO Takashi