-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Open
Labels
compilerCompiler work involvedCompiler work involved
Description
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
- 📦 Not reduced, preprocessed repro
- 😸 Semi-reduced, pruned unnecessary test code
- 💚 Fully reduced, library-free repro
Product Code Workarounds
- 💚 VSO-1153256 Issue:
[[msvc::noop_dtor]]doesn't seem to work for/clr - 😸 VSO-1663104
/clrrejects the__ceilf/__floorfintrinsics with error LNK2020/LNK2001 instead of accepting or falling back to native codegen - 😸 VSO-1664341
/clrC++20 System.NullReferenceException when calling ranges algorithms with PMD projections - 📦 VSO-1665606
/clrC++20 backend ICE withcounted_iterator's_Same_sequence - 😸 VSO-2457624
/clr /std:c++20silent bad codegen with the__fastfailintrinsic
Test Code Workarounds
- 😸 VSO-1659383
/clratomicandthreademit error C2711 "this function cannot be compiled as managed" instead of falling back to native codegen - 😸 VSO-1659496
/clremits bogus error C2079 "uses undefined struct 'Incomplete'" despitestd::variant's ADL defenses - 😸 VSO-1659511
/clrruntime hang when callingstd::asyncin a global variable's constructor - 📦 VSO-1664382
/clrC++20 emits bogus error C2127 "illegal initialization of 'constinit' entity with a non-constant expression" - 💚 VSO-1665481
/clrC++20 silent bad codegen forcomplex<float>division - 📦 VSO-1665670
/clrC++20 incorrectly reportsinput_iteratoretc. concepts as being true for 'bad' iterators - 📦 VSO-1665674
/clrC++20 has incorrect results for various ranges concepts inP0896R4_ranges_iterator_machinery - 😸 VSO-1666161
/clrC++20 silent bad codegen forbit_cast<float>(nan_uint) - 💚 VSO-1666178
/clrC++20 x64/O2backend assertionSY_ISUSERVAR(sym) || SY_ISARGUMENT(sym) - 💚 VSO-1846195
/clralignasemits fatal error C1193: an error expected in yyaction.cpp(2971) not reached - 😸 VSO-1946395
/clr /std:c++20 /Odbackend ICE for parallelstd::find_end
No Workarounds
- 💚 VSO-1459687 DevCom-1632617 C++/CLI struct/class doesn't use
MarshalCopy - 💚 VSO-2231268
/clr /std:c++20rejects sneaky technique to access private data members- Perma-workaround in
<chrono>: Add comments for compiler bug workarounds #4920.
- Perma-workaround in
- 💚 VSO-2279389
/clrC++20 can't handlestruct MoveOnlyFunctordefined in a function template, emitting fatal error C1193: an error expected in yyaction.cpp(2899) not reached- Perma-workaround in
<future>: Makepackaged_taskaccept move-only functors #4946.
- Perma-workaround in
- 💚 VSO-2616030
/clr /std:c++20alignasemits bogus error C3645:'main::<lambda_1>::<lambda_invoker_clrcall>':__clrcallcannot be used on functions compiled to native code- Perma-workaround in
<__msvc_threads_core.hpp>: Use aligned byte arrays as aligned buffers #5811.
- Perma-workaround in
Fixed
- VSO-1078742 DevCom-939490 Calling a pointer to member function at
constexprtime in/clrtriggers internal compiler error - VSO-1663233
/clrC++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) + 1under/clr - VSO-1595465
/clr/std:c++17ICE withint = 0SFINAE - VSO-1663257
/clrC++20 rejects P0428R2 Familiar template syntax for generic lambdas - VSO-1663301
/clrC++20 emits bogus error C2131 'expression did not evaluate to a constant' when a lambda tests aconstexprvariable defined outside - VSO-1665663
/clrC++20source_locationhas incorrect column information within a lambda - VSO-1664463
/clrC++20alignasemits error C3821 'managed type or function cannot be used in an unmanaged function' instead of falling back to native codegen - VSO-1659408
/clralignasemits error C2711 "this function cannot be compiled as managed" instead of falling back to native codegen - VSO-1666180
/clrC++20 x64 System.AccessViolationException withviews::iotaandviews::transform- Duplicate: VSO-1659489
/clrSystem.AccessViolationException with parallelstd::mismatch - Duplicate: VSO-1867037
/clrC++20 System.AccessViolationException with ranges uninitialized algorithms
- Duplicate: VSO-1659489
- VSO-1665654
/clrC++20 x86 System.AccessViolationException withatomic<shared_ptr> - VSO-1659695
/clrx86 runtime assertions/crashes with parallel algorithms - VSO-1658184
/clrsilent bad codegen withstd::_Signed128multiplication - VSO-1881472
/clrC++20 x86 System.AccessViolationException withatomic<with_padding_bits<8>> - VSO-1664293
/clrC++20 chk assertion failed:rhs.is_lvalue()in constexpr.cpp - VSO-2417635
/clrC++20 chk assertion failed:rhs.is_lvalue()in constexpr.cpp, again
Metadata
Metadata
Assignees
Labels
compilerCompiler work involvedCompiler work involved