Objawy
Załóżmy, że został zainstalowany dodatek Microsoft Visual Studio 2012 aktualizacji 4 na komputerze. Podczas kompilowania niektóre źródła C lub C++ kod razem z opcję optymalizacji kompilatora, takich jak /ox/OX (Pełna optymalizacja), oxtlub /o2/O2 (zmaksymalizować szybkość), jeśli platforma docelowa x64, może zostać wyświetlony następujący komunikat o błędzie:
Błąd krytyczny C1001: Wystąpił błąd wewnętrzny w kompilatorze.
Uwaga: ten problem może wystąpić, jeśli tablica struct lub klasy jest używana w wywołaniu funkcji, a pierwsze pole pierwszy element tablicy jest używany w wywołaniu funkcji. Można znaleźć w poniższym przykładzie:S* arr = …func1(arr, …)
func2(arr->firstField, …)
Rozwiązanie
Informacje o poprawce
Obsługiwana poprawka jest udostępniana przez firmę Microsoft. Jednak ta poprawka jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Tylko w systemach, których dotyczy ten problem, należy zastosować tę poprawkę.
Jeśli poprawka jest dostępna do pobrania, pojawi się sekcja "Poprawka dostępna do pobrania" na początku tego artykułu z bazy wiedzy Knowledge Base. Jeśli nie ma tej sekcji, należy przesłać żądanie do centrum obsługi klienta firmy Microsoft i obsługi technicznej w celu uzyskania poprawki.
Uwaga Jeśli wystąpią dodatkowe błędy lub konieczność rozwiązania problemu, być może trzeba będzie utworzyć osobne zlecenie usługi. Zwykłe koszty obsługi będą zastosowane do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi odwiedź następujące witryny firmy Microsoft:
http://support.microsoft.com/contactus/?ws=supportUwaga "Poprawka dostępna do pobrania" zawiera listę języków, dla których dostępna jest poprawka. Jeśli odpowiedni język nie jest widoczny, to dlatego, że poprawka nie jest dostępna dla danego języka.
Wymagania wstępne
Aby zastosować tę poprawkę, musi mieć Microsoft Visual Studio 2012 aktualizacji 4 rata.
Wymagania dotyczące ponownego uruchomienia
Należy ponownie uruchomić komputer po zainstalowaniu poprawki, jeśli nie są używane pliki podlegające luce w czasie instalacji. Zaleca się zamknięcie wszystkich elementów związanych z programu Visual Studio 2010, przed zainstalowaniem poprawki.
Obejście problemu
Aby obejść ten problem, użyj opcji kompilatora optymalizacji /o1/O1 (zminimalizować rozmiar), lub wyłączyć optymalizacji za pomocą wszystkie podklucze i wartości (Wyłącz).
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.