https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88395
nik <xerofoify at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |xerofoify at gmail dot com
--- Comment #1 from nik <xerofoify at gmail dot com> ---
(In reply to Emmanuel Le Trong from comment #0)
> Both trunk and 8.2.1 segfault on this valid snippet
>
> $ cat bug_4.cpp
> template <class T, class U>
> concept bool Concept2 = requires (T t, U u)
> {
> { t += u } -> T&;
> };
>
> template <class T>
> concept bool Concept = Concept2 <T, T>;
>
> struct S
> {
> template <Concept T>
> constexpr S& operator += (T o);
> };
> constexpr S operator * (S a, S b)
> {
> return a += b;
> }
>
>
>
> $ g++-9 -std=c++2a -fconcepts -c bug_4.cpp
> g++-9: 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.
>
> $ g++-9 -v
> Using built-in specs.
> COLLECT_GCC=g++-9
> COLLECT_LTO_WRAPPER=/home/manu/system/opt/gcc-9/libexec/gcc/x86_64-pc-linux-
> gnu/9.0.0/lto-wrapper
> Target: x86_64-pc-linux-gnu
> Configured with: ../gcc-9/configure --prefix=/home/manu/system/opt/gcc-9
> --program-suffix=-9
> Thread model: posix
> gcc version 9.0.0 20181204 (experimental) (GCC)
First off that's just a valid snippet without a class definition so I was
unable to build it against gcc itself to even check this is a bug. Further more
can you check this is still happening and if so just report back with the exact
code that builds but is giving you a segfault on the trunk branch.