swgcc710整型越界后处理结果与x86不一致是什么原因?

编译器工具链 编译器工具链 772 人阅读 | 2 人回复 | 2021-04-06

#include <stdio.h>

int main()
{
  long aa =(long)0x7FFFFFFFFFFFFFFF;
  long bb = 0;
  bb = (long)(aa*(double)10);
  printf("aa=%ld,bb=%ld\n",aa,bb);
  return 0;
}
申威:aa=9223372036854775807, bb=0
x86:aa=9223372036854775807, bb=-9223372036854775808
回复

使用道具 举报

回答|共 2 个

zbrj

发表于 2021-4-6 15:17:25 | 显示全部楼层

各个架构出现的情况都不同,aarch64 x86 申威结果都不同,应该不是问题
回复

使用道具 举报

TecSupport

发表于 2021-4-8 09:28:05 | 显示全部楼层

一楼说的是对的,申威平台、x86平台、龙芯平台、飞腾平台针对这个问题,处理结果都不一样,我们之前已经验证过,您也可以自己验证一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则