STL icon indicating copy to clipboard operation
STL copied to clipboard

`/clr` tracking issue

Open StephanTLavavej opened this issue 3 years ago • 2 comments

This issue tracks /clr compiler bugs that we need fixes for.

/clr /std:c++20 was first supported (excluding modules) in VS 2022 17.6.

Legend

  • :rotating_light: Product code workaround (almost all other bugs have test code workarounds)
  • :package: Not reduced, preprocessed repro
  • :smile_cat: Semi-reduced, pruned unnecessary test code
  • :green_heart: Fully reduced, library-free repro

Bugs

  • :green_heart: :rotating_light: VSO-1153256 Issue: [[msvc::noop_dtor]] doesn't seem to work for /clr
  • :green_heart: VSO-1459687 DevCom-1632617 C++/CLI struct/class doesn't use MarshalCopy
  • :smile_cat: VSO-1659383 /clr atomic and thread emit error C2711 "this function cannot be compiled as managed" instead of falling back to native codegen
  • :smile_cat: VSO-1659496 /clr emits bogus error C2079 "uses undefined struct 'Incomplete'" despite std::variant's ADL defenses
  • :smile_cat: VSO-1659511 /clr runtime hang when calling std::async in a global variable's constructor
  • :smile_cat: :rotating_light: VSO-1663104 /clr rejects the __ceilf/__floorf intrinsics with error LNK2020/LNK2001 instead of accepting or falling back to native codegen
  • :smile_cat: :rotating_light: VSO-1664341 /clr C++20 System.NullReferenceException when calling ranges algorithms with PMD projections
  • :package: VSO-1664382 /clr C++20 emits bogus error C2127 "illegal initialization of 'constinit' entity with a non-constant expression"
  • :green_heart: VSO-1665481 /clr C++20 silent bad codegen for complex<float> division
  • :package: :rotating_light: VSO-1665606 /clr C++20 backend ICE with counted_iterator's _Same_sequence
  • :package: VSO-1665670 /clr C++20 incorrectly reports input_iterator etc. concepts as being true for 'bad' iterators
  • :package: VSO-1665674 /clr C++20 has incorrect results for various ranges concepts in P0896R4_ranges_iterator_machinery
  • :smile_cat: VSO-1666161 /clr C++20 silent bad codegen for bit_cast<float>(nan_uint)
  • :green_heart: VSO-1666178 /clr C++20 x64 /O2 backend assertion SY_ISUSERVAR(sym) || SY_ISARGUMENT(sym)
  • :green_heart: VSO-1846195 /clr alignas emits fatal error C1193: an error expected in yyaction.cpp(2971) not reached
    • Duplicate: VSO-1753270 /clr C++20 alignas with defaulted SMFs emits fatal error C1193: an error expected in ...\yyaction.cpp(2976) not reached
  • :smile_cat: VSO-1946395 /clr /std:c++20 /Od backend ICE for parallel std::find_end
  • :green_heart: VSO-2231268 /clr /std:c++20 rejects sneaky technique to access private data members
  • :green_heart: VSO-2279389 /clr C++20 can't handle struct MoveOnlyFunctor defined in a function template, emitting fatal error C1193: an error expected in yyaction.cpp(2899) not reached
  • :smile_cat: VSO-2417635 /clr C++20 chk assertion failed: rhs.is_lvalue() in constexpr.cpp, again
  • :smile_cat: VSO-2457624 /clr /std:c++20 silent bad codegen with the __fastfail intrinsic

Fixed

  • VSO-1078742 DevCom-939490 Calling a pointer to member function at constexpr time in /clr triggers internal compiler error
  • VSO-1663233 /clr C++20 rejects <coroutine> with error C3861 "'__builtin_coro_done': identifier not found" instead of falling back to native codegen
  • VSO-1680392 Assertion failure: pSTI->length == strlen(pSTI->szName) + 1 under /clr
  • VSO-1595465 /clr /std:c++17 ICE with int = 0 SFINAE
  • VSO-1663257 /clr C++20 rejects P0428R2 Familiar template syntax for generic lambdas
  • VSO-1663301 /clr C++20 emits bogus error C2131 'expression did not evaluate to a constant' when a lambda tests a constexpr variable defined outside
  • VSO-1665663 /clr C++20 source_location has incorrect column information within a lambda
  • VSO-1664463 /clr C++20 alignas emits error C3821 'managed type or function cannot be used in an unmanaged function' instead of falling back to native codegen
  • VSO-1659408 /clr alignas emits error C2711 "this function cannot be compiled as managed" instead of falling back to native codegen
  • VSO-1666180 /clr C++20 x64 System.AccessViolationException with views::iota and views::transform
    • Duplicate: VSO-1659489 /clr System.AccessViolationException with parallel std::mismatch
    • Duplicate: VSO-1867037 /clr C++20 System.AccessViolationException with ranges uninitialized algorithms
  • VSO-1665654 /clr C++20 x86 System.AccessViolationException with atomic<shared_ptr>
  • VSO-1659695 /clr x86 runtime assertions/crashes with parallel algorithms
  • VSO-1658184 /clr silent bad codegen with std::_Signed128 multiplication
  • VSO-1881472 /clr C++20 x86 System.AccessViolationException with atomic<with_padding_bits<8>>
  • VSO-1664293 /clr C++20 chk assertion failed: rhs.is_lvalue() in constexpr.cpp

Not Reproducible

  • VSO-1673940 DevCom-10195454 managed C++ 17.5 error C2049: 'std::literals::_Int128_literals': non-inline namespace cannot be reopened as inline

StephanTLavavej avatar Nov 06 '22 04:11 StephanTLavavej

is this also /clr bug https://github.com/microsoft/STL/issues/139 ?

fsb4000 avatar Feb 11 '23 11:02 fsb4000

Yes, thank you (especially for the fully reduced repro). I've added it to the list and tagged the internal bug as "STL-requested"; it is already assigned to our /clr compiler dev.

StephanTLavavej avatar Feb 11 '23 21:02 StephanTLavavej