public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
@ 2021-09-22 17:42 gscfq@t-online.de
  2021-09-22 17:42 ` [Bug fortran/102458] " gscfq@t-online.de
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: gscfq@t-online.de @ 2021-09-22 17:42 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 102458
           Summary: ICE tree check: expected array_type, have pointer_type
                    in gfc_conv_array_initializer, at
                    fortran/trans-array.c:6136
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gscfq@t-online.de
  Target Milestone: ---

Affects versions down to at least r5 :


$ cat z1.f90
subroutine s
   integer :: a(command_argument_count()) = 1
   print *, a
end


$ gfortran-12-20210919 -c z1.f90
z1.f90:1:12:

    1 | subroutine s
      |            1
internal compiler error: tree check: expected array_type, have pointer_type in
gfc_conv_array_initializer, at fortran/trans-array.c:6136
0x6938d8 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/tree.c:8689
0x7de241 tree_check(tree_node*, char const*, int, char const*, tree_code)
        ../../gcc/tree.h:3427
0x7de241 gfc_conv_array_initializer(tree_node*, gfc_expr*)
        ../../gcc/fortran/trans-array.c:6133
0x81f1b0 gfc_conv_initializer(gfc_expr*, gfc_typespec*, tree_node*, bool, bool,
bool)
        ../../gcc/fortran/trans-expr.c:8014
0x7ff6ca gfc_get_symbol_decl(gfc_symbol*)
        ../../gcc/fortran/trans-decl.c:1940
0x80324f generate_local_decl
        ../../gcc/fortran/trans-decl.c:5989
0x7b3592 do_traverse_symtree
        ../../gcc/fortran/symbol.c:4170
0x80479c generate_local_vars
        ../../gcc/fortran/trans-decl.c:6195
0x80479c gfc_generate_function_code(gfc_namespace*)
        ../../gcc/fortran/trans-decl.c:6854
0x77be66 translate_all_program_units
        ../../gcc/fortran/parse.c:6572
0x77be66 gfc_parse_file()
        ../../gcc/fortran/parse.c:6841
0x7c90df gfc_be_parse_file
        ../../gcc/fortran/f95-lang.c:216

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
@ 2021-09-22 17:42 ` gscfq@t-online.de
  2021-09-22 19:07 ` anlauf at gcc dot gnu.org
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: gscfq@t-online.de @ 2021-09-22 17:42 UTC (permalink / raw)
  To: gcc-bugs

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

G. Steinmetz <gscfq@t-online.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-invalid-code

--- Comment #1 from G. Steinmetz <gscfq@t-online.de> ---

There are several variants :


$ cat z3.f90
subroutine s
   integer :: a(num_images()) = 1
   print *, a
end


$ cat z4.f90
subroutine s
   integer :: a(this_image()) = 1
   print *, a
end


$ cat z7.f90
subroutine s
   integer :: a(command_argument_count()) = 1
   a = 2
end


$ cat z8.f90
program p
   block
      integer :: a(command_argument_count()) = 1
      print *, a
   end block
end


$ cat za.f90
function f()
   integer :: a(command_argument_count()) = 0
   a = 1
end


$ cat zb.f90
program p
   block
      integer :: n(command_argument_count()) = 0
      n = 1
   end block
end


$ gfortran-12-20210919 -c zb.f90
zb.f90:3:44:

    3 |       integer :: n(command_argument_count()) = 0
      |                                            1
internal compiler error: in gfc_trans_auto_array_allocation, at
fortran/trans-array.c:6426
0x797a5b gfc_trans_auto_array_allocation(tree_node*, gfc_symbol*,
gfc_wrapped_block*)
        ../../gcc/fortran/trans-array.c:6426
0x7b1f17 gfc_trans_deferred_vars(gfc_symbol*, gfc_wrapped_block*)
        ../../gcc/fortran/trans-decl.c:4921
0x8054e1 gfc_trans_block_construct(gfc_code*)
        ../../gcc/fortran/trans-stmt.c:2311
0x78e4a7 trans_code
        ../../gcc/fortran/trans.c:2014
0x7b4c04 gfc_generate_function_code(gfc_namespace*)
        ../../gcc/fortran/trans-decl.c:6919
0x73af76 translate_all_program_units
        ../../gcc/fortran/parse.c:6572
0x73af76 gfc_parse_file()
        ../../gcc/fortran/parse.c:6841
0x78761f gfc_be_parse_file
        ../../gcc/fortran/f95-lang.c:216

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
  2021-09-22 17:42 ` [Bug fortran/102458] " gscfq@t-online.de
