public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554
@ 2020-12-02 17:07 gscfq@t-online.de
  2020-12-03  7:38 ` [Bug middle-end/98099] " ebotcazou at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: gscfq@t-online.de @ 2020-12-02 17:07 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 98099
           Summary: ICE in gen_lowpart_common, at emit-rtl.c:1554
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gscfq@t-online.de
  Target Milestone: ---

Affects versions down to r6 :


$ cat z1.c
struct S { _Decimal128 a; };

_Decimal128 f (struct S x)
{
  return x.a;
}


$ gcc-11-20201129 -c z1.c -m32 -fsso-struct=big-endian
during RTL pass: expand
z1.c: In function 'f':
z1.c:5:11: internal compiler error: Segmentation fault
    5 |   return x.a;
      |          ~^~
0xb49eaf crash_signal
        ../../gcc/toplev.c:330
0x825a2f gen_lowpart_common(machine_mode, rtx_def*)
        ../../gcc/emit-rtl.c:1554
0xafa9ec gen_lowpart_general(machine_mode, rtx_def*)
        ../../gcc/rtlhooks.c:48
0x83ef31 extract_bit_field_1
        ../../gcc/expmed.c:1826
0x83f7ff extract_bit_field(rtx_def*, poly_int<1u, unsigned long>, poly_int<1u,
unsigned long>, int, rtx_def*, machine_mode, machine_mode, bool, rtx_def**)
        ../../gcc/expmed.c:2119
0x84e8ca expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        ../../gcc/expr.c:11113
0x859e43 store_expr(tree_node*, rtx_def*, int, bool, bool)
        ../../gcc/expr.c:5859
0x85b206 expand_assignment(tree_node*, tree_node*, bool)
        ../../gcc/expr.c:5595
0x750c10 expand_gimple_stmt_1
        ../../gcc/cfgexpand.c:3901
0x750c10 expand_gimple_stmt
        ../../gcc/cfgexpand.c:3999
0x755e07 expand_gimple_basic_block
        ../../gcc/cfgexpand.c:6040
0x758476 execute
        ../../gcc/cfgexpand.c:6724

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
@ 2020-12-03  7:38 ` ebotcazou at gcc dot gnu.org
  2020-12-03  7:47 ` ebotcazou at gcc dot gnu.org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2020-12-03  7:38 UTC (permalink / raw)
  To: gcc-bugs

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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-12-03
     Ever confirmed|0                           |1

--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Confirmed.  Does this come from real code or is it an artificial test?

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
  2020-12-03  7:38 ` [Bug middle-end/98099] " ebotcazou at gcc dot gnu.org
@ 2020-12-03  7:47 ` ebotcazou at gcc dot gnu.org
  2020-12-03  8:05 ` marxin at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2020-12-03  7:47 UTC (permalink / raw)
  To: gcc-bugs

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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |ebotcazou at gcc dot gnu.org

--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
We cannot support it on 32-bit platforms in any case.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
  2020-12-03  7:38 ` [Bug middle-end/98099] " ebotcazou at gcc dot gnu.org
  2020-12-03  7:47 ` ebotcazou at gcc dot gnu.org
@ 2020-12-03  8:05 ` marxin at gcc dot gnu.org
  2020-12-03 14:56 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-12-03  8:05 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marxin at gcc dot gnu.org

--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r6-4623-gee45a32dae253f7d where -fsso-struct=big-endian was
introduced.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (2 preceding siblings ...)
  2020-12-03  8:05 ` marxin at gcc dot gnu.org
@ 2020-12-03 14:56 ` cvs-commit at gcc dot gnu.org
  2020-12-03 14:58 ` ebotcazou at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-12-03 14:56 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Eric Botcazou <ebotcazou@gcc.gnu.org>:

https://gcc.gnu.org/g:277ff3406d533990e98cf1c2075b9dc9db6fa48a

