[xsd-users] ICE
Andrew Ward
andy.ward at hevday.com
Wed Jun 21 22:43:44 EDT 2006
Hi Boris,
Thanks for the tips covered in the "Delay Loading" email. I have come to
a satisfactory solution.
I have come across a VC 7.1 internal compiler error while making a call
into some XSD generated code. Although I am sure the XSD code is fine, I
thought I would bring it to your attention in case you want to generate
code that avoids the situation.
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 2701)
The code that causes the Microsoft bug is along the lines of this:
template <class Base>
struct A : public Base::MngCursor {
typedef typename Base::MngCursor Inherited;
};
template <class Base>
struct B : public Base::MngCursor {
typedef typename Base::MngCursor Inherited;
};
template <class Base>
struct C {
typedef B <Base> MngCursor;
friend struct B <Base>;
};
class D {};
struct E {
typedef D MngCursor;
};
A<C<E> > k;
And is described here:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-gb%3B824389
I am getting the ICE when making a call like this:
int s;
s = x.A().get().B().get();
x is a const reference to a generated type
A is an optional<>
B is an optional<> with a base type of int
Andy.
More information about the xsd-users
mailing list