@ 2021-09-22 19:07 ` anlauf at gcc dot gnu.org
  2021-09-22 19:55 ` kargl at gcc dot gnu.org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-22 19:07 UTC (permalink / raw)
  To: gcc-bugs

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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |anlauf at gcc dot gnu.org
   Last reconfirmed|                            |2021-09-22
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #2 from anlauf at gcc dot gnu.org ---
I think the problem is we consider command_argument_count() as a pure function,
so that gfc_is_constant_expr returns true.

As a consequence, is_non_constant_shape_array thinks that 'a' has constant
shape,
thus erroneously allowing the initialization.

We need a better concept of "constant"...

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
  2021-09-22 17:42 ` [Bug fortran/102458] " gscfq@t-online.de
  2021-09-22 19:07 ` anlauf at gcc dot gnu.org
@ 2021-09-22 19:55 ` kargl at gcc dot gnu.org
  2021-09-22 20:01 ` anlauf at gcc dot gnu.org
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: kargl at gcc dot gnu.org @ 2021-09-22 19:55 UTC (permalink / raw)
  To: gcc-bugs

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

kargl at gcc dot gnu.org changed:

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

--- Comment #3 from kargl at gcc dot gnu.org ---
(In reply to anlauf from comment #2)
> I think the problem is we consider command_argument_count() as a pure
> function,
> so that gfc_is_constant_expr returns true.

Well, it is a pure function.  Fortran 2018, page 327,

    All standard intrinsic functions are pure.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (2 preceding siblings ...)
  2021-09-22 19:55 ` kargl at gcc dot gnu.org
@ 2021-09-22 20:01 ` anlauf at gcc dot gnu.org
  2021-09-22 20:03 ` kargl at gcc dot gnu.org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-22 20:01 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from anlauf at gcc dot gnu.org ---
(In reply to kargl from comment #3)
> Well, it is a pure function.  Fortran 2018, page 327,
> 
>     All standard intrinsic functions are pure.

Of course you are correct.  I wanted to express that in this context one
cannot interpret PURE == (compile time) constant.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (3 preceding siblings ...)
  2021-09-22 20:01 ` anlauf at gcc dot gnu.org
@ 2021-09-22 20:03 ` kargl at gcc dot gnu.org
  2021-09-22 20:43 ` anlauf at gcc dot gnu.org
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: kargl at gcc dot gnu.org @ 2021-09-22 20:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from kargl at gcc dot gnu.org ---
(In reply to kargl from comment #3)
> (In reply to anlauf from comment #2)
> > I think the problem is we consider command_argument_count() as a pure
> > function,
> > so that gfc_is_constant_expr returns true.
> 
> Well, it is a pure function.  Fortran 2018, page 327,
> 
>     All standard intrinsic functions are pure.

I think we need to look at the specific function in gfc_is_constant_expr.

The Fortran standard has

   10.1.12 Constant expression

  A constant expression is an expression with limitations that make
  it suitable for use as a kind type parameter, initializer, or named
  constant. It is an expression in which each operation is intrinsic,
  and each primary is
  ...
  (5) a reference to an elemental standard intrinsic function, where
      each argument is a constant expression,

  (6) a reference to a standard intrinsic function that is
      transformational, other than COMMAND_ARGUMENT_COUNT, GET_TEAM,
      NULL, NUM_IMAGES, TEAM_NUMBER, THIS_IMAGE, or TRANSFER, where
      each argument is a constant expression,

So, if I untangle (6), gfortran needs to reject the listed intrinsic
function except for TRANSFER where a different restrict applies.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (4 preceding siblings ...)
  2021-09-22 20:03 ` kargl at gcc dot gnu.org
@ 2021-09-22 20:43 ` anlauf at gcc dot gnu.org
  2021-09-22 21:17 ` anlauf at gcc dot gnu.org
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-22 20:43 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from anlauf at gcc dot gnu.org ---
Created attachment 51497
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51497&action=edit
Patch

Thanks for the research, Steve.

The attached patch fixes the PR by excluding the listed functions.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (5 preceding siblings ...)
  2021-09-22 20:43 ` anlauf at gcc dot gnu.org
@ 2021-09-22 21:17 ` anlauf at gcc dot gnu.org
  2021-09-22 23:18 ` sgk at troutmask dot apl.washington.edu
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-22 21:17 UTC (permalink / raw)
  To: gcc-bugs

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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #51497|0                           |1
        is obsolete|                            |

--- Comment #7 from anlauf at gcc dot gnu.org ---
Created attachment 51498
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51498&action=edit
Revised patch including testcase

This regtests ok and has the right logic.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (6 preceding siblings ...)
  2021-09-22 21:17 ` anlauf at gcc dot gnu.org
@ 2021-09-22 23:18 ` sgk at troutmask dot apl.washington.edu
  2021-09-23 19:28 ` anlauf at gcc dot gnu.org
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2021-09-22 23:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Steve Kargl <sgk at troutmask dot apl.washington.edu> ---
On Wed, Sep 22, 2021 at 09:17:18PM +0000, anlauf at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102458
> 
> anlauf at gcc dot gnu.org changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>   Attachment #51497|0                           |1
>         is obsolete|                            |
> 
> --- Comment #7 from anlauf at gcc dot gnu.org ---
> Created attachment 51498
>   --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51498&action=edit
> Revised patch including testcase
> 

I think TRANSFER needs to be handled differently.

>From the same section of the Fortran standard, TRANSFER is
rejected if the following does not apply.

   (8) a reference to the intrinsic function TRANSFER where each
   argument is a constant expression and each ultimate pointer
   component of the SOURCE argument is disassociated,

So, one should be able to do something like

   integer,parameter :: n = 4
   integer,parameter :: x(transfer(n, n)) = 1
   print *, x
   end

which gfortran will give 

% gfortran10 -o z a.f90
% ./z
           1           1           1           1

If you remove TRANSFER from the patch, it looks good to me.
We can revisit TRANSFER when Gerhard breaks gfortran, again! ;-)

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (7 preceding siblings ...)
  2021-09-22 23:18 ` sgk at troutmask dot apl.washington.edu
@ 2021-09-23 19:28 ` anlauf at gcc dot gnu.org
  2021-09-23 19:52 ` anlauf at gcc dot gnu.org
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-23 19:28 UTC (permalink / raw)
  To: gcc-bugs

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

anlauf at gcc dot gnu.org changed:

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

--- Comment #9 from anlauf at gcc dot gnu.org ---
(In reply to Steve Kargl from comment #8)
> I think TRANSFER needs to be handled differently.
> 
> From the same section of the Fortran standard, TRANSFER is
> rejected if the following does not apply.
> 
>    (8) a reference to the intrinsic function TRANSFER where each
>    argument is a constant expression and each ultimate pointer
>    component of the SOURCE argument is disassociated,

yeah, I did that for the final patch.  Will submit soon.

> So, one should be able to do something like
> 
>    integer,parameter :: n = 4
>    integer,parameter :: x(transfer(n, n)) = 1
>    print *, x
>    end
> 
> which gfortran will give 
> 
> % gfortran10 -o z a.f90
> % ./z
>            1           1           1           1

This is less of an issue.  We also currently fail on the following:

subroutine s4
  integer, parameter :: n = 4
  integer, parameter :: x(transfer(n, n)) = 1 ! legal
  integer            :: y(transfer(n, n)) = 2 ! legal
  integer, parameter :: k = size (x) ! ok
  integer, parameter :: m = size (y) ! fails, tracked separately
  print *, k, x, y
  if (k /= size (y)) stop 1
end

For some reason we do not simplify SIZE(y), and this reason lies elsewhere.
And it is not touch by my patch.

> If you remove TRANSFER from the patch, it looks good to me.
> We can revisit TRANSFER when Gerhard breaks gfortran, again! ;-)

I'll bet he does, but don't hold your breath?

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (8 preceding siblings ...)
  2021-09-23 19:28 ` anlauf at gcc dot gnu.org
@ 2021-09-23 19:52 ` anlauf at gcc dot gnu.org
  2021-09-24 17:11 ` cvs-commit at gcc dot gnu.org
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-23 19:52 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from anlauf at gcc dot gnu.org ---
Submitted: https://gcc.gnu.org/pipermail/fortran/2021-September/056571.html

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (9 preceding siblings ...)
  2021-09-23 19:52 ` anlauf at gcc dot gnu.org
@ 2021-09-24 17:11 ` cvs-commit at gcc dot gnu.org
  2021-09-27 21:14 ` anlauf at gcc dot gnu.org
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-09-24 17:11 UTC (permalink / raw)
  To: gcc-bugs

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

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

https://gcc.gnu.org/g:84cccff60a978174271a30042bf7841d2ae436eb

commit r12-3884-g84cccff60a978174271a30042bf7841d2ae436eb
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Fri Sep 24 19:10:15 2021 +0200

    Fortran - improve checking for intrinsics allowed in constant expressions

    gcc/fortran/ChangeLog:

            PR fortran/102458
            * expr.c (is_non_constant_intrinsic): Check for intrinsics
            excluded in constant expressions (F2018:10.1.2).
            (gfc_is_constant_expr): Use that check.

    gcc/testsuite/ChangeLog:

            PR fortran/102458
            * gfortran.dg/pr102458.f90: New test.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (10 preceding siblings ...)
  2021-09-24 17:11 ` cvs-commit at gcc dot gnu.org
@ 2021-09-27 21:14 ` anlauf at gcc dot gnu.org
  2021-09-29 19:22 ` anlauf at gcc dot gnu.org
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-27 21:14 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from anlauf at gcc dot gnu.org ---
(In reply to anlauf from comment #9)
A tentative patch which fixes the remaining issue is posted here:

https://gcc.gnu.org/pipermail/fortran/2021-September/056584.html

in the hope to learn more about the frontend.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (11 preceding siblings ...)
  2021-09-27 21:14 ` anlauf at gcc dot gnu.org
@ 2021-09-29 19:22 ` anlauf at gcc dot gnu.org
  2021-09-30 18:29 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-09-29 19:22 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from anlauf at gcc dot gnu.org ---
Corrected patch that addresses the remaining issue (for valid code):

https://gcc.gnu.org/pipermail/fortran/2021-September/056599.html

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (12 preceding siblings ...)
  2021-09-29 19:22 ` anlauf at gcc dot gnu.org
@ 2021-09-30 18:29 ` cvs-commit at gcc dot gnu.org
  2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-09-30 18:29 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Harald Anlauf <anlauf@gcc.gnu.org>:

https://gcc.gnu.org/g:b19bbfb1482505367dd19ae4ab1ea19e36802b6a

commit r12-3993-gb19bbfb1482505367dd19ae4ab1ea19e36802b6a
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Sep 30 20:29:31 2021 +0200

    Fortran: resolve expressions during SIZE simplification

    gcc/fortran/ChangeLog:

            PR fortran/102458
            * simplify.c (simplify_size): Resolve expressions used in array
            specifications so that SIZE can be simplified.

    gcc/testsuite/ChangeLog:

            PR fortran/102458
            * gfortran.dg/pr102458b.f90: New test.

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (13 preceding siblings ...)
  2021-09-30 18:29 ` cvs-commit at gcc dot gnu.org
@ 2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
  2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-10-03 19:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Harald Anlauf
<anlauf@gcc.gnu.org>:

https://gcc.gnu.org/g:082b3588ee01399b93fe73acd2ac181ec2ee3536

commit r11-9064-g082b3588ee01399b93fe73acd2ac181ec2ee3536
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Fri Sep 24 19:10:15 2021 +0200

    Fortran - improve checking for intrinsics allowed in constant expressions

    gcc/fortran/ChangeLog:

            PR fortran/102458
            * expr.c (is_non_constant_intrinsic): Check for intrinsics
            excluded in constant expressions (F2018:10.1.12).
            (gfc_is_constant_expr): Use that check.

    gcc/testsuite/ChangeLog:

            PR fortran/102458
            * gfortran.dg/pr102458.f90: New test.

    (cherry picked from commit 84cccff60a978174271a30042bf7841d2ae436eb)

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (14 preceding siblings ...)
  2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
@ 2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
  2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-10-03 19:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #16 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Harald Anlauf
<anlauf@gcc.gnu.org>:

https://gcc.gnu.org/g:a3abacbaebc5583885600840cf2d968341be0275

commit r11-9065-ga3abacbaebc5583885600840cf2d968341be0275
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Sep 30 20:29:31 2021 +0200

    Fortran: resolve expressions during SIZE simplification

    gcc/fortran/ChangeLog:

            PR fortran/102458
            * simplify.c (simplify_size): Resolve expressions used in array
            specifications so that SIZE can be simplified.

    gcc/testsuite/ChangeLog:

            PR fortran/102458
            * gfortran.dg/pr102458b.f90: New test.

    (cherry picked from commit b19bbfb1482505367dd19ae4ab1ea19e36802b6a)

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (15 preceding siblings ...)
  2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
@ 2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
  2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
  2021-10-05 19:53 ` anlauf at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-10-05 19:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #17 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Harald Anlauf
<anlauf@gcc.gnu.org>:

https://gcc.gnu.org/g:4aabb9ac284fea307aa70bb8ae4bdce298461bc7

commit r10-10169-g4aabb9ac284fea307aa70bb8ae4bdce298461bc7
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Fri Sep 24 19:10:15 2021 +0200

    Fortran - improve checking for intrinsics allowed in constant expressions

    gcc/fortran/ChangeLog:

            PR fortran/102458
            * expr.c (is_non_constant_intrinsic): Check for intrinsics
            excluded in constant expressions (F2018:10.1.12).
            (gfc_is_constant_expr): Use that check.

    gcc/testsuite/ChangeLog:

            PR fortran/102458
            * gfortran.dg/pr102458.f90: New test.

    (cherry picked from commit 082b3588ee01399b93fe73acd2ac181ec2ee3536)

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (16 preceding siblings ...)
  2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
@ 2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
  2021-10-05 19:53 ` anlauf at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-10-05 19:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #18 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Harald Anlauf
<anlauf@gcc.gnu.org>:

https://gcc.gnu.org/g:dea2e6c7b5af2ec620fd94d824f006440907a34d

commit r10-10170-gdea2e6c7b5af2ec620fd94d824f006440907a34d
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Sep 30 20:29:31 2021 +0200

    Fortran: resolve expressions during SIZE simplification

    gcc/fortran/ChangeLog:

            PR fortran/102458
            * simplify.c (simplify_size): Resolve expressions used in array
            specifications so that SIZE can be simplified.

    gcc/testsuite/ChangeLog:

            PR fortran/102458
            * gfortran.dg/pr102458b.f90: New test.

    (cherry picked from commit b19bbfb1482505367dd19ae4ab1ea19e36802b6a)

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

* [Bug fortran/102458] ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136
  2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
                   ` (17 preceding siblings ...)
  2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
@ 2021-10-05 19:53 ` anlauf at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: anlauf at gcc dot gnu.org @ 2021-10-05 19:53 UTC (permalink / raw)
  To: gcc-bugs

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

anlauf at gcc dot gnu.org changed:

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

--- Comment #19 from anlauf at gcc dot gnu.org ---
Fixed on mainline and backported to 11- and 10-branch.
Probably too risky for 9-branch.  Closing.

Thanks for the report!

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

end of thread, other threads:[~2021-10-05 19:53 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-22 17:42 [Bug fortran/102458] New: ICE tree check: expected array_type, have pointer_type in gfc_conv_array_initializer, at fortran/trans-array.c:6136 gscfq@t-online.de
2021-09-22 17:42 ` [Bug fortran/102458] " gscfq@t-online.de
2021-09-22 19:07 ` anlauf at gcc dot gnu.org
2021-09-22 19:55 ` kargl at gcc dot gnu.org
2021-09-22 20:01 ` anlauf at gcc dot gnu.org
2021-09-22 20:03 ` kargl at gcc dot gnu.org
2021-09-22 20:43 ` anlauf at gcc dot gnu.org
2021-09-22 21:17 ` anlauf at gcc dot gnu.org
2021-09-22 23:18 ` sgk at troutmask dot apl.washington.edu
2021-09-23 19:28 ` anlauf at gcc dot gnu.org
2021-09-23 19:52 ` anlauf at gcc dot gnu.org
2021-09-24 17:11 ` cvs-commit at gcc dot gnu.org
2021-09-27 21:14 ` anlauf at gcc dot gnu.org
2021-09-29 19:22 ` anlauf at gcc dot gnu.org
2021-09-30 18:29 ` cvs-commit at gcc dot gnu.org
2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
2021-10-03 19:34 ` cvs-commit at gcc dot gnu.org
2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
2021-10-05 19:51 ` cvs-commit at gcc dot gnu.org
2021-10-05 19:53 ` anlauf 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).