commit r11-5706-g277ff3406d533990e98cf1c2075b9dc9db6fa48a
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Dec 3 15:54:14 2020 +0100

    Fix PR middle-end/98099

    this replaces the ICE by a sorry message for the use of reverse scalar
    storage order with 128-bit decimal floating-point type on 32-bit targets.

    gcc/ChangeLog:
            PR middle-end/98099
            * expmed.c (flip_storage_order): In the case of a non-integer mode,
            sorry out if the integer mode to be used instead is not supported.

    gcc/testsuite/ChangeLog:
            * gcc.dg/pr98099.c: New test.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (3 preceding siblings ...)
  2020-12-03 14:56 ` cvs-commit at gcc dot gnu.org
@ 2020-12-03 14:58 ` ebotcazou at gcc dot gnu.org
  2021-03-16  9:28 ` ebotcazou at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2020-12-03 14:58 UTC (permalink / raw)
  To: gcc-bugs

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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
   Target Milestone|---                         |11.0
         Resolution|---                         |FIXED

--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (4 preceding siblings ...)
  2020-12-03 14:58 ` ebotcazou at gcc dot gnu.org
@ 2021-03-16  9:28 ` ebotcazou at gcc dot gnu.org
  2021-03-16 14:12 ` seurer at gcc dot gnu.org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-03-16  9:28 UTC (permalink / raw)
  To: gcc-bugs

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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |seurer at gcc dot gnu.org

--- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
*** Bug 99607 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (5 preceding siblings ...)
  2021-03-16  9:28 ` ebotcazou at gcc dot gnu.org
@ 2021-03-16 14:12 ` seurer at gcc dot gnu.org
  2021-03-16 14:56 ` ebotcazou at gcc dot gnu.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: seurer at gcc dot gnu.org @ 2021-03-16 14:12 UTC (permalink / raw)
  To: gcc-bugs

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

seurer at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|FIXED                       |---
             Status|RESOLVED                    |REOPENED

--- Comment #7 from seurer at gcc dot gnu.org ---
The new test case for the fix for this fails on powerpc64.

make  -k check-gcc RUNTESTFLAGS="--target_board=unix'{-m32}'
dg.exp=gcc.dg/pr98099.c"
FAIL: gcc.dg/pr98099.c  (test for warnings, line 11)
# of expected passes            1
# of unexpected failures        1

This fails for 32 bit only on powerpc BE.

spawn -ignore SIGHUP /home/seurer/gcc/git/build/gcc-test/gcc/xgcc
-B/home/seurer/gcc/git/build/gcc-test/gcc/
/home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/pr98099.c -m32
-fdiagnostics-plain-output -fsso-struct=big-endian -S -o pr98099.s
FAIL: gcc.dg/pr98099.c  (test for warnings, line 11)

Note that no warning is actually generated.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (6 preceding siblings ...)
  2021-03-16 14:12 ` seurer at gcc dot gnu.org
@ 2021-03-16 14:56 ` ebotcazou at gcc dot gnu.org
  2021-03-17 19:08 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-03-16 14:56 UTC (permalink / raw)
  To: gcc-bugs

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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
The bug is fixed though and no warning is expected on big-endian targets so
it's just a matter of tweaking or disabling the testcase for them.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (7 preceding siblings ...)
  2021-03-16 14:56 ` ebotcazou at gcc dot gnu.org
@ 2021-03-17 19:08 ` jakub at gcc dot gnu.org
  2021-03-17 20:36 ` ebotcazou at gcc dot gnu.org
  2021-03-18  8:55 ` cvs-commit at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-03-17 19:08 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So something like following?

2021-03-17  Jakub Jelinek  <jakub@redhat.com>

        PR middle-end/98099
        * gcc.dg/pr98099.c: Don't compile the test on pdp endian.
        For big endian use -fsso-struct=little-endian dg-options.

--- gcc/testsuite/gcc.dg/pr98099.c.jj   2020-12-04 10:53:56.306043973 +0100
+++ gcc/testsuite/gcc.dg/pr98099.c      2021-03-17 20:05:07.714417723 +0100
@@ -1,8 +1,9 @@
 /* PR middle-end/98099 */
 /* Reported by G. Steinmetz <gscfq@t-online.de> */

-/* { dg-do compile { target dfp } } */
-/* { dg-options "-fsso-struct=big-endian" } */
+/* { dg-do compile { target { dfp && { be || le } } } } */
+/* { dg-options "-fsso-struct=big-endian" { target le } } */
+/* { dg-options "-fsso-struct=little-endian" { target be } } */

 struct S { _Decimal128 a; };

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (8 preceding siblings ...)
  2021-03-17 19:08 ` jakub at gcc dot gnu.org
