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

--- Comment #4 from Nicholas Krause <xerofoify at gmail dot com> ---
(In reply to Nicholas Krause from comment #3)
> (In reply to Arsène Pérard-Gayot from comment #2)
> > (In reply to Nicholas Krause from comment #1)
> > > I just compiled this like so:
> > > ./bin/g++ test.cpp -fopenmp -Wall -fconcepts -o name test2.cpp 
> > > and got this on a build from yesterday:
> > > 
> > > 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.
> > > 
> > > This code is linked to another version of this
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88395 as it crashes before 
> > > your
> > > warning issue. I posted to
> > > the list here about a possible fix yesterday for it:
> > > 
> > > https://gcc.gnu.org/ml/gcc/2019-03/msg00185.html
> > 
> > Could you please explain the connection with this bug? From what I see, what
> > you are reporting here is unrelated to the warning issue, and the
> > segmentation fault only occurs because of your use of the "-fconcepts" flag.
> > Please correct me if I am wrong.
> 
> Yes that's correct. However the problem is that it needs to compile and you
> would get this:
> test.cpp:2:5: error: ‘concept’ does not name a type
>     2 |     concept bool Concept2 = requires (T t, U u)
>       |     ^~~~~~~
> test.cpp:2:5: note: ‘concept’ only available with ‘-fconcepts’
> test.cpp:8:5: error: ‘concept’ does not name a type
>     8 |     concept bool Concept = Concept2 <T, T>;
>       |     ^~~~~~~
> test.cpp:8:5: note: ‘concept’ only available with ‘-fconcepts’
> test.cpp:12:19: error: ‘Concept’ has not been declared
>    12 |         template <Concept T>
>       |                   ^~~~~~~
> test.cpp:13:35: error: ‘T’ was not declared in this scope
>    13 |         constexpr S& operator += (T o);
>       |                                   ^
> test.cpp:13:38: error: declaration of ‘operator+=’ as non-function
>    13 |         constexpr S& operator += (T o);
>       |                                      ^
> test.cpp: In function ‘constexpr S operator*(S, S)’:
> test.cpp:17:18: error: no match for ‘operator+=’ (operand types are ‘S’ and
> ‘S’)
>    17 |         return a += b;
>       |                ~~^~~~
> test2.cpp: In member function ‘void S::test(size_t&)’:
> test2.cpp:21:21: warning: value computed is not used [-Wunused-value]
>    21 |             #pragma omp atomic capture
>       |                     ^~~
> Therefore it must be build must and that bug fixed first before we take on
> this bug unless you can send me a example without concepts required and just
> openmp code.

Sorry I was compiling a incorrect program your code is fine and this is now
confirmed.

Reply via email to