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

            Bug ID: 102470
           Summary: C++20 NTTP causes ICE
           Product: gcc
           Version: 11.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: iDingDong at outlook dot com
  Target Milestone: ---

GCC 11.2 reports ICE to the following piece of code:

//---
#include <concepts>

template <typename T> struct A {
        A(A<T> const&) = default;
};

template <std::same_as<int> T> struct A<T> {
        A(A<T> const&) = default;
};
//---

Compiled with:

> gcc -std=c++20 test.cpp

The error message:

> gcc -std=c++20 test.cpp
> test.cpp: In substitution of 'template<MemAttr attr> using AlignedStorage = 
> std::aligned_storage_t<((const MemAttr)attr).size, ((const 
> MemAttr)attr).align> [with MemAttr attr = memAttrOf<T>]':
> test.cpp:13:75:   required from here
> test.cpp:11:73: internal compiler error: Segmentation fault
>    11 | template <MemAttr attr> using AlignedStorage = 
> ::std::aligned_storage_t<attr.size, attr.align>;
>       |                                                                       
>   ^~~~
> libbacktrace could not find executable to open
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <https://gcc.gnu.org/bugs/> for instructions.
  • [Bug c++/102470] New: C++20 NTTP... iDingDong at outlook dot com via Gcc-bugs

Reply via email to