Connect Bugs that I Fixed
Similar to STL's post on vcblog, I generate a table of connect bugs that I have fixed after I officially worked on the compiler front end:
Connect ID | Title |
581680 | Lambda declaration cannot access closure variables when defined as a member function of an inline class |
584664 | Visual C++ compiler crashes while trying to compile some templates & inheritance code |
611359 | C++ compiler: Temporary object created when it should not, thus making code that worked in VC9 not work anymore! |
612158 | Illegal C++ fails to generate C2039 error, allowing buffer overrun |
619198 | [c++] Compiler fails to deduce template parameter. |
622382 | fatal error C1001: An internal error has occurred in the compiler |
622723 | Const pointer sign extension not consistent in 64-bit compiler. |
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 |
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. |
637539 | using namespace a::b; does not work in a lambda defined on the root level. |
640228 | compiler template declaration/definition mismatch error |
640281 | C++/CLI compiler crashes when attempting to compile event System::EventHandler<>; |
640356 | decltype does not seem to work ok with operator, expressions |
641032 | Lambda's automagic ctor gets wrong signature (or call) when implicit and explicit capture is mixed. |
649496 | Visual C++ doesn't respect the access modifier for operator member function templates |
649953 | Incorrect code generated when returning struct by value and compiling for x86. |
650667 | Incorrect IDE error |
651255 | C++ CLI property overriding and renaming |
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 |
667226 | private template operators in C++ treated as public |
668375 | Unexpected error for legal code |
669603 | std algorithm functions do not compile in certain case |
674241 | C++ Lambda unable to access parts of types in containing method |
674442 | Enumeration with negative values are popping C4341 warnings |
674672 | Callee disassembly expects address which caller is not providing in x64 mode |
675321 | fatal error C1001: An internal error has occurred in the compiler. |
676037 | CL crashes while compiling specific line (see description) |
678194 | decltype strips "member" property from member function pointers |
678295 | C++ compiler loses member-ness of pointer-to-member-function during template deduction, causes ICE |
679623 | Incorrectly duplicating object when it is a native one(NDT) in vs2010sp1(C++) |
679716 | Bug in VC++ 2010 with global refence to array |
684720 | C++: Inconsistent explicit interface override behavior |
684900 | template template parameters don't work with unions |
684807 | C2216 'override' cannot be used with 'inline' |
685461 | C++ compiler bug in certain situation involving using declaration and overloaded base member functions |
686324 | cl static assertion parsing error |
687345 | Local class and lambda |
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 |
696310 | C2027 emitted multiple times compiling deque with an incomplete stored class |
696412 | Compiling local static auto object causes internal compiler error |
697086 | VC++ cannot resolve function overload as template parameter |
697006 | C4430 emitted twice for the same construct |
697512 | Internal compiler error while compiling specific initializer of global object. |
698459 | VS Stop Working in Win7 |
698688 | auto compiler error with multiple name declaration |
704352 | The function pointer types estimated by template are wrong |
704624 | Memory leaks with lambda expressions |
706674 | compile error C2663 in lambda, if boost 1.48 posix_time.hpp is included. |
706537 | shared_ptr and lambda function crash with C1001 |
715680 | D8030: INTERNAL COMPILER ERROR |
716372 | C++ - fatal error C1001 when using static local variable with non-trivial constructor in static local lambda |
718297 | Access private function |
718578 | VS2010 C++ Template Member Functions in Lambdas Error |
718729 | [C++] Reference default argument falsely converted to pointer on instantiation of more than 2 explicit specializations |
720670 | C++ type equality not recognized under SFINAE context |
724319 | Failed to compile program using boost::program_options and lambda expression |
724362 | decltype がサイズが 0 の配列への参照を作れる / decltype can generate references of zero sized array |
725056 | unable to match function definition |
725189 | Microsoft C++ compiler crash |
725876 | decltype deduces wrong type |
729345 | Rvalue reference overloading rules |
732006 | auto -> decltype causes C1001 crash |
736295 | fatal error C1001 when using Lambda Expression |
736576 | Incorrect name lookup in a lambda expression defined inside a class member function |
736931 | The explicit capture of an entity by a nested lambda-expression does not cause its implicit capture by the containing lambda-expression. |
736965 | internal compiler error instead of compiler diagnostic |
711056 | Friend Template Classes and Lambda Functions |
741267 | Visual Studio 2010 C++: Static objects imported via using directives in lambdas cause compilation issues! |
743303 | Initializer list in a lambda crashes |
746042 | It does not work to instantiate a template with two different anonymous enums |
746056 | Error C1001 with range-based for-loop containing complex expression |
746135 | lambda expression problem |
746680 | Internal Compiler error (C1001) and sometimes crash with VS2012 |
747514 | Inconsistent behavior when passing rvalue reference to function vs. function pointer |
748530 | Function pointer to templated function becomes that of non-templated function of the same name |
750224 | Visual Studio 2010, compiler crash |
751729 | range-based for and shared_ptr internal error |
752136 | Array<> deallocated too early |
753113 | VS2012 C++ Compiler Crash |
753699 | C++ compiler crashes instead of returning error for simple erroneous C++ code |
753981 | Errors C2950 and C3416 are the same and shouldn't be errors at the first place. |
754807 | Possible minor bug in Visual C++ 2010/2012 regarding conditional operator |
759048 | Compiler crash on C++ code |
759235 | Cannot build project |
760771 | fatal error C1001: An internal error has occurred in the compiler. |
761026 | XMMATRIX not properly aligned when using c++11 auto keyword. |
761148 | Internal Compiler Error using const wchar_t* in inline method |
762838 | Partial template specialization error with namespace & final |
770391 | Uniform Initialization Error with Nov 2012 CTP of Visual C++ |
770526 | [Codename Milan] Delegating constructors not working with explicit constructors |
770888 | const ref to initializer_list is not recognized as valid ctor |
771018 | CL crashes when compiel code with initializer_list |
771272 | C/C++ Compiler Driver Crash |
771311 | Variadic template bug in vs2012 november CTP |
771533 | [Codename Milan] Regression making function operator public with using statement |
771534 | [Codename Milan] Regression - Warning 4554 erroneously emitted |
772001 | [Codename Milan] C++11 compilation issue (C2065) |
772093 | x86 C++ compiler crash |
773505 | std::forward and variadic templates failed in Nov 2012 CTP |
774153 | [Codename Milan] Missing <initializer_list> include causes compiler crash |
774268 | Failure to bind rvalue to a constant reference when rvalue is returned from virtual function |
774456 | [Codename Milan] ambiguous begin()/end() of initilizer_list |
774527 | After upgraded from VS2008, build project in VS2012 shows error: c1xx : fatal error C1083: Cannot open source file: '??????????????????????????????': No such file or directory |
775016 | [Codename Milan] std::forward ignore namespaces in variadic template functions |
These are only a small portion of bugs we have fixed (less than 20% of mine), and there are still large amount of active bugs on which we are working.
If you find any bugs in the compiler, feel free to report them through Microsoft Connect.
Comments
Anonymous
January 08, 2013
Good work, Xiang. Can I ask about 774268? I reported that one. Any details on what happened or when the fix will be available?Anonymous
January 11, 2013
Hi, The issue is related to a special handling of function call (if the call is via function pointer, virtual function call or the function is vararg) when /clr is used. Normally the fix will be available in the next major version of VS.