mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01:00 
			
		
		
		
	Some bright sparks have decided that a cast on a constant cannot be a
constant, so offsetof() produces this warning on clang-10:
include/intel_gnvs.h:113:1: error: static_assert expression is not an
	integral constant expression
check_member(acpi_global_nvs, unused2, GNVS_CHROMEOS_ACPI_OFFSET);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:284:2: note: expanded from macro 'check_member'
        offsetof(struct structure, member) == (offset), \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/stddef.h:20:32: note: expanded from macro 'offsetof'
                                ^
include/intel_gnvs.h:113:1: note: cast that performs the conversions of
	a reinterpret_cast is ot allowed in a constant expression
include/linux/stddef.h:20:33: note: expanded from macro 'offsetof'
Fix it by using the compiler built-in version, if available. This syncs
the function to the same implementation as Linux v5.16 in this header
file.
Signed-off-by: Simon Glass <sjg@chromium.org>
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			442 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			442 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _LINUX_STDDEF_H
 | |
| #define _LINUX_STDDEF_H
 | |
| 
 | |
| #include <linux/compiler_types.h>
 | |
| 
 | |
| #undef NULL
 | |
| #if defined(__cplusplus)
 | |
| #define NULL 0
 | |
| #else
 | |
| #define NULL ((void *)0)
 | |
| #endif
 | |
| 
 | |
| #ifndef _SIZE_T
 | |
| #include <linux/types.h>
 | |
| #endif
 | |
| 
 | |
| #ifndef __CHECKER__
 | |
| #undef offsetof
 | |
| #ifdef __compiler_offsetof
 | |
| #define offsetof(TYPE, MEMBER)	__compiler_offsetof(TYPE, MEMBER)
 | |
| #else
 | |
| #define offsetof(TYPE, MEMBER)	((size_t)&((TYPE *)0)->MEMBER)
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #endif
 |