https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100502

            Bug ID: 100502
           Summary: ICE in enforce_access at cp/semantics.c:368
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: raffael at casagrande dot ch
  Target Milestone: ---

Compile the following source file:
--------------------------------
#include <concepts>

template <class>
struct EnumeratorRange {
  struct Iterator {
    EnumeratorRange* range_;

    friend auto operator==(const Iterator&, const Iterator& i) noexcept -> bool
{
      return i.range_->end_reached_;
    }
  };

 private:
  bool end_reached_;
};
--------------------------------
with current trunk (V12.0.0 20210509) or with gcc 11.1 on Ubuntu 20.04 using
the command line "g++-11 -std=c++20 main.cc". This produces the following ICE:
Compiler stderr

<source>: In function 'bool operator==(const EnumeratorRange<
<template-parameter-1-1> >::Iterator&, const EnumeratorRange<
<template-parameter-1-1> >::Iterator&)':
<source>:9:24: internal compiler error: in enforce_access, at
cp/semantics.c:368
    9 |       return i.range_->end_reached_;
      |                        ^~~~~~~~~~~~
0x1d07289 internal_error(char const*, ...)
        ???:0
0x6bddc3 fancy_abort(char const*, int, char const*)
        ???:0
0x97a0ba perform_or_defer_access_check(tree_node*, tree_node*, tree_node*, int,
access_failure_info*)
        ???:0
0x971ece lookup_member(tree_node*, tree_node*, int, bool, int,
access_failure_info*)
        ???:0
0x9ed934 finish_class_member_access_expr(cp_expr, tree_node*, bool, int)
        ???:0
0x8e4d1d c_parse_file()
        ???:0
0xa653b2 c_common_parse_file()
        ???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
------------------------
See also https://godbolt.org/z/PeGMvKeqd

Reply via email to