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

            Bug ID: 127977
           Summary: ICE on valid code
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: algol68
          Assignee: algol68 at gcc dot gnu.org
          Reporter: mnabipoor at gnu dot org
  Target Milestone: ---

```a68
(
  mode NP = struct(int value);
  mode NPH = flex[1:0] ref NP;

  NPH nph;
  NP np;

  nph := loc[1:8]ref NP;
  nph[0] := np
)
```

leads to

```
gimplification failed:
_21 + _26 <pointer_plus_expr 0x7f2e2f8695f0
    type <pointer_type 0x7f2e2f843000
        type <pointer_type 0x7f2e2fbb2b28 type <record_type 0x7f2e2fbb2a80
lalastruct%>
            unsigned DI
            size <integer_cst 0x7f2e2fa02df8 constant 64>
            unit-size <integer_cst 0x7f2e2fa02e10 constant 8>
            align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7f2e2fbb2b28
            pointer_to_this <pointer_type 0x7f2e2f843000>>
        sizes-gimplified unsigned DI size <integer_cst 0x7f2e2fa02df8 64>
unit-size <integer_cst 0x7f2e2fa02e10 8>
        align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7f2e2f843000>

    arg:0 <ssa_name 0x7f2e2f86f3c8 type <pointer_type 0x7f2e2f843000>

        def_stmt _21 = D.4043.elements%;
        version:21>
    arg:1 <ssa_name 0x7f2e2f86f738
        type <integer_type 0x7f2e2fa18000 sizetype public unsigned DI size
<integer_cst 0x7f2e2fa02df8 64> unit-size <integer_cst 0x7f2e2fa02e10 8>
            align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7f2e2fa18000 precision:64 min <integer_cst 0x7f2e2fa02e28 0> max <integer_cst
0x7f2e2fa034e0 18446744073709551615>>

        def_stmt _26 = _24 * _25;
        version:26>>
x.a68: In function ‘__algol68_main’:
x.a68:9:3: internal compiler error: gimplification failed
    9 |   nph[0] := np;
      |   ^~~
0x29e9a9f internal_error(char const*, ...)
        $HOME/p/gnu/gcc/gcc/diagnostic-global-context.cc:787
0xdeb711 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:21600
0xe0c2a1 gimplify_modify_expr
        $HOME/p/gnu/gcc/gcc/gimplify.cc:7350
0xde8fa2 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:20526
0xe09d61 gimplify_stmt(tree_node**, gimple**)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:8577
0xe09d61 gimplify_compound_expr
        $HOME/p/gnu/gcc/gcc/gimplify.cc:7632
0xe09dc2 gimplify_compound_expr
        $HOME/p/gnu/gcc/gcc/gimplify.cc:7630
0xde92a5 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:20516
0xdeb746 gimplify_stmt(tree_node**, gimple**)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:8577
0xde9adb gimplify_statement_list
        $HOME/p/gnu/gcc/gcc/gimplify.cc:2166
0xde9adb gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:20977
0xdeb746 gimplify_stmt(tree_node**, gimple**)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:8577
0xdecd8c gimplify_bind_expr
        $HOME/p/gnu/gcc/gcc/gimplify.cc:1561
0xde9c54 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:20727
0xdeb746 gimplify_stmt(tree_node**, gimple**)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:8577
0xde9019 gimplify_and_add(tree_node*, gimple**)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:558
0xde9019 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:20878
0xdeb746 gimplify_stmt(tree_node**, gimple**)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:8577
0xde9adb gimplify_statement_list
        $HOME/p/gnu/gcc/gcc/gimplify.cc:2166
0xde9adb gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        $HOME/p/gnu/gcc/gcc/gimplify.cc:20977
$HOME/dev/ga68-x86_64/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/a681 x.a68 -quiet
-dumpbase x.a68 -dumpbase-ext .a68 -mtune=generic -march=x86-64
-L$HOME/dev/ga68-x86_64/lib/gcc/x86_64-pc-linux-gnu/17.0.0
-L$HOME/dev/ga68-x86_64/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L$HOME/dev/ga68-x86_64/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../.. -L/lib
-L/usr/lib -o /tmp/cckzxazM.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
```

Reply via email to