发现 XE6 的 64 位编译器的一个 bug解决思路

发现 XE6 的 64 位编译器的一个 bug
下面的代码,在 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安装了, 发现问题太多, 没敢用开发产品.
------解决方案--------------------
再期待一下啊
------解决方案--------------------
看来还得等一等
------解决方案--------------------
那就等稳定了再尝鲜吧