https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78258
Bug ID: 78258 Summary: ICE in compare_values_warnv, at tree-vrp.c:1218 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gerhard.steinmetz.fort...@t-online.de Target Milestone: --- Version 7 (configured with --enable-checking=yes) ICEs at -Os,-O2,-O3. $ cat z1.f90 program p implicit none call sub (1, 'abcd') call sub (2, x4=4, x3='1234567') contains subroutine sub (x1, x2, x3, x4) integer, intent(in) :: x1 character(4), optional :: x2 character(8), optional :: x3 integer, optional :: x4 if ( x1 == 1 ) then if ( x2 /= 'abcd' ) call abort else if ( x3 /= '1234567' ) call abort if ( x4 /= 4 ) call abort end if end end $ gfortran-7-20161106 -O2 z1.f90 z1.f90:4:25: call sub (2, x4=4, x3='1234567') 1 Warning: Character length of actual argument shorter than of dummy argument 'x3' (7/8) at (1) [-Wargument-mismatch] z1.f90:4:0: call sub (2, x4=4, x3='1234567') internal compiler error: in compare_values_warnv, at tree-vrp.c:1218 0xeb46fa compare_values_warnv ../../gcc/tree-vrp.c:1217 0xeb481c compare_values ../../gcc/tree-vrp.c:1361 0xeb4f37 set_value_range ../../gcc/tree-vrp.c:366 0xeb817b vrp_meet_1 ../../gcc/tree-vrp.c:8722 0xeb817b vrp_meet(value_range*, value_range const*) ../../gcc/tree-vrp.c:8745 0x1326d45 ipcp_vr_lattice::meet_with_1(value_range const*) ../../gcc/ipa-cp.c:909 0x1329e40 ipcp_vr_lattice::meet_with(value_range const*) ../../gcc/ipa-cp.c:891 0x1329e40 propagate_vr_accross_jump_function ../../gcc/ipa-cp.c:1872 0x1329e40 propagate_constants_accross_call ../../gcc/ipa-cp.c:2232 0x132d6dc propagate_constants_topo ../../gcc/ipa-cp.c:3127 0x132d6dc ipcp_propagate_stage ../../gcc/ipa-cp.c:3237 0x132fffd ipcp_driver ../../gcc/ipa-cp.c:4967 0x132fffd execute ../../gcc/ipa-cp.c:5061