[Bug target/95782] [s390] ICE in _cpp_pop_context

2024-04-27 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95782

--- Comment #4 from GCC Commits  ---
The master branch has been updated by Jiu Fu Guo :

https://gcc.gnu.org/g:83bc41e8364360b63eaa59c88e2fb499a6751233

commit r15-14-g83bc41e8364360b63eaa59c88e2fb499a6751233
Author: Jiufu Guo 
Date:   Wed Mar 27 14:15:40 2024 +0800

s390: avoid peeking eof after __vector

Same like PR101168, it is need for s390 to
avoid peeking eof after vector keyword.
And similar test case is also ok for s390.

PR target/95782

gcc/ChangeLog:

* config/s390/s390-c.cc (s390_macro_to_expand): Avoid empty
identifier.

gcc/testsuite/ChangeLog:

* g++.target/s390/pr95782.C: New test.

[Bug target/95782] [s390] ICE in _cpp_pop_context

2024-03-27 Thread guojiufu at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95782

Jiu Fu Guo  changed:

   What|Removed |Added

 CC||guojiufu at gcc dot gnu.org

--- Comment #3 from Jiu Fu Guo  ---
(In reply to Andrew Pinski from comment #2)
> The powerpc issue was fixed in GCC 13 (most likely by
> r13-220-g067fe66c8ba9b16feacf66fce9ae668091e42821 ).
> 
> s390 most likely needs the same treatment:
> ```
> [apinski@xeond2 rs6000]$ git diff ../s390/s390-c.cc
> diff --git a/gcc/config/s390/s390-c.cc b/gcc/config/s390/s390-c.cc
> index 8d3d1a467a8..8096b1ff7c1 100644
> --- a/gcc/config/s390/s390-c.cc
> +++ b/gcc/config/s390/s390-c.cc
> @@ -275,7 +275,7 @@ s390_macro_to_expand (cpp_reader *pfile, const cpp_token
> *tok)
>/* __vector long __bool a; */
>if (ident == C_CPP_HASHNODE (__bool_keyword))
> expand_bool_p = true;
> -  else
> +  else if (ident)
> {
>   /* Triggered with: __vector long long __bool a; */
>   do
> 
> ```
> 
> I cannot test this at all, and a similar testcase in PR 101168 should be
> added for s390.

Test with cross-compiling, this code can fix the issue as expected.

[Bug target/95782] [s390] ICE in _cpp_pop_context

2024-03-26 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95782

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|13.0|---

[Bug target/95782] [s390] ICE in _cpp_pop_context

2024-03-26 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95782

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Target|powerpc64le |s390
   Target Milestone|--- |13.0
 Status|UNCONFIRMED |NEW
  Known to work|13.1.0  |
   Last reconfirmed||2024-03-26
Summary|[ppc64le] ICE in|[s390] ICE in
   |_cpp_pop_context|_cpp_pop_context

--- Comment #2 from Andrew Pinski  ---
The powerpc issue was fixed in GCC 13 (most likely by
r13-220-g067fe66c8ba9b16feacf66fce9ae668091e42821 ).

s390 most likely needs the same treatment:
```
[apinski@xeond2 rs6000]$ git diff ../s390/s390-c.cc
diff --git a/gcc/config/s390/s390-c.cc b/gcc/config/s390/s390-c.cc
index 8d3d1a467a8..8096b1ff7c1 100644
--- a/gcc/config/s390/s390-c.cc
+++ b/gcc/config/s390/s390-c.cc
@@ -275,7 +275,7 @@ s390_macro_to_expand (cpp_reader *pfile, const cpp_token
*tok)
   /* __vector long __bool a; */
   if (ident == C_CPP_HASHNODE (__bool_keyword))
expand_bool_p = true;
-  else
+  else if (ident)
{
  /* Triggered with: __vector long long __bool a; */
  do

```

I cannot test this at all, and a similar testcase in PR 101168 should be added
for s390.