Информация об изменениях

Сообщение [C++/CLI] ICE при System.Core от 16.10.2016 15:24

Изменено 16.10.2016 17:18 _NN_

Минимальный пример:

using namespace System;

//#using <System.Core.dll>

class A
{
public:
    const wchar_t* F() { return L""; }
};

String^ readUnicodeString(A& msg)
{
    const wchar_t* text = msg.F();
    String^ str = gcnew String(text); // <<< ICE указывает сюда
    return str;
}

int main() {}


Если раскомментировать то получаем ICE.
Указывает на

1>fatal error C1001: An internal error has occurred in the compiler.
1>  (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x6396E0DB:0x00000030]', line 182)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.
1>  Please choose the Technical Support command on the Visual C++
1>   Help menu, or open the Technical Support help file for more information
1>  INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\CL.exe'
1>      Please choose the Technical Support command on the Visual C++
1>      Help menu, or open the Technical Support help file for more information


Со старым синтаксисом управляемого C++ всё компилируется без проблем.
Есть идеи как обойти ?
[C++/CLI] ICE при System.Core
Минимальный пример:

using namespace System;

//#using <System.Core.dll>

class A
{
public:
    const wchar_t* F() { return L""; }
};

String^ readUnicodeString(A& msg)
{
    const wchar_t* text = msg.F();
    String^ str = gcnew String(text); // <<< ICE указывает сюда
    return str;
}

int main() {}


Компилятор VS 2008.

Если раскомментировать то получаем ICE.
Указывает на

1>fatal error C1001: An internal error has occurred in the compiler.
1>  (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x6396E0DB:0x00000030]', line 182)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.
1>  Please choose the Technical Support command on the Visual C++
1>   Help menu, or open the Technical Support help file for more information
1>  INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\CL.exe'
1>      Please choose the Technical Support command on the Visual C++
1>      Help menu, or open the Technical Support help file for more information


Со старым синтаксисом управляемого C++ всё компилируется без проблем.
Есть идеи как обойти ?