`/clr` tracking issue
Open
Nobody has claimed this yet.
compiler
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 1.7k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 22
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-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-1664341
/clrC++20 System.NullReferenceException when calling ranges algorithms with PMD projections - ๐ฆ 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- Reported in #139.
- ๐ VSO-2231268
/clr /std:c++20rejects sneaky technique to access private data members- Perma-workaround in #4920.
- ๐ 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 #4946.
- ๐ 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 #5811.
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up โ it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the categorized /clr entries in this issue and selecting one specific open compiler bug rather than treating the tracker as a single task. Check the linked issue references and reproduction status shown in the entry; done means that individual bug is fixed and its tracker status can move to Fixed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 10/100