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

            Bug ID: 92593
           Summary: ICE with CTAD using undeclared constraint
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
            Blocks: 67491
  Target Milestone: ---

template<integral T>  // oops, should be std::integral
struct ref_view
{
  ref_view(T) { }
};

ref_view r{1};


This crashes when compiled with -std=gnu++2a:

ice.cc:1:10: error: 'integral' has not been declared
    1 | template<integral T>  // oops, should be std::integral
      |          ^~~~~~~~
ice.cc:4:11: warning: unnecessary parentheses in declaration of 'T'
[-Wparentheses]
    4 |   ref_view(T) { }
      |           ^
ice.cc:4:17: error: expected ';' at end of member declaration
    4 |   ref_view(T) { }
      |                 ^
      |                  ;
g++: internal compiler error: Segmentation fault signal terminated program
cc1plus
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
[Bug 67491] [meta-bug] concepts issues

Reply via email to