public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/55362] New: [4.6/4.7/4.8 Regression] ICE with size() on character pointer
@ 2012-11-17 10:36 dominiq at lps dot ens.fr
  2012-11-17 10:39 ` [Bug fortran/55362] " dominiq at lps dot ens.fr
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: dominiq at lps dot ens.fr @ 2012-11-17 10:36 UTC (permalink / raw)
  To: gcc-bugs


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

             Bug #: 55362
           Summary: [4.6/4.7/4.8 Regression] ICE with size() on character
                    pointer
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: dominiq@lps.ens.fr


>From http://gcc.gnu.org/ml/fortran/2012-11/msg00034.html
the following test

program ice_test
  implicit none
  write(*,*) 'message: ', size(Error_Msg),Error_Msg()
contains
  function Error_Msg() result(ErrorMsg)
    character, dimension(:), pointer :: ErrorMsg
    character, dimension(1), target :: str = '!'
    ErrorMsg => str
  end function Error_Msg
end program ice_test

gives an ICE when compiled with 4.6.3, 4.7.2

error_msg.f90:3:0: internal compiler error: in gfc_conv_intrinsic_size, at
fortran/trans-intrinsic.c:4427 (4.6) or 5059 (4.7)

and trunk (r193382)

error_msg.f90:3:0: internal compiler error: in gfc_conv_expr_descriptor, at
fortran/trans-array.c:6417
   write(*,*) 'message: ', size(Error_Msg),Error_Msg()

while 4.5.3 gives an error

error_msg.f90:3.31:

  write(*,*) 'message: ', size(Error_Msg),Error_Msg()
                               1
Error: Internal procedure 'error_msg' is not allowed as an actual argument at
(1)

In all cases the ICE occurs in gfc_conv_intrinsic_size (4.6/4.7) or
gfc_conv_expr_descriptor (4.8) at

  gcc_assert (ss != gfc_ss_terminator);

Revision 163532 (2010-08-24) gives the error; revision 163841 (2010-09-03)
gives the ICE (a lot of changes in this range: f2008 intrinsics and float_128).

The backtrace for 4.6 revision 182981 is

#1  0x00000001000e62f6 in gfc_conv_intrinsic_function (se=0x7fff5fbfd2a0,
expr=0x141d0d870) at ../../p6_work/gcc/fortran/trans-intrinsic.c:4427
#2  0x00000001000d7043 in gfc_conv_function_expr (se=0x7fff5fbfd2a0,
expr=<value optimized out>) at ../../p6_work/gcc/fortran/trans-expr.c:4064
#3  0x00000001000d1b33 in gfc_conv_expr_reference (se=0x7fff5fbfd2a0,
expr=<value optimized out>) at ../../p6_work/gcc/fortran/trans-expr.c:4889
#4  0x00000001000eabcf in gfc_trans_transfer (code=0x141d0dba0) at
../../p6_work/gcc/fortran/trans-io.c:2314
#5  0x00000001000b01e8 in trans_code (code=0x141d0dba0, cond=0x141c61498) at
../../p6_work/gcc/fortran/trans.c:1382
#6  0x00000001000e8896 in build_dt (function=0x141ef8800, code=0x141d0df60) at
../../p6_work/gcc/fortran/trans-io.c:1838
#7  0x00000001000b0228 in trans_code (code=0x141d0df60, cond=0x0) at
../../p6_work/gcc/fortran/trans.c:1354
#8  0x00000001000caa81 in gfc_generate_function_code (ns=<value optimized out>)
at ../../p6_work/gcc/fortran/trans-decl.c:4827
#9  0x000000010006ff1c in gfc_parse_file () at
../../p6_work/gcc/fortran/parse.c:4265
#10 0x00000001000aba36 in gfc_be_parse_file () at
../../p6_work/gcc/fortran/f95-lang.c:250
#11 0x0000000100626b3e in toplev_main (argc=2, argv=0x7fff5fbfd7a8) at
../../p6_work/gcc/toplev.c:579

and for trunk revision 193329

#12 0x00000001000d9162 in gfc_conv_expr_descriptor (se=<value optimized out>,
expr=<value optimized out>)
    at ../../p_work/gcc/fortran/trans-array.c:6417
#13 0x00000001000f827d in gfc_conv_intrinsic_size (se=<value optimized out>,
expr=<value optimized out>)
    at ../../p_work/gcc/fortran/trans-intrinsic.c:5052
#14 0x0000000100104ee6 in gfc_conv_intrinsic_function (se=<value optimized
out>, expr=<value optimized out>)
    at ../../p_work/gcc/fortran/trans-intrinsic.c:6763
#15 0x00000001000eff59 in gfc_conv_expr (se=<value optimized out>, expr=<value
optimized out>) at ../../p_work/gcc/fortran/trans-expr.c:5408
#16 0x00000001000f4226 in gfc_conv_expr_reference (se=<value optimized out>,
expr=<value optimized out>)
    at ../../p_work/gcc/fortran/trans-expr.c:6244
#17 0x000000010010b890 in gfc_trans_transfer (code=0x141514b00) at
../../p_work/gcc/fortran/trans-io.c:2307
#18 0x00000001000c7d88 in trans_code (code=0x141514b00, cond=0x141b0ee88) at
../../p_work/gcc/fortran/trans.c:1510
#19 0x0000000100109666 in build_dt (function=0x141b09e00, code=0x141514ec0) at
../../p_work/gcc/fortran/trans-io.c:1831
#20 0x00000001000c7da8 in trans_code (code=0x141514ec0, cond=0x0) at
../../p_work/gcc/fortran/trans.c:1482
#21 0x00000001000e6b14 in gfc_generate_function_code (ns=<value optimized out>)
at ../../p_work/gcc/fortran/trans-decl.c:5349
#22 0x000000010008435c in gfc_parse_file () at
../../p_work/gcc/fortran/parse.c:4467
#23 0x00000001000c3e86 in gfc_be_parse_file () at
../../p_work/gcc/fortran/f95-lang.c:191
#24 0x0000000100669989 in compile_file () at ../../p_work/gcc/toplev.c:544
#25 0x000000010066b7e9 in toplev_main(int, char**) (argc=2,
argv=0x7fff5fbfd780) at ../../p_work/gcc/toplev.c:1797
#26 0x000000010000a7c4 in start (pc=<value optimized out>, bases=0x0) at
../../../p_work/libgcc/config/unwind-dw2-fde-darwin.c:271


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

end of thread, other threads:[~2013-03-11 17:43 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-17 10:36 [Bug fortran/55362] New: [4.6/4.7/4.8 Regression] ICE with size() on character pointer dominiq at lps dot ens.fr
2012-11-17 10:39 ` [Bug fortran/55362] " dominiq at lps dot ens.fr
2012-12-11 10:39 ` rguenth at gcc dot gnu.org
2012-12-11 14:46 ` burnus at gcc dot gnu.org
2013-01-12 16:11 ` pault at gcc dot gnu.org
2013-02-09  9:50 ` pault at gcc dot gnu.org
2013-02-09  9:55 ` [Bug fortran/55362] [4.6/4.7 " pault at gcc dot gnu.org
2013-03-02 17:25 ` mikael at gcc dot gnu.org
2013-03-03 18:09 ` paul.richard.thomas at gmail dot com
2013-03-10 18:35 ` pault at gcc dot gnu.org
2013-03-10 20:15 ` pault at gcc dot gnu.org
2013-03-10 21:03 ` pault at gcc dot gnu.org
2013-03-11  6:20 ` izamyatin at gmail dot com
2013-03-11  8:31 ` burnus at gcc dot gnu.org
2013-03-11 17:43 ` dominiq at lps dot ens.fr

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).