- 所有 tcc 文件/内容/宏改名为 pcc (tcc.c->pcc.c, tccelf.c->pccelf.c, libtcc.c->libpcc.c 等) - 支持架构: i386, x86_64, ARM, ARM64, RISC-V, C67 - 支持格式: PE, ELF, Mach-O, COFF - 完整预处理、代码生成、链接器、调试信息 - 构建成功: pcc.exe (x86_64 Windows) - 功能测试通过: 递归/结构体/浮点/switch/循环 - 自编译测试通过: pcc 可以编译自身
32 行
500 B
C
32 行
500 B
C
#include <stdio.h>
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
int n = 0;
|
|
int first=1;
|
|
int *p[101];
|
|
if (0) {
|
|
lab:;
|
|
}
|
|
int x[n % 100 + 1];
|
|
if (first == 0) {
|
|
if (&x[0] != p[n % 100 + 1]) {
|
|
printf ("ERROR: %p %p\n", &x[0], p[n % 100 + 1]);
|
|
return(1);
|
|
}
|
|
}
|
|
else {
|
|
p[n % 100 + 1] = &x[0];
|
|
first = n < 100;
|
|
}
|
|
x[0] = 1;
|
|
x[n % 100] = 2;
|
|
n++;
|
|
if (n < 100000)
|
|
goto lab;
|
|
printf ("OK\n");
|
|
return 0;
|
|
}
|
|
|