@ 2021-03-17 20:36 ` ebotcazou at gcc dot gnu.org
  2021-03-18  8:55 ` cvs-commit at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-03-17 20:36 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> 2021-03-17  Jakub Jelinek  <jakub@redhat.com>
> 
> 	PR middle-end/98099
> 	* gcc.dg/pr98099.c: Don't compile the test on pdp endian.
> 	For big endian use -fsso-struct=little-endian dg-options.
> 
> --- gcc/testsuite/gcc.dg/pr98099.c.jj	2020-12-04 10:53:56.306043973 +0100
> +++ gcc/testsuite/gcc.dg/pr98099.c	2021-03-17 20:05:07.714417723 +0100
> @@ -1,8 +1,9 @@
>  /* PR middle-end/98099 */
>  /* Reported by G. Steinmetz <gscfq@t-online.de> */
>  
> -/* { dg-do compile { target dfp } } */
> -/* { dg-options "-fsso-struct=big-endian" } */
> +/* { dg-do compile { target { dfp && { be || le } } } } */
> +/* { dg-options "-fsso-struct=big-endian" { target le } } */
> +/* { dg-options "-fsso-struct=little-endian" { target be } } */
>  
>  struct S { _Decimal128 a; };

Yes, even better, thanks.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug middle-end/98099] ICE in gen_lowpart_common, at emit-rtl.c:1554
  2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
                   ` (9 preceding siblings ...)
  2021-03-17 20:36 ` ebotcazou at gcc dot gnu.org
@ 2021-03-18  8:55 ` cvs-commit at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-03-18  8:55 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:57e274408c237c08d2f78722e3767651ef931170

commit r11-7711-g57e274408c237c08d2f78722e3767651ef931170
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Mar 18 09:53:24 2021 +0100

    testsuite: Fix up pr98099.c testcase for big endian [PR98099]

    The testcase fails on big-endian without int128 support, because
    due to -fsso-struct=big-endian no swapping is needed for big endian.
    This patch restricts the testcase to big or little endian (but not pdp)
    and uses -fsso-struct=little-endian for big endian, so that it is
    swapping everywhere.

    2021-03-18  Jakub Jelinek  <jakub@redhat.com>

            PR middle-end/98099
            * gcc.dg/pr98099.c: Don't compile the test on pdp endian.
            For big endian use -fsso-struct=little-endian dg-options.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-03-18  8:55 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-02 17:07 [Bug c/98099] New: ICE in gen_lowpart_common, at emit-rtl.c:1554 gscfq@t-online.de
2020-12-03  7:38 ` [Bug middle-end/98099] " ebotcazou at gcc dot gnu.org
2020-12-03  7:47 ` ebotcazou at gcc dot gnu.org
2020-12-03  8:05 ` marxin at gcc dot gnu.org
2020-12-03 14:56 ` cvs-commit at gcc dot gnu.org
2020-12-03 14:58 ` ebotcazou at gcc dot gnu.org
2021-03-16  9:28 ` ebotcazou at gcc dot gnu.org
2021-03-16 14:12 ` seurer at gcc dot gnu.org
2021-03-16 14:56 ` ebotcazou at gcc dot gnu.org
2021-03-17 19:08 ` jakub at gcc dot gnu.org
2021-03-17 20:36 ` ebotcazou at gcc dot gnu.org
2021-03-18  8:55 ` cvs-commit at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).