none
Visual Studio 2015 internal compiler error - ARM

    Question

  • We are experiancing an 'Internal compiler error' with some C++ code, attempting to build a UWP appxupload package.

    Code clean compiles on various other platforms/ides - e.g. android/ios.

    Code clean compiles on all VS2015 settings except ARM:Release where the following crash log is generate.

    Yes weve tried moving the code around a bit, but no change + the code is pretty simple. In one case its assigning a C++ object property from a passed parameter, the other is returning an integer variable.

    Visual Studio 2015, Community Edition, version 14.0.24720.00 update 1

    1>c:\win10apps\fiveoak\fiveoak\yachtzgeneric\src\yachtzengine.cpp(649): fatal error C1001: An internal error has occurred in the compiler.
    1>  (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 246)
    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>    link!DllGetC2Telemetry()+0xac4e8
    1>    link!DllGetC2Telemetry()+0xac4e8
    1>    link!CloseTypeServerPDB()+0x626f3
    1>    link!CloseTypeServerPDB()+0x626f3
    1>    link!CloseTypeServerPDB()+0x6248e
    1>    link!CloseTypeServerPDB()+0x623fb
    1>    link!CloseTypeServerPDB()+0x6240d
    1>    link!CloseTypeServerPDB()+0x62034
    1>    link!CloseTypeServerPDB()+0x61fc5
    1>
    1>c:\win10apps\fiveoak\fiveoak\yachtzgeneric\src\yachtzengine.cpp(94): fatal error C1001: An internal error has occurred in the compiler.
    1>  (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 246)
    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>    link!DllGetC2Telemetry()+0xac4e8
    1>    link!CloseTypeServerPDB()+0x626f3
    1>    link!CloseTypeServerPDB()+0x626f3
    1>    link!CloseTypeServerPDB()+0x6248e
    1>    link!CloseTypeServerPDB()+0x623fb
    1>    link!CloseTypeServerPDB()+0x6240d
    1>    link!CloseTypeServerPDB()+0x62034
    1>    link!CloseTypeServerPDB()+0x61fc5
    1>
    1>
    1>LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage
    1>
    1>    Version 14.00.23506.0
    1>
    1>    ExceptionCode            = C0000005
    1>    ExceptionFlags           = 00000000
    1>    ExceptionAddress         = 1026B9B4 (0FFB0000) "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_arm\c2.dll"
    1>    NumberParameters         = 00000002
    1>    ExceptionInformation[ 0] = 00000000
    1>    ExceptionInformation[ 1] = 00000014
    1>
    1>  CONTEXT:
    1>    Eax    = 00000000  Esp    = 0105E880
    1>    Ebx    = 00000001  Ebp    = 0105E88C
    1>    Ecx    = 19FFB804  Esi    = 19FFB87C
    1>    Edx    = 19FFF5B4  Edi    = 19FFF5B4
    1>    Eip    = 1026B9B4  EFlags = 00010206
    1>    SegCs  = 00000023  SegDs  = 0000002B
    1>    SegSs  = 0000002B  SegEs  = 0000002B
    1>    SegFs  = 00000053  SegGs  = 0000002B
    1>    Dr0    = 00000000  Dr3    = 00000000
    1>    Dr1    = 00000000  Dr6    = 00000000
    1>    Dr2    = 00000000  Dr7    = 00000000

    Wednesday, December 09, 2015 4:49 PM

All replies

  • >We are experiancing an 'Internal compiler error' with some C++ code, attempting to build a UWP appxupload package.

    If you can create a project that reproduces the error that you don't
    mind sharing with MS, submit it as a bug on the MS Connect site:
    https://connect.microsoft.com/visualStudio/

    Dave

    Wednesday, December 09, 2015 10:02 PM
  • Weve isolated the problem to the following:

    In the C/C++ code an enum is being 'calculated' then used as an array index.

    Whatever the arm compiler is doing to 'convert' the enum into the arrray index and/or determine the memory offset (integer arrays) is causing the compiler crash.

    Im pretty sure we do this all over the place - weve quite a bit of legacy code - and rightly or wrongly enums are treated as 'named integer values'.  The only thing that we can see that might cause an issue in this case is one of the enum definitions values is -1.

    Its not possible for the runtime variable to actually hold the enum equivalent to -1 when it gets to the array indexing (its effectively the 'uninitialized' enum value) however the compiler is unlikely to know that + may well be attempting some kind of bounds checking + getting upset... bit of a guess on our part but...

    We can work around for now by calculating the index directly as an integer. (assigning from enum variable to int variable does not seem to fix the compiler crash)

    Thursday, December 10, 2015 7:13 PM
  • Weve isolated the problem to the following:
    ...

    Show us some sample code that anyone can use to repro it.

    Dave

    Thursday, December 10, 2015 11:10 PM
  • @bbjbbj,

    I think this is reasonable for us to get a repro sample. Then we can check whether this is Visual Studio problem or this is your project problem. Now I'm not so sure whether this is related to Visual Studio or this is related to the project. So we have to clarify it first.

    Best regards,

    Barry


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Monday, December 14, 2015 8:26 AM
    Moderator