Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Report EDG bugs #1621

Open
StephanTLavavej opened this issue Feb 4, 2021 · 20 comments
Open

Report EDG bugs #1621

StephanTLavavej opened this issue Feb 4, 2021 · 20 comments
Labels
compiler Compiler work involved help wanted Extra attention is needed

Comments

@StephanTLavavej
Copy link
Member

StephanTLavavej commented Feb 4, 2021

This was originally limited to tracking EDG concepts bugs, but is now unlimited.

🆘 Modules (including Header Units)

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:

Click to expand env.lst files:

RUNALL_CROSSLIST
PM_CL=""
ASAN PM_CL="-fsanitize=address /Zi" PM_LINK="/debug"
# PM_CL="/analyze:only /analyze:autolog-" # TRANSITION, works correctly but slowly
# PM_CL="/BE" # TRANSITION, VSO-1232145 "EDG ICEs when consuming Standard Library Header Units"

RUNALL_CROSSLIST
PM_CL=""
ASAN PM_CL="-fsanitize=address /Zi" PM_LINK="/debug"

Help wanted: EDG is looking into the issues with header units, but we can accelerate this work by investigating, reducing, and reporting individual issues.

✅ Reported Upstream

  • VSO-1161828 DevCom-10156297 EDGcpfe/23297 EDG: wrong precedence for <=>
  • VSO-1327220 EDGcpfe/24321 EDG doesn't detect narrowing conversions from a user-defined type to a pointer type to bool
  • VSO-1584921 DevCom-10107834 EDGcpfe/25528 EDG, decltype can't deduce type
  • VSO-1898880 EDGcpfe/26641 EDG fails to handle variable template specializations that differ only in the requires-clause
  • VSO-1898890 EDGcpfe/26576 EDG produces an error for conversion from array to const reference to pointer
  • VSO-1898912 EDGcpfe/26535 EDG does not consider single_view<trivially_copy_assignable_type> to be trivially copy-assignable
  • VSO-1898913 EDGcpfe/26534 Befriending an abbreviated function template makes EDG ignore subsequent members
  • VSO-1898915 EDGcpfe/23896 EDG produces a hard error for can_three_way<bool, int>
  • VSO-1898929 EDGcpfe/25761 EDG rejects requires-clause in a definition within a function template
  • VSO-1898933 EDGcpfe/26745 EDG rejects parenthesized aggregate initialization in a mem-initializer
  • VSO-1898937 EDGcpfe/23985 EDG's __is_convertible_to depends on whether the private members can be accessed in the current context
    • Duplicate: VSO-1898941 EDGcpfe/23985 EDG's default_initializable<const T> has wrong value
    • Duplicate: VSO-1898945 EDGcpfe/23985 EDG's default_initializable<AggregatesExplicitDefault> has wrong value
  • VSO-1898939 EDGcpfe/26746 EDG's __is_constructible has wrong value
  • VSO-1898947 EDGcpfe/26747 EDG's std::nullptr_t has relational operators, but it should not
  • VSO-1898962 EDGcpfe/26750 EDG constexpr dynamic allocations can't handle an array of std::string in debug mode
  • VSO-1900279 EDGcpfe/26763 EDG: Conditional explicit specifier is checked too early in constrained constructor
  • VSO-1900281 EDGcpfe/26539 EDG: Variable template is instantiated too early
  • VSO-1900290 EDGcpfe/25760 EDG thinks a member does not exist in conditional noexcept with friendship
  • VSO-1900293 EDGcpfe/26577 EDG rejects constrained alias template in a pack expansion, when the pack is empty
  • VSO-1900294 EDGcpfe/26749 EDG: Constrained default constructor causes problems
    • Accepted by MSVC in VS 2022 17.8 Preview 5, but rejected by Clang 16.0.5. Clang is probably wrong, see LLVM-60293.
  • VSO-1901430 EDGcpfe/26547 EDG rejects as_const_view with error: atomic constraint depends on itself
  • VSO-1949414 EDGcpfe/27053 EDG incorrectly diagnoses expired storage in constant expression
  • VSO-1949451 EDGcpfe/27058 EDG concepts rejects std::expected trying to propagate triviality of assignment operations
  • VSO-1951821 EDGcpfe/27063 EDG instantiates the wrong overload of promise_type::operator new for generator machinery
  • VSO-1956558 EDGcpfe/27056 EDG incorrectly rejects default construction of union with nontrivial member
  • VSO-2254146 DevCom-10747012 EDGcpfe/27684 EDG doesn't handle std::is_empty (__is_empty) properly for potentially-overlapping member subobjects
    • Blocked by MS ABI work.
  • VSO-2283373 EDGcpfe/27658 EDG: Failure to compare pointers to array elements in a constant expression

🎉 Fixed

  • Fixed in 17.9:
    • VSO-1868335 DevCom-10436970 EDGcpfe/26720 Intellisense doesn't recognize a dependent type in a parameter declaration of a requires expression
    • VSO-1898889 EDGcpfe/26402 EDG thinks that dereferencing a function pointer produces a function (should be a reference to function)
    • VSO-1900278 EDG: Constraint expression cannot be satisfied if it calls a member function of the current class
    • VSO-1900292 EDG fails to handle a requires-clause that involves a local type alias
    • VSO-1900296 EDG thinks that conditional-expression has function type when it should have reference-to-function type
    • VSO-1900276 EDGcpfe/26748 EDG: Default member initializer is instantiated too eagerly when there's a noexcept defaulted default constructor
    • VSO-1898908 EDGcpfe/26758 EDG ICE when a range-based for loop over lvalue iota_view is evaluated in a constant expression
  • Fixed in 17.10:
    • VSO-1900291 EDG ICE involving pointer arithmetic
    • VSO-1951794 EDGcpfe/27055 EDG produces a wrong value for a requires-clause that involves a local type alias
  • Fixed in 17.11:
    • VSO-1948896 EDGcpfe/27054 Catastrophic Edge error involving constexpr std::string in a union
      • ⚠️ This was fixed (VS-PR-539546), but the workaround in P0896R4_views_join still can't be removed, we need to reduce and report again
    • VSO-2016422 EDG hasn't (completely?) implemented CWG-2518 making static_assert(false) usable
    • VSO-2064546 EDG ICE when deriving from std::num_get
  • Fixed in 17.12:
  • Fixed in 17.13:
    • VSO-2086901 DevCom-10678753 EDGcpfe/27599 EDG doesn't properly handle conditionally existing member variable templates in requires-clauses
    • VSO-2188364 EDG assertion failed in conversion_for_direct_reference_binding_possible
    • VSO-2254804 EDG ICE in cpfe.dll!make_coroutine_result_expression with C++23 <generator> test

🪞 C1XX Counterparts

  • VSO-1898886 C1XX thinks that dereferencing a function pointer produces a function (should be a reference to function)
  • VSO-1898944 C1XX's default_initializable<AggregatesExplicitDefault> has wrong value
@StephanTLavavej

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@StephanTLavavej

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@StephanTLavavej

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@CaseyCarter

This comment was marked as resolved.

@CaseyCarter

This comment was marked as resolved.

@cpplearner

This comment was marked as resolved.

@StephanTLavavej

This comment was marked as resolved.

@StephanTLavavej StephanTLavavej added the help wanted Extra attention is needed label Sep 18, 2024
@StephanTLavavej StephanTLavavej pinned this issue Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler Compiler work involved help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants