- 所有 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 可以编译自身
24 行
396 B
C
24 行
396 B
C
#include <stdio.h>
|
|
|
|
// arm64-gen.c: gfunc_call() Second pass when struct args may overwrite previous func call result
|
|
struct vec {
|
|
float x;
|
|
float y;
|
|
};
|
|
|
|
void bug(float x, float y) {
|
|
printf("x=%f\ny=%f\n", x, y);
|
|
}
|
|
|
|
float dot(struct vec v) {
|
|
return 999.5;
|
|
}
|
|
|
|
void main(void) {
|
|
struct vec a;
|
|
a.x = 33.0f;
|
|
a.y = 77.0f;
|
|
bug(dot(a), dot(a));
|
|
}
|
|
|