I tried to turn some GNU extensions into actual standard C, so it will work on clang, knowing standard C, not GNU extensions, I lost a little.
__asm__ (goto("1:" STATIC_KEY_INITIAL_NOP ".pushsection __jump_table, \"aw\" \n\t" _ASM_ALIGN "\n\t" _ASM_PTR "1b, %l[l_yes], %c0 \n\t" ".popsection \n\t" : : "i" (key) : : l_yes););
I tried to include this in the actual asm, but have not yet succeeded.
If you're interested, this is part of the kernel that I just compiled on clang, except that there is one section.
source share