memset memcpy memmove等函数,不要用C写
特定情况下,GCC在C代码编译时,会自动调用这些函数进行优化,摊手
观察到过类似现象,在GCC 10.2下。或许有选项关闭,但没深入调研此事
【 在 shubao (书包) 的大作中提到: 】
: 安装riscv的官方工具链(.ident "GCC: (GNU) 7.2.0"),后对一个c文件进行编译,启动-O3选项时候,编译得到的汇编程序与c代码不一致。
: c代码为一个memset的实现,编译错误对应于第二个while语句对应的汇编:
: void* memset(void* dest, int byte, size_t len)
: ...................
--
FROM 123.112.178.*