发现 XE6 的 64 位编译器的一个 bug解决思路
发现 XE6 的 64 位编译器的一个 bug
下面的代码,在 XE6 的 Win32 编译通过,但是 Win64 无法编译,会引起下面的错误:
[bcc64 Error] Unit2.cpp(1): ICE: Internal compiler error: C0000005 @ 541389AD
这两段,无论是写在同一个文件里面,还是分开写在 .h 和 .cpp 里面,都会引起
[bcc64 Error] Unit2.cpp(1): ICE: Internal compiler error: C0000005 @ 541389AD
------解决方案--------------------
测试了一下,确实会引起C0000005错误。
------解决方案--------------------
T 可能与其他库中的名称有冲突,可能改名能行。
如 没include 其他头文件的情况下,应是BUG 。
还没试装XE6呢,就有Xe6UP1 了,不知道还有多少BUG在。。。。
------解决方案--------------------
XE6 UPDATE1上简单验证了一下,同样的代码32位编码没有问题,64位编译错误,BUG的可能性99.9999%,希望有人能在QUALITY CENTER提交一下。
------解决方案--------------------
这种bug都会有...
------解决方案--------------------
这个64位编译器,看样子,还有很多问题啊
------解决方案--------------------
XE6安装了, 发现问题太多, 没敢用开发产品.
------解决方案--------------------
再期待一下啊
------解决方案--------------------
看来还得等一等
------解决方案--------------------
那就等稳定了再尝鲜吧
下面的代码,在 XE6 的 Win32 编译通过,但是 Win64 无法编译,会引起下面的错误:
[bcc64 Error] Unit2.cpp(1): ICE: Internal compiler error: C0000005 @ 541389AD
class T
{
public:
String f(const wchar_t *fmt, ...);
};
String T::f(const wchar_t *fmt, ...)
{
String s;
va_list argptr;
va_start(argptr, fmt);
s.vprintf(fmt, argptr);
va_end(argptr);
return s;
}
这两段,无论是写在同一个文件里面,还是分开写在 .h 和 .cpp 里面,都会引起
[bcc64 Error] Unit2.cpp(1): ICE: Internal compiler error: C0000005 @ 541389AD
------解决方案--------------------
测试了一下,确实会引起C0000005错误。
------解决方案--------------------
T 可能与其他库中的名称有冲突,可能改名能行。
如 没include 其他头文件的情况下,应是BUG 。
还没试装XE6呢,就有Xe6UP1 了,不知道还有多少BUG在。。。。
------解决方案--------------------
XE6 UPDATE1上简单验证了一下,同样的代码32位编码没有问题,64位编译错误,BUG的可能性99.9999%,希望有人能在QUALITY CENTER提交一下。
------解决方案--------------------
这种bug都会有...
------解决方案--------------------
这个64位编译器,看样子,还有很多问题啊
------解决方案--------------------
XE6安装了, 发现问题太多, 没敢用开发产品.
------解决方案--------------------
再期待一下啊
------解决方案--------------------
看来还得等一等
------解决方案--------------------
那就等稳定了再尝鲜吧