Compiler Bugs Fixed In Visual Studio 2012

Compiler Bugs Fixed In Visual Studio 2012

Rate This
  • Comments 11

Following STL Bugs Fixed In Visual Studio 2012, here are similar lists for the compiler front-end (responsible for parsing C++)...

ID Title
599151 Using declaration for a name of a type does not work in MS C++ compilers
603872 Support for XML Documentation in native C++ code
611359 C++ compiler: Temporary object created when it should not, thus making code that worked in VC9 not work anymore!
611716 C++/CLI class static constructor not called in release build
612158 Illegal C++ fails to generate C2039 error, allowing buffer overrun
619198 [c++] Compiler fails to deduce template parameter.
623481 Compiler crash
624283 Private copy operator vs __declspec(dllexport)
624378 Can I double&& in template
624757 Incorrect function template deduction involving pointor to member data
625710 Compilation error in case of repeating forward declaration within class
629060 Compiler Crash related to System.Core and String^
629262 C/C++ Optimizing Compiler has stopped working - System.Core and String^ related
629931 Internal compiler error C1001 when compiling OpenCV 2.1/2.2 with C++/CLI 64 bit
632850 VC++ 2010 Line Number Wrapping
633274 C++ compiler allows use of unspecialized member function template
633782 C++ #pragma secion doesn't allow read,write,execute
634671 Bug with operator overloading and nested lambdas
634688 Wrong return type when running nested lambda
634966 Argument dependent lookup chooses the wrong function inside sizeof statements
636634 Unexpected error C2751 reported at 'using namespace' directive inside a lambda expression.
640228 compiler template declaration/definition mismatch error
640281 C++/CLI compiler crashes when attempting to compile event System::EventHandler<>;
641023 Inner lambda capture list can't see variable through auto-capture of outer lambda, thus rendering the name unknown to the inner capture list
641032 Lambda's automagic ctor gets wrong signature (or call) when implicit and explicit capture is mixed.
644190 Unexpected error C2871 reported at 'using namespace' directive before a lambda expression
649898 VC10 STL: std::pair template constructors ignore if elements are implicitly constructable or not
649953 Incorrect code generated when returning struct by value and compiling for x86.
650667 Incorrect IDE error
651255 C++ CLI property overriding and renaming
651762 Incorrect deduction when taking the address of an instantiated member function template using a template type
651972 Visual C++: Copy Constructor Bug for Base Class with Template Constructor
652743 default constructors of __declspec(selecany) variables not called
657040 Buggy static_assert
661294 Wrong "this" pointer when using templates in C++ and targeting x64 Platform
663659 Large arrays with const size can crash at run-time on win64
663884 VC10: weird template deduction error with non-type default template argument
663904 Compiler fails to compile inner struct/class/union in a namespace after some forward declarations
665425 C1001 Error - "virtual" inheritance, member function pointer template and "Enable minimal rebuild"
667226 private template operators in C++ treated as public
669549 [C++] Temporary strings implicitly constructed take l-value path instead of r-value path
674672 Callee disassembly expects address which caller is not providing in x64 mode
674867 static_assert failure does not trigger a compilation error
674944 C++/CLI compiler gives error C3214 when invoking a class with generic constraint
676125 Public Parameterless Constructor Not Found in VC++
679716 Bug in VC++ 2010 with global refence to array
681998 C++: member rvalue references are initialized with erroneous copies in constructor initializer list
682454 Compiler bug - cannot access private member declared in class
682688 [C++] Failure to compile functions taking template template arguments of dependent types
682689 [C++] No warning when returning r-value-references to locals / temporaries
682695 [C++] __alignof() fails to properly evalute alignment of dependent types
684807 template template parameters don't work with unions
684953 miscompilation of aggregate initializer with lambdas inside
687344 Lambda ICE
687345 Local class and lambda
687903 VC++ 2010 Compiler Crash when using properties (__declspec(property..) and /doc option
687931 cl.exe crashes with a message box compiling some specific code
687935 Ambiguous call to overloaded function in c++ when using lambdas
688106 Fatal Error C1001
688107 C2466 emitted twice for the same construct
688198 Invalid error error C2871 when using functions defined within nested namespaced in lambdas.
688443 C2143 emitted twice for the same construct
689504 C2326 on Lambdas with [this]-Capture
689815 std::result_of not working with lambdas
690955 C4673 Compiling Exception Hierarchy Using Virtual Multiple Inheritence
693671 Compile Error in globally scoped lambda with a for loop
694857 Bug in lambda expressions
696310 C2027 emitted multiple times compiling deque with an incomplete stored class
696412 Compiling local static auto object causes internal compiler error
697006 VC++ cannot resolve function overload as template parameter
697086 C4430 emitted twice for the same construct
697512 Internal compiler error while compiling specific initializer of global object.
698148 C4743 warning on explicit call of a templated function
699236 Visual C++ does not handle based enums correctly
699543 Internal compiler error in CL.exe
703088 Cannot call static member functions of template types directly from lambdas in C++.
704352 The function pointer types estimated by template are wrong
704955 Cannot directly return with decltype
706537 compile error C2663 in lambda, if boost 1.48 posix_time.hpp is included.
708011 Compiling trivial boost::property_tree test gives fatal error C1001
712925 error C2563: mismatch in formal parameter list
712990 bad warning using negative value for enum with underlying type specified as signed short
713679 Unexpected behaviour of this capture in a lambda expression
714524 illegal use of local type in template instantiation
714628 Argument Dependent Lookup Failure in Visual C++ 2010
716461 const data member triggers dynamic initialization with C++ compiler
717318 Incorrect parsing of pointer to array return types in trailing return type template functions
717474 Unterminated __asm blocks cause memory exhaustion for compiler
718050 Warning C4355: 'this' : used in base member initializer list
718578 [C++] Reference default argument falsely converted to pointer on instantiation of more than 2 explicit specializations
718621 VC++10 crashing on basic BOOST_TYPEOF usage
719083 C++ compiler - decltype doesn't infer the correct return type - vector<int>& instead of vector<int>.
719275 Visual C++ compiler won't accept a function pointer as a templated rvalue reference parameter
720670 Failed to compile program using boost::program_options and lambda expression
724314 T const & cannot receive char[]
724319 decltype can generate references of zero sized array
724362 unable to match function definition
724616 Absence of conversion operator-function to pointer to function in lambda-expression.
725134 Nested lambda expressions can not capture entities of enclosing lambda expressions
725189 decltype deduces wrong type
725876 Rvalue reference overloading rules
726039 error C2914: 'foo' : cannot deduce template argument as function argument is ambiguous
727873 VC 11 optimizing compiler crash
728349 VS11 Beta - fatal error C1001
728741 Auto type deduction gets confused for multiple variables
730244 Reference capture by inner lambda of by-value captured variable of non-mutable outer lambda causes weird compiler error
730538 Out-of-line method definition in template specialization
732063 decltype expressions involving polymorphic callable entities fails in VC++11 Beta but works in VC++10
733475 Impossible value-initialization with decltype
734023 ICE (compiler crash), probably related to try-catch in lambda
734303 Lambda-to-function-pointer conversion fails in nested lambdas.
734791 /Za (disable extensions) disables template arguments with local linkage, which is a C++11 feature.
735254 An internal compiler error reduced to a small code snippet
735274 Enumeration can not be captured into a lambda function
735281 Nested lambdas can not refer to outer types
736295 Incorrect name lookup in a lambda expression defined inside a class member function
736576 The explicit capture of an entity by a nested lambda-expression does not cause its implicit capture by the containing lambda-expression.
736647 Internal Compiler Error with boost::property_tree::ptree.get_child()
736931 internal compiler error instead of compiler diagnostic
736965 Friend Template Classes and Lambda Functions
738324 Separated declaration and definition of a template function using template-of-template does not compile
739900 internal compiler error
743026 decltype appears to drop const qualifiers for overloaded operators
744323 Impossibility of using typename with storage class specifier static in lambda expressions
750224 Visual Studio 2010, compiler crash
751729 range-based for and shared_ptr internal error

... and the compiler back-end (responsible for optimizing and generating assembly code):

ID Title
526921 VS2008 C++ x64: buggy result in expression containing double and unsigned int64
555266 C++ compiler generates wrong code with optimization flag /O2
565435 Linker crash with no unusual settings
566543 Bad code generation for SSE/x64 release
577724 Vs2010 x64 C and C++ program crashes when string literal are not modified
581207 Visual Studio 2005 SP1 reproducible linker error (LKN1257 caused by C1083)
581208 inlining code produces bug
582063 Compiler Bug when generating data.
587106 A false C4701 bothers me under a certain condition.
589084 Optimizer bug in Visual C++ Express Edition 2010 (Version 10.0.30319.1 RTMRel)
591804 Useless C++ C4700 warning for x64 Release builds
596345 avx 256 bit intrinsics bug when compile in 64 bit
596828 #pragma comment(lib) should be able to take relative paths from additional lib dirs
597862 DIA SDK dia2dump sample coding mistake prevents dumping of enum and typedef information
606013 OpenMP Release x64 crash in critical section
608187 VS2008 amd64 link error (LNK1103) when using /openmp and /GL flags
612671 [VC2010] Alignment issue with _mm256_store_si256() AVX intrinsic in 64-bit debug builds
613573 VC++2010 Optimize gen infinite-loop exe ...
613868 C++ optimizer fails in debug with /O2 and /Zi
615374 Global variables of __m128i type behave incorrectly with global optimization.
616129 cl.exe: fatal error C1001 when using /O2 switch
623280 Internal compiler error (x86, O2)
624668 (C++ x86) /Og renders function parameters in catch blocks unusable
626399 Possible optimization bug on manual bounds checking
629550 Bug in C++ compilation for structures compiled with pragma pack (1)
634020 Crash when compiling [related to float/double conversions?]
634223 OpenMP & C++ optimization crashes - incorrect program transform/optimization?
634455 Incorrect shift left/right optimization
634606 Compiler bug with SSSE3
641144 LLVMX86Disassembler fails to compile properly in optimize mode
643764 C++ optimization bug; incorrect assembly emitted
644615 Wrong comparison instruction selected for loop preamble
646489 Unaligned data access optimzed away
646911 Bad value in EDI causing a crash when executing MASKMOVDQU
647064 Incorrect code generation when optimizing and using SSE2
650228 optimization bug
650346 C optimization bug
653501 Incorrect shift optimization
653771 _mm256_castps128_ps256 does unaligned read
657966 VS2010: x64 compiler optimization bug (crash)
658197 Build Error when enable both Incremental Linking and Generate Map File when rebuild it.
658441 Database Error _ it's back
661810 Compiler bug for 64-bit release?
664827 application crashed when include fstream in mixed (Cli/native) c++ project
665896 link1104 cannot open .map file issue.
666704 Visual C++ generates incorrect code with omit frame pointer and setjmp
668324 Linker internal error/crash for x64 OpenMP
672163 Incorrect code generated when adding array of 4 char to array of short in a loop
675274 Link 1000 error when compiling using 64bit and release (any optimization) build
676417 Bug in cl for x64 (c compiler)
676584 bug in cl (c compiler)
676931 Invalid C code result with optimization
677627 Linker - A repeated import table under a different dll.
678200 VC++2010 ignores side effects when skips initialization of unused variables
678524 Optimization bug in x64 compiler when left shifting 64-bit value
678710 Compiler crash on _InterlockedCompareExchange64
681524 Visual C++: Global Variables Crash Edit-and-Continue
683152 Wrong Release-code generation for SSE4 intrinsics
683557 Symbol not found in code block with float ops
684087 load imm8 with data from gpr
687527 Code optimizer fails to eliminate memcpy/memset when "number of bytes" is zero
688139 Visual Studio 2010 SP1 Release x64 /O2 optimization bug (c2.dll version 10.00.40219.1 amd64)
688755 Incorrect vectorized cast from float to unsigned int
690107 Disassembly window shows seriously messed up mapping of source code onto machine code
690294 Bad instruction re-ordering causes crash in code generated by MSVC 2010
691217 Inline assembler assembles ARPL instruction incorrectly
691685 Regression: MDA FatalExecutionEngineError (with repo) calling release x32 managed c++ lib, but ok with x64 and x32 debug version.
692745 Code optimizer fails to detect sequential writes to adjacent parts of the same array
693222 Code optimizer emits prologues/epilogues calls when unreachable code manipulating std::vector is present
694100 Slow compilation of 'large' amounts of data (objects/arrays) with references
694755 Missing AVX intrinsics
696041 std::WhateverContainer::iterator::operator->() invokes overloaded "operator&()" of the contained type
696766 VS2010 C++ wrong subtraction result (1.0f - 1.0f == 1753.0) when code optimization is on
698296 Optimization flag -O2 issue in C/C++ compiler
699728 Visual Studio runs out of memory when compiling recursive inline templates in Release
700279 Bug in Visual Studio 2010 SP1 C++ compiler
711698 Linker doesn't rebuild when stack reserve changed
713927 VS 2010 Debugger breakpoint skips first iteration of for-loop
715034 VS2010 C++ compiler generates incorrect code in full optimise /Ox /Ob1
717690 Feedback: 32-bit Development PCs build print drivers in half the time compared to 64-bit PCs (16 vs. 32 mins)
719105 C++ compiler optimization: /fp:fast fails to honour cast from single to double in x64
720646 VC2010 bug with optimization of bit-shift operator
722313 VS11 build/lib.exe will not allow the creation of c++ static library that calls WinRT apis (with 8175 & BETAREL)
722366 IDiaEnumSymbolsByAddr::Next doesn't return huge PDB
723548 VS11DP linker outputs LINK messages in chinese language, in VC++ solutions, for specific source code.
723805 VS2010 C++ compiler produces incorrect code in release mode.
727519 Intrinsics problem
728165 VS 11 Beta does not build static library with WinRT calls in source code (compiled with /Zw)
728802 pdbcopy tool that comes with SDK only works on x32 platforms
729108 VC++ 11 compiler Bug in 64 bit application, optimization resulting in incorrect behaviour (shl)
729496 ml64.exe output wrong code for "vpsrld xmm, xmm, xmm"
729606 MASM crashes due to an internal error.
729818 For loop Error
730417 Internal Compiler Error when compiling EigenSolver
730747 Loop unrolling bug
731193 Compiler Bug in Optimize Release Mode 64bit.
731270 vc++ shift produces inconsistent result
732925 Optimization bug with recursive functions
733810 compiler bug with __m128i
735523 Miscompile with RVO in x64 compiler
735861 fatal error C1001
737430 MS DIA get_virtualAddress for static const class member
738595 Built application crashes on exception rethrow
738878 LOCK prefix encoded by masm to an invalid instruction (causing #UD)
739798 Incorrect code generation for __restrict keyword with full optimization
740143 C/C++ compiler crashes on simple code
740487 "Maximize speed" creates incorrect code
740847 error LNK2019: unresolved external symbol __isa_available
740985 C++ VS2010: bug in generating optimized code with a loop
741370 arm_neon.h header errors and typos
742715 Internal error has occured in the compiler when compling opencv_lapack
744341 fatal error C1001: An internal error has occurred in the compiler in C++11 construction "for (int n : <temp object>)"
746862 Native edit-and-continue not working in VS2012 RC
746946 Compiler produces wrong IL code for managed c++ (only release compile) VS2010 SP1
749567 Visual Studio 2012 RC compiler crashes with /Ox & /fp:fast options

As usual, these lists are far from exhaustive.  They don't contain private Connect bugs or non-Connect bugs (which come from many sources: compiler testers, STL maintainers with last names ending in J, other MS teams like Windows and Office, external customers with support contracts, etc.).  Also, some public Connect bugs aren't represented here (in particular, /analyze and /ZW bugs).

If you find any more bugs that have eluded us, please continue to report them through Microsoft Connect.

Stephan T. Lavavej
Senior Developer - Visual C++ Libraries

  • "Support for XML Documentation in native C++ code" This so totally rocks, big time!

  • The amount of bugs related to code generation and compiler optimizations makes me a bit worried.

  • 653771 was submitted by me, closed as Fixed, but someone recently has commented on it, he believes it was still not fully fixed.

  • Good lord. Anyone want to put these into some more categories other than "big list" and "slightly smaller big list"? :)

  • Bravo to the Visual C++ team for being forthcoming with information like this.

  • Nice to see many C++/CLI-related bugfixes.

  • VS 2012 is very nice :)

    but C++ part have old problems.

    in C# compiler you see compiler automaticly detect and correct lines , brackets , white space and etc.

    but in C++ is not work truly !?

    also Intellisense have one little problem.we have 2 keyboard for find keyword , one for select it ?

    but in C# usually we do only first step.


  • I would like to see improvements in debugging.

    Currently VS debugs C++ by lines and whole statements, unlike C# where debugger steps into each expression.

    Try any complex expression in both and you'll see the difference.


    return A() ? B() ? C() : D() : E();

    In C++ debugger you cannot stop before function calling in the result.

    You either step into the function or skip the whole line.

  • other pic

    i want when close or pair accolade , internal statements become Order or white space remove.

  • @_anfol:

    This post is about the C++ compiler itself, not the IDE.

    Also, at the bottom of the post, Stephan provided the link to the connect website. So if you have a bug or any suggestions, please post it there.

  • Thanks much for posting these...but it would be so much better (and easier on everyone) if the Connect system just let us do our own queries for "Bugs fixed in VC++ release X".

Page 1 of 1 (11 items)