首页
社区
课程
招聘
VC6编译器的BUG?
2012-7-26 13:29 4062

VC6编译器的BUG?

2012-7-26 13:29
4062
如下的代码,在VC6 debug/Release、VS2008 debug/Release 四种配置下编译出4个EXE文件(配置为控制台程序,工程属性全部取默认值),EXE的运行结果不同——VC6 Release的结果与其他3个不同。

经过反汇编分析,我很怀疑是VC6编译器有BUG。

希望论坛的童鞋来分析分析。

#include <stdio.h>
#include <tchar.h>

#if 0
	__inline unsigned long ROL(unsigned long x, unsigned long count)
	{
		__asm
		{
			mov ecx, [count];
			rol [x], cl;
			mov eax, [x];
		}
	}
#else
	#define ROL(X, cnt)  ( ( (X)<<((cnt)&31) ) | ( (X)>>(32-((cnt)&31)) ) )
#endif

#define P0(X)		 ( (X) ^ ROL((X),  9) ^ ROL((X), 17))
#define P1(X)		 ( (X) ^ ROL((X), 15) ^ ROL((X), 23))

void TestVc6()
{
	unsigned int a, b, c, f;
	
	scanf("%d %d %d", &a, &b, &c);
	a = ROL(c, 15);
	printf("a = %08X\n", a);
	f = P1(a ^ b ^ ROL(c, 15) );
	printf("f = %08X\n", f);
}

int _tmain(int argc, _TCHAR* argv[])
{
	TestVc6();
	return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
xPLK 3 2012-7-26 14:56
2
0
把优化关掉试试。
雪    币: 4902
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
奘和 2012-7-26 15:06
3
0
还真没注意。。
雪    币: 42
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
MDebug 2012-7-26 15:13
4
0
vc6本来就好多bug...
雪    币: 577
活跃值: (168)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
金罡 1 2012-7-26 15:27
5
0
vs 也有BUG,而且碰到的次数还不止一次,关掉优化即可。
雪    币: 440
活跃值: (82)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2012-7-28 10:28
6
0
有人编译过上面的代码吗? 分析过汇编代码吗?
雪    币: 4031
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ztenv 2012-7-28 14:15
7
0
珍惜生命,远离VC6;
游客
登录 | 注册 方可回帖
返回