22 lines
		
	
	
		
			527 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			527 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
/*
 | 
						|
 * Copyright (C) 2019  Arm Limited
 | 
						|
 * Original author: Dave Martin <Dave.Martin@arm.com>
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef COMPILER_H
 | 
						|
#define COMPILER_H
 | 
						|
 | 
						|
#define __always_unused __attribute__((__unused__))
 | 
						|
#define __noreturn __attribute__((__noreturn__))
 | 
						|
#define __unreachable() __builtin_unreachable()
 | 
						|
 | 
						|
/* curse(e) has value e, but the compiler cannot assume so */
 | 
						|
#define curse(e) ({				\
 | 
						|
	__typeof__(e) __curse_e = (e);		\
 | 
						|
	asm ("" : "+r" (__curse_e));		\
 | 
						|
	__curse_e;				\
 | 
						|
})
 | 
						|
 | 
						|
#endif /* ! COMPILER_H */
 |