/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2019 Arm Limited * Original author: Dave Martin */ #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 */