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.