linux/tools/testing/selftests/arm64/bti/compiler.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Copyright (C) 2019  Arm Limited
   4 * Original author: Dave Martin <Dave.Martin@arm.com>
   5 */
   6
   7#ifndef COMPILER_H
   8#define COMPILER_H
   9
  10#define __always_unused __attribute__((__unused__))
  11#define __noreturn __attribute__((__noreturn__))
  12#define __unreachable() __builtin_unreachable()
  13
  14/* curse(e) has value e, but the compiler cannot assume so */
  15#define curse(e) ({                             \
  16        __typeof__(e) __curse_e = (e);          \
  17        asm ("" : "+r" (__curse_e));            \
  18        __curse_e;                              \
  19})
  20
  21#endif /* ! COMPILER_H */
  22