Visual Studio 2019 "C1001 internal compiler error" only in Release - c++

I'm getting a C1001 error while attempting to build in Visual Studio 2019 Version 16.7.2. This is a C++ project that has previously built fine until a change set I am attempting to build today.
The exact error is as follows: (with project specific path redacted)
1>d:\work\[...](82): fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\utc\src\p2\main.c', line 187)
Notes below:
The error only happens in Release. Debug builds and runs.
If I turn off all optimizations in Release the error goes away.
The location where the error occurs seems to be unrelated to recent changes I have made to the project i.e. VS is reporting the error in a translation unit that had been building without problem until unrelated changes in another TU were made.
The location where the error occurs seems to not actually be problematic in the sense that if I comment out the implementation of the function there and just return a default value from the function so that the program is syntactically correct, the error occurs in the next the function in the same file.
Turning off Whole Program Optimization and Link Time Code Generation does not fix the problem.

SUGGESTIONS
Please:
Update your post with exact error text (if available)
Post your question to https://developercommunity.visualstudio.com/ as well
See if any of these links are applicable:
https://developercommunity.visualstudio.com/content/problem/710576/visual-studio-2019-1622-fatal-error-c1001-in-32-bi.html
https://social.msdn.microsoft.com/Forums/vstudio/en-US/165975b4-35e9-4b40-9524-e656a4e2f359/fatal-error-c1001-an-internal-error-has-occurred-in-the-compiler?forum=visualstudiogeneral
https://developercommunity.visualstudio.com/content/problem/664162/ice-on-valid-code-after-upgrading-to-1620.html
One way to notify Microsoft Support like this:
MSVS > Help > Send Feedback > Report a Problem
Here is a complete list of MSVS support options: https://visualstudio.microsoft.com/vs/support/
Update:
Thank you for copying/pasting the exact error message:
1>d:\work\[...](82): fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\utc\src\p2\main.c', line 187)
This is the MSVS file causing the error C1001: vctools\compiler\utc\src\p2\main.c
This is an existing Microsoft trouble report:
https://developercommunity.visualstudio.com/content/problem/210332/c1001-internal-error-compiler-file-fddvctoolscompi.html
Hi Roger,
Thanks for reporting the bug, and including an excellently
self-contained repro, so quickly. I've investigated and this seems to
be the same issue as
https://developercommunity.visualstudio.com/content/problem/209359/ice-with-fpfast-in-156-and-msvc-daily-1413263051-p.html.
I'm closing this as a duplicate just so that people can collect
context and work-around advice in the same location, and when the
other bug is marked fixed, you can assume that this one is too.
Thanks again,
Aaron Gorenstein
Software Engineer II
Searching for this error message/source module, I also found this: https://stackoverflow.com/a/63435683/421195
Please post back if either of these work for you!

Related

"Pointer to reference" error in Visual Studio is not displayed by filename where it occurs

Some errors in Visual Studio are not displayed by the filename of the source code where they are created, which makes them difficult to find and debug.
In this particular example, I have the error pointing to #include <vector> header, but I cannot trace it to the source file where the actual code error is. Error C2528 'data': pointer to reference is illegal c:\program files (x86)\microsoft visual studio 14.0\vc\include\vector 1246
If this was a runtime error, I would be able to use the Call Stack to see where in the code the runtime crash occurred.
Is there a similar way to find this error with compiler errors? Or am I stuck looking through source code to see where the error can potentially be manually?
Just for information, this is not a post asking how to fix this particular error, but a post asking how to find the source file where the errors occur quickly. Therefore I am not posting any source code, the error provided here is an example of the type of error that would cause the confusing compiler messages,
Look in the Output tab and select 'Build' from the dropdown. You should see a 'traceback' of your error(s) there. As you have observed, the Error List tab just displays the line provoking the error.

Trying to switch MSVC for Intel compiler and getting LNK1243 errors

Background
I'm trying to replace the compiler of a static library currently built in VS2015 with the Intel compiler (Version 17.0.1.143 Build 20161005). After correcting whatever compile errors there were I started receiving a link time error error LNK1243: invalid or corrupt file: COMDAT section 0x2E6 associated with following section 0x0. The exact section (0x2E6 shown) depends on if I have precompiled headers turned on or off, but the error remains the same.
What I've researched:
Googling the error leads to a plethora of results (a total of about 7, with about 3 actually pertaining to the linking error). One was a linking error in LLVM, another is a Microsoft site that links to the VS2008 documentation that links to a page that describes the linking error. The third is a link to fixes in the Intel Parallel Studio XE 2016 that should have all been included in the version I'm using.
The Intel site says that it fixes
/Qipo results in linker error: fatal error LNK1243: invalid or corrupt file: COMDAT section 0x30FE associated with following section 0x0
and the Microsoft site describes the error as
The linker has detected a corrupt .obj file. A section must be associated with another section that precedes it.
I turned up the compiler output to diagnostic, but did not see anything helpful there.
Question
What is can cause this error (and how can the causes be fixed)? Alternatively, what should I be looking for in the *.obj files to glean a better understanding of what's going on?

Declaring a static pointer in class [duplicate]

While compiling on x64 plattform I am getting following error:
c:\codavs05\hpsw-sc\ovpacc\tools\codaaccesstest\coda_access.cpp(1572): fatal error C1001: An internal error has occurred in the compiler.
(compiler file 'f:\dd\vctools\compiler\utc\src\p2\sizeopt.c', line 55)
To work around this problem, try simplifying or changing the program near the locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
------ Build started: Project: asyncexample, Configuration: Release Win32 ------
If I change settings to preprocessor file (Yes) i am not getting any error.
About my environment: Upgrading Microsoft Visual Studio 2005 to 2010
Please help.
I have had this problem with VS2015 while building locally in Windows.
In order to solve it, I deleted my build folder (Output Directory as seen in Properties/General) and rebuilt the project.
This always seems to help when strange things happen during the build.
I’ve encountered this error many times in VC++. Do the following steps. They’ve sometimes helped me with this issue:
Take a look at the exact location, pointed out by compiler error.
Find any external types or classes used there at that location.
Change the order of “include path” of those files found in step 2 and rebuild the solution.
I hope that help !!!!
I am getting same error with VC2012. Setting up the project properties Optimization to Disabled (/Od) resolved the issue.
In my solution, i've removed output dll file of the project, and I've made project rebuild.
I encountered the same error and spent quite a bit of time hunting for the problem. Finally I discovered that function that the error was pointing to had an infinite while loop. Fixed that and the error went away.
In my case was the use of a static lambda function with a QStringList argument. If I commented the regions where the QStringList was used the file compiled, otherwise the compiler reported the C1001 error. Changing the lambda function to non-static solved the problem (obviously other options could have been to use a global function within an anonymous namespace or a static private method of the class).
I got this error using boost library with VS2017. Cleaning the solution and rebuilding it, solved the problem.
I also had this problem while upgrading from VS2008 to VS2010.
To fix, I have to install a VS2008 patch (KB976656).
Maybe there is a similar patch for VS2005 ?
I got the same error, but with a different file referenced in the error message, on a VS 2015 / x64 / Win7 build. In my case the file was main.cpp. Fixing it for me was as easy as doing a rebuild all (and finding something else to do while the million plus lines of code got processed).
Update: it turns out the root cause is my hard drive is failing. After other symptoms prompted me to run chkdsk, I discovered that most of the bad sectors that were replaced were in .obj, .pdb, and other compiler-generated files.
I got this one with code during refactoring with a lack of care (and with templates, it case that was what made an ICE rather than a normal compile time error)
Simplified code:
void myFunction() {
using std::is_same_v;
for (auto i ...) {
myOtherFunction(..., i);
}
}
void myOtherFunction(..., size_t idx) {
// no statement using std::is_same_v;
if constexpr (is_same_v<T, char>) {
...
}
}
I had this error when I was compiling to a x64 target.
Changing to x86 let me compile the program.
Sometimes helps reordering the code. I had once this error in Visual Studio 2013 and this was only solved by reordering the members of the class (I had an enum member, few strings members and some more enum members of the same enum class. It only compiled after I've put the enum members first).
In my case, this was causing the problem:
std::count_if(data.cbegin(), data.cend(), [](const auto& el) { return el.t == t; });
Changing auto to the explicit type fixed the problem.
Had similar problem with Visual Studio 2017 after switching to C++17:
boost/mpl/aux_/preprocessed/plain/full_lambda.hpp(203): fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'msc1.cpp', line 1518)
1> To work around this problem, try simplifying or changing the program near the locations listed above.
Solved by using Visual Studio 2019.
I first encountered this problem when i was trying to allocate memory to a char* using new char['size']{'text'}, but removing the braces and the text between them solved my problem (just new char['size'];)
Another fix on Windows 10 if you have WSL installed is to disable LxssManager service and reboot the PC.

memcpy.asm not found error

I am working in Optix Using Visual studio 2013 platform, I have been working over month , suddenly I got this error, "memcpy.asm not found".
I found this file in Visual studio folder but it says "The source file is different from when the module was built"
Look carefully at the error, often this comes up as a secondary message because the debugger is trying to load "memcpy.asm" in order to show you debugging information because a memcpy failed, not because your program is actually missing "memcpy.asm"
Heres someone with a similar issue, in short - check the stack trace to see where the issue originated in your code, probably with trying to copy memory to an uninitialized pointer or something.

Build error referring to yvals.h in a cantata++ test project

I am testing c++ source codes using the tool cantata++. I created a project, built it and encounter the following error message.
error I9282: the global scope has no "_invalid_parameter" C:\LegacyApp\VisualStudio2005\VC\include\yvals.h 167
I find this error wierd, because yvals.h is not really a file in my source codes. What does this error message imply?
You'll find that yvals.h is probably included by one of the many system header files the Microsoft compiler includes, and you are only seeing it in the error message because the Cantata++ instrumenter is finding a problem with it. My guess would be that there is some problem with the settings in either Cantata++, your Visual Studio project or a mismatch between the two meaning they are not using the same settings.
In order to help diagnose the problem it would help to know a few things about the setup you have, and the code you are building when you get the error.
As Joachim Wuttke said, I would suggest you contact the Cantata Technical Support team directly if you are still having problems with this issue. They will be able to provide you with further information to help solve the problem.