Repository navigation
EDG tracking issue #1621
Copy link
Copy link
Open
Labels
compilerCompiler work involvedCompiler work involvedhelp wantedExtra attention is neededExtra attention is needed
Description
Activity
- addedcompilerCompiler work involvedCompiler work involved
on Feb 4, 2021 StephanTLavavej commented
on Feb 17, 2022 on Feb 17, 2022 · Hidden as resolvedAuthorshow commentMore actionsStephanTLavavej commented
on Oct 10, 2023 on Oct 10, 2023 · Hidden as resolvedAuthorshow commentMore actionsStephanTLavavej commented
on Oct 12, 2023 on Oct 12, 2023 · Hidden as resolvedAuthorshow commentMore actionsStephanTLavavej commented
on Feb 5, 2024 on Feb 5, 2024 · Hidden as resolvedAuthorshow commentMore actions- addedhelp wantedExtra attention is neededExtra attention is needed
on Sep 18, 2024 - pinned this issue
on Sep 18, 2024 - unpinned this issue
on Mar 13, 2026 - pinned this issue
on Oct 9, 2026 Reduced testcase for
joinconstexpr string. It differs from Casey Carter's repro for VSO-1948896 EDGcpfe/27054 only in the definition and use of the assignment operator.namespace std { struct string; struct _Container_proxy { const string* _Mycont; }; struct _Iterator_base { constexpr _Iterator_base& operator=(const _Iterator_base& _Right) { _Myproxy = _Right._Myproxy; return *this; } _Container_proxy* _Myproxy; }; struct iterator : _Iterator_base { const char* _Ptr = nullptr; constexpr void operator*() const; }; union _Bxty { char _Buf[16]{}; }; struct string { constexpr string() : _Myproxy{new _Container_proxy{this}} {} string(const string&) = delete; string& operator=(const string&) = delete; constexpr ~string() { delete _Myproxy; } constexpr iterator cbegin() const { return iterator{_Myproxy, _Bx._Buf}; } _Container_proxy* _Myproxy; _Bxty _Bx; }; constexpr void iterator::operator*() const { auto _Contptr = _Myproxy->_Mycont; (void)(_Ptr < _Contptr->_Bx._Buf + 4); } } // namespace std constexpr bool test() { union string_holder { constexpr ~string_holder() { s.~string(); } std::string s{}; }; string_holder sh; std::iterator it; it = sh.s.cbegin(); *it; return true; } static_assert(test());
Reacted by Stephan T. Lavavej
Metadata
Metadata
Assignees
Labels
compilerCompiler work involvedCompiler work involvedhelp wantedExtra attention is neededExtra attention is needed
Reported
Need to report
We have workarounds for the following bugs, which we should reduce to be library-free and report to the edgcpp/compiler repo.
VSO-1951821 EDGcpfe/27063 EDG instantiates the wrong overload of
promise_type::operator newforgeneratormachinerySTL/tests/std/tests/P2502R2_generator/test.cpp
Lines 273 to 286 in da52dc0
Modules
There are an unknown number of blocking issues for EDG consuming header units and named modules. Currently, EDG coverage is disabled in the header units test, and hasn't been added to the named modules test.
Fixed, need to remove workarounds
if constevaldownlevel in C++20 mode for parity with C1XX/Clang