Hi Paul,

inq would be easier to understand and unambiguous imho.

Why? inquiry_type seems fine to me.

I think Bernhard means the name of the member, i.

I think it makes sense to leave as it is - gfc_ref is a
struct that occurs a lot in complicated expressions, and the other
members are one and two letters, too.

....snip....
Is the switch really worth it? I'd have used a plain chain of strcmp,
fwiw.

I have done it. However, I might revert in order to combine the switch
block where I set the typespec for the primary expression.

Whatever suits you best.

I haven't added testcases for errors. Does anybody think that this is necessary?

Might not be a bad idea to run through at least each new error message
again.

There is one illwfL test case which ICEs:

$ cat b.f90
program main
  character(len=:), allocatable :: a
  allocate(a,source="abc")
  a%len = 2
  print *,a
end
$ gfortran b.f90
gimplification failed:
(integer(kind=4)) .a <nop_expr 0x7f138ae67740
    type <integer_type 0x7f138acd15e8 integer(kind=4) public SI
        size <integer_cst 0x7f138acbcdb0 constant 32>
        unit-size <integer_cst 0x7f138acbcdc8 constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7f138acd15e8 precision:32 min <integer_cst 0x7f138acbcd68 -2147483648> max <integer_cst 0x7f138acbcd80 2147483647>
        pointer_to_this <pointer_type 0x7f138acd89d8>>

    arg:0 <var_decl 0x7f138b980ab0 .a
        type <integer_type 0x7f138acd1738 integer(kind=8) public DI
            size <integer_cst 0x7f138acbcb70 constant 64>
            unit-size <integer_cst 0x7f138acbcb88 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7f138acd1738 precision:64 min <integer_cst 0x7f138acbcdf8 -9223372036854775808> max <integer_cst 0x7f138acbce10 9223372036854775807>
            pointer_to_this <pointer_type 0x7f138ad057e0>>
used DI b.f90:1:0 size <integer_cst 0x7f138acbcb70 64> unit-size <integer_cst 0x7f138acbcb88 8> align:64 warn_if_not_align:0 context <function_decl 0x7f138ae83200 MAIN__>
        chain <var_decl 0x7f138b980b40 a type <pointer_type 0x7f138ae82540>
used unsigned DI b.f90:2:0 size <integer_cst 0x7f138acbcb70 64> unit-size <integer_cst 0x7f138acbcb88 8> align:64 warn_if_not_align:0 context <function_decl 0x7f138ae83200 MAIN__>>>>
b.f90:4:0:

    4 |   a%len = 2
      |
internal compiler error: gimplification failed
0xb45602 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int)
        ../../trunk/gcc/gimplify.c:12568

Regards

        Thomas

Reply via email to