modernc.org/ccgo/v3@v3.16.14/lib/testdata/tcc-0.9.27/tests/tests2/98_al_ax_extend.c (about) 1 #include <stdio.h> 2 #include <stdlib.h> 3 asm ( 4 ".text;" 5 ".globl _us;.globl _ss;.globl _uc;.globl _sc;" 6 "_us:;_ss:;_uc:;_sc:;" 7 "movl $0x1234ABCD, %eax;" 8 "ret;" 9 ); 10 11 #if 1 12 #define us _us 13 #define ss _ss 14 #define uc _uc 15 #define sc _sc 16 #endif 17 18 int main() 19 { 20 unsigned short us(void); 21 short ss(void); 22 unsigned char uc(void); 23 signed char sc(void); 24 25 unsigned short (*fpus)(void) = us; 26 short (*fpss)(void) = ss; 27 unsigned char (*fpuc)(void) = uc; 28 signed char (*fpsc)(void) = sc; 29 30 printf("%08X %08X\n", us() + 1, fpus() + 1); 31 printf("%08X %08X\n", ss() + 1, fpss() + 1); 32 printf("%08X %08X\n", uc() + 1, fpuc() + 1); 33 printf("%08X %08X\n", sc() + 1, fpsc() + 1); 34 printf("\n"); 35 printf("%08X %08X\n", fpus() + 1, us() + 1); 36 printf("%08X %08X\n", fpss() + 1, ss() + 1); 37 printf("%08X %08X\n", fpuc() + 1, uc() + 1); 38 printf("%08X %08X\n", fpsc() + 1, sc() + 1); 39 40 return 0; 41 }