/* SPDX-License-Identifier: GPL-2.0 */1/* Copyright (c) 2019 Facebook */2#ifndef __ASM_GOTO_WORKAROUND_H3#define __ASM_GOTO_WORKAROUND_H45/*6* This will bring in asm_goto_output and asm_inline macro definitions7* if enabled by compiler and config options.8*/9#include <linux/types.h>1011#ifdef asm_goto_output12#undef asm_goto_output13#define asm_goto_output(x...) asm volatile("invalid use of asm_goto_output")14#endif1516/*17* asm_inline is defined as asm __inline in "include/linux/compiler_types.h"18* if supported by the kernel's CC (i.e CONFIG_CC_HAS_ASM_INLINE) which is not19* supported by CLANG.20*/21#ifdef asm_inline22#undef asm_inline23#define asm_inline asm24#endif2526#define volatile(x...) volatile("")27#endif282930