Partager via


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.