introduce: smatch_data/kernel.no_inline_functions
[smatch.git] / validation / asm-empty-clobber.c
blobeb1e10582812b1a8da2354b0a5896bef57159d6b
2 # define __ASM_FORM(x) " " #x " "
3 # define JUMP_LABEL_INITIAL_NOP ".byte 0xe9 \n\t .long 0\n\t"
4 # define __ASM_SEL(a,b) __ASM_FORM(b)
5 #define _ASM_PTR __ASM_SEL(.long, .quad)
7 # define JUMP_LABEL(key, label) \
8 do { \
9 asm goto("1:" \
10 JUMP_LABEL_INITIAL_NOP \
11 ".pushsection __jump_table, \"a\" \n\t"\
12 _ASM_PTR "1b, %l[" #label "], %c0 \n\t" \
13 ".popsection \n\t" \
14 : : "i" (key) : : label); \
15 } while (0)
17 int main(int argc, char *argv[])
19 JUMP_LABEL("1", do_trace );
20 return 1;
21 do_trace:
22 return 0;
26 * check-name: Asm with goto labels.