This test is difficult to reduce further. The ICE disappears if the line

  if (.not. associated (ptr, a)) call abort

is commented. Removing .not. in the above line does not change ICE. The test
pass with -m64.

gdb session:

(gdb) run -fdefault-integer-8 char_associated_1_db.f90     
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /opt/gcc/gcc4.3l/libexec/gcc/powerpc-apple-darwin8/4.3.0/f951
-fdefault-integer-8 char_associated_1_db.f90
Reading symbols for shared libraries . done
 MAIN__
Breakpoint 1, fancy_abort (file=0x6f8bbc
"../../gcc-4.3-20070727/gcc/simplify-rtx.c", line=4676, function=0x720100
"simplify_subreg") at ../../gcc-4.3-20070727/gcc/diagnostic.c:655
655       internal_error ("in %s, at %s:%d", function, trim_filename (file),
line);
(gdb) backtrace
#0  fancy_abort (file=0x6f8bbc "../../gcc-4.3-20070727/gcc/simplify-rtx.c",
line=4676, function=0x720100 "simplify_subreg") at
../../gcc-4.3-20070727/gcc/diagnostic.c:655
#1  0x0048cfb8 in simplify_subreg (outermode=SImode, op=0x43680080,
innermode=DImode, byte=0) at ../../gcc-4.3-20070727/gcc/simplify-rtx.c:4675
#2  0x0048d450 in simplify_gen_subreg (outermode=SImode, op=0x43680080,
innermode=DImode, byte=0) at ../../gcc-4.3-20070727/gcc/simplify-rtx.c:4972
#3  0x0020492c in operand_subword_force (op=0x43680080, offset=0, mode=DImode)
at ../../gcc-4.3-20070727/gcc/emit-rtl.c:1371
#4  0x00289854 in expand_binop (mode=DImode, binoptab=0x4362a400,
op0=0x43680080, op1=0x43680040, target=0x43680020, unsignedp=1,
methods=OPTAB_LIB_WIDEN) at ../../gcc-4.3-20070727/gcc/optabs.c:1582
#5  0x0021c858 in expand_expr_real_1 (exp=0x4367e6f0, target=0x4362a400,
tmode=DImode, modifier=EXPAND_NORMAL, alt_rtl=0xbfffd958) at
../../gcc-4.3-20070727/gcc/expr.c:9168
#6  0x0022c2ec in expand_expr_real (exp=0x4367e6f0, target=0x43680020,
tmode=DImode, modifier=EXPAND_NORMAL, alt_rtl=0xbfffd958) at
../../gcc-4.3-20070727/gcc/expr.c:6902
#7  0x00232928 in store_expr (exp=0x4367e6f0, target=0x43680020,
call_param_p=0, nontemporal=0 '\0') at ../../gcc-4.3-20070727/gcc/expr.c:4482
#8  0x00234ca0 in expand_assignment (to=0x436105a0, from=0x4367e6f0,
nontemporal=0 '\0') at ../../gcc-4.3-20070727/gcc/expr.c:4308
#9  0x0021afc8 in expand_expr_real_1 (exp=0x4367ac20, target=0x436105a0,
tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at
../../gcc-4.3-20070727/gcc/expr.c:8921
#10 0x0022c450 in expand_expr_real (exp=0x4367ac20, target=0x4360dbb0,
tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at
../../gcc-4.3-20070727/gcc/expr.c:6896
#11 0x004b1488 in expand_expr_stmt (exp=0x4367ac20) at
../../gcc-4.3-20070727/gcc/expr.h:503
#12 0x004e57c8 in expand_gimple_basic_block (bb=0x424f8640) at
../../gcc-4.3-20070727/gcc/cfgexpand.c:1614
#13 0x004e69dc in tree_expand_cfg () at
../../gcc-4.3-20070727/gcc/cfgexpand.c:1921
#14 0x00291b90 in execute_one_pass (pass=0x80cd00) at
../../gcc-4.3-20070727/gcc/passes.c:1124
#15 0x00291db0 in execute_pass_list (pass=0x80cd00) at
../../gcc-4.3-20070727/gcc/passes.c:1177
#16 0x002ee27c in tree_rest_of_compilation (fndecl=0x43679380) at
../../gcc-4.3-20070727/gcc/tree-optimize.c:405
#17 0x001a02c4 in cgraph_expand_function (node=0x4360b700) at
../../gcc-4.3-20070727/gcc/cgraphunit.c:1072
#18 0x001a1900 in cgraph_assemble_pending_functions () at
../../gcc-4.3-20070727/gcc/cgraphunit.c:435
#19 0x001a1ddc in cgraph_finalize_function (decl=0x43679380, nested=0 '\0') at
../../gcc-4.3-20070727/gcc/cgraphunit.c:552
#20 0x00094998 in gfc_generate_function_code (ns=0x4367a6e0) at
../../gcc-4.3-20070727/gcc/fortran/trans-decl.c:3407
#21 0x00050a8c in gfc_parse_file () at
../../gcc-4.3-20070727/gcc/fortran/parse.c:3287
#22 0x000774a4 in gfc_be_parse_file (set_yydebug=7310268) at
../../gcc-4.3-20070727/gcc/fortran/f95-lang.c:301
#23 0x0011cefc in toplev_main (argc=8365508, argv=0x43106480) at
../../gcc-4.3-20070727/gcc/toplev.c:1043
#24 0x00002330 in _start ()
#25 0x00002034 in start ()

This PR seems to affect the following test (same result under gdb, see
PR32770#16):

gfortran.dg/associated_2_db
gfortran.dg/bounds_check_5.f90
gfortran.dg/der_array_1.f90
gfortran.dg/ret_pointer_1.f90

I greped the gfortran.dg directory for 'associated' and found some tests that
pass, for instance:

gfortran.dg/pointer_intent_1.f90
gfortran.dg/result_default_init_1.f90


-- 
           Summary: char_associated_1_red.f90 gives an ICE with -fdefault-
                    integer-8
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dominiq at lps dot ens dot fr


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32943

Reply via email to