public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/34714]  New: ICE-on-invalid in gfc_conv_descriptor_dtype
@ 2008-01-08 15:16 martin at mpa-garching dot mpg dot de
  2008-01-16 20:47 ` [Bug fortran/34714] " dfranke at gcc dot gnu dot org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: martin at mpa-garching dot mpg dot de @ 2008-01-08 15:16 UTC (permalink / raw)
  To: gcc-bugs

Current trunk (as well as the whole 4.2 branch, it seems), ICEs on the
following invalid code:

module foo
  type bar
    logical, pointer, dimension(:) :: baz
  end type

contains

function func1()
  type(bar) func1
  allocate(func1%baz(1))
end function

function func2()
  type(bar) func2
  allocate(func1%baz(1))
end function

end module foo

~/tmp>gfortran -v bug.f90
Driving: gfortran -v bug.f90 -lgfortranbegin -lgfortran -lm -shared-libgcc
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /scratch/martin/gcc/configure
--prefix=/afs/mpa/data/martin/ugcc --with-mpfr-include=/usr/include
--with-mpfr-lib=/usr/lib --enable-languages=c++,fortran
--enable-checking=release
Thread model: posix
gcc version 4.3.0 20080108 (experimental) [trunk revision 131394] (GCC) 
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic'
 /afs/mpa/data/martin/ugcc/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951 bug.f90
-quiet -dumpbase bug.f90 -mtune=generic -auxbase bug -version
-fintrinsic-modules-path
/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/4.3.0/finclude -o
/tmp/ccOrwEru.s
GNU F95 (GCC) version 4.3.0 20080108 (experimental) [trunk revision 131394]
(i686-pc-linux-gnu)
        compiled by GNU C version 4.3.0 20080108 (experimental) [trunk revision
131394], GMP version 4.2.1, MPFR version 2.3.0.
warning: GMP header version 4.2.1 differs from library version 4.2.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
bug.f90: In function 'func2':
bug.f90:8: internal compiler error: in gfc_conv_descriptor_dtype, at
fortran/trans-array.c:224
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


-- 
           Summary: ICE-on-invalid in gfc_conv_descriptor_dtype
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: martin at mpa-garching dot mpg dot de
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


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

* [Bug fortran/34714] ICE-on-invalid in gfc_conv_descriptor_dtype
  2008-01-08 15:16 [Bug fortran/34714] New: ICE-on-invalid in gfc_conv_descriptor_dtype martin at mpa-garching dot mpg dot de
@ 2008-01-16 20:47 ` dfranke at gcc dot gnu dot org
  2008-03-16 15:56 ` dfranke at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2008-01-16 20:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from dfranke at gcc dot gnu dot org  2008-01-16 20:36 -------
> function func2()
>   type(bar) func2
>   allocate(func1%baz(1))
> end function

Here, func1 needs to be func2 to be correct. Confirmed.

Backtrace:
(gdb) bt
#0  fancy_abort (file=0x87d843c "../../../gcc/gcc/fortran/trans-array.c",
line=224, function=0x87d8e50 "gfc_conv_descriptor_dtype")
    at ../../../gcc/gcc/diagnostic.c:659
#1  0x080d5811 in gfc_conv_descriptor_dtype (desc=0xb7d3c6e0) at
../../../gcc/gcc/fortran/trans-array.c:224
#2  0x080dc8d3 in gfc_array_allocate (se=0xbfd4d74c, expr=0x89ba9e0, pstat=0x0)
at ../../../gcc/gcc/fortran/trans-array.c:3499
#3  0x0810768b in gfc_trans_allocate (code=0x89ba958) at
../../../gcc/gcc/fortran/trans-stmt.c:3809
#4  0x080cfb30 in gfc_trans_code (code=0x89ba958) at
../../../gcc/gcc/fortran/trans.c:1082
#5  0x080e7b52 in gfc_generate_function_code (ns=0x89ba338) at
../../../gcc/gcc/fortran/trans-decl.c:3298
#6  0x080cceaa in gfc_generate_module_code (ns=0x89b8d90) at
../../../gcc/gcc/fortran/trans.c:1214
#7  0x0809f1a9 in gfc_parse_file () at ../../../gcc/gcc/fortran/parse.c:3391
#8  0x080c8815 in gfc_be_parse_file (set_yydebug=0) at
../../../gcc/gcc/fortran/f95-lang.c:260
#9  0x0836c434 in toplev_main (argc=2, argv=0xbfd4daf4) at
../../../gcc/gcc/toplev.c:1042
#10 0x0811493f in main (argc=2097162, argv=0x0) at ../../../gcc/gcc/main.c:35


-- 

dfranke at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dfranke at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-01-16 20:36:53
               date|                            |


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


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

* [Bug fortran/34714] ICE-on-invalid in gfc_conv_descriptor_dtype
  2008-01-08 15:16 [Bug fortran/34714] New: ICE-on-invalid in gfc_conv_descriptor_dtype martin at mpa-garching dot mpg dot de
  2008-01-16 20:47 ` [Bug fortran/34714] " dfranke at gcc dot gnu dot org
@ 2008-03-16 15:56 ` dfranke at gcc dot gnu dot org
  2008-03-28 22:58 ` dfranke at gcc dot gnu dot org
  2008-03-28 23:02 ` dfranke at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2008-03-16 15:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from dfranke at gcc dot gnu dot org  2008-03-16 15:55 -------
> function func2()
>   type(bar) func2
>   allocate(func1%baz(1))
> end function

In primary.c(match_variable), case FL_PROCEDURE, we here have a function that
satisfies the first if-clause, but does not trigger the second. Hence,
code-flow squirrels down to the handling of variables, instead of bailing out
with an not-a-variable error.

Btw, if func1 is defined with a RESULT variable instead, we produce the
expected error ^^


-- 

dfranke at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |dfranke at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-01-16 20:36:53         |2008-03-16 15:55:37
               date|                            |


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


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

* [Bug fortran/34714] ICE-on-invalid in gfc_conv_descriptor_dtype
  2008-01-08 15:16 [Bug fortran/34714] New: ICE-on-invalid in gfc_conv_descriptor_dtype martin at mpa-garching dot mpg dot de
  2008-01-16 20:47 ` [Bug fortran/34714] " dfranke at gcc dot gnu dot org
  2008-03-16 15:56 ` dfranke at gcc dot gnu dot org
@ 2008-03-28 22:58 ` dfranke at gcc dot gnu dot org
  2008-03-28 23:02 ` dfranke at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2008-03-28 22:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from dfranke at gcc dot gnu dot org  2008-03-28 22:58 -------
Subject: Bug 34714

Author: dfranke
Date: Fri Mar 28 22:57:25 2008
New Revision: 133701

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133701
Log:
gcc/fortran:
2008-03-28  Daniel Franke  <franke.daniel@gmail.com>
            Paul Richard Thomas <paul.richard.thomas@gmail.com>

        PR fortran/34714
        * primary.c (match_variable): Improved matching of function
        result variables.
        * resolve.c (resolve_allocate_deallocate): Removed checks if
        the actual argument for STAT is a variable.

gcc/testsuite:
2008-03-28  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/34714
        * gfortran.dg/alloc_alloc_expr_3.f90: New test.
        * gfortran.dg/allocate_stat.f90: Adjusted error-match text.
        * gfortran.dg/func_assign.f90: Likewise.
        * gfortran.dg/implicit_11.f90: Likewise.
        * gfortran.dg/proc_assign_1.f90: Likewise.
        * gfortran.dg/proc_assign_2.f90: Likewise.
        * gfortran.dg/procedure_lvalue.f90: Likewise.



Added:
    trunk/gcc/testsuite/gfortran.dg/alloc_alloc_expr_3.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/primary.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/allocate_stat.f90
    trunk/gcc/testsuite/gfortran.dg/func_assign.f90
    trunk/gcc/testsuite/gfortran.dg/implicit_11.f90
    trunk/gcc/testsuite/gfortran.dg/proc_assign_1.f90
    trunk/gcc/testsuite/gfortran.dg/proc_assign_2.f90
    trunk/gcc/testsuite/gfortran.dg/procedure_lvalue.f90


-- 


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


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

* [Bug fortran/34714] ICE-on-invalid in gfc_conv_descriptor_dtype
  2008-01-08 15:16 [Bug fortran/34714] New: ICE-on-invalid in gfc_conv_descriptor_dtype martin at mpa-garching dot mpg dot de
                   ` (2 preceding siblings ...)
  2008-03-28 22:58 ` dfranke at gcc dot gnu dot org
@ 2008-03-28 23:02 ` dfranke at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2008-03-28 23:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dfranke at gcc dot gnu dot org  2008-03-28 23:02 -------
Fixed in trunk, no backport. Closing.


-- 

dfranke at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
           Keywords|patch                       |
      Known to work|                            |4.4.0
         Resolution|                            |FIXED
   Target Milestone|---                         |4.4.0


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


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

end of thread, other threads:[~2008-03-28 23:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-08 15:16 [Bug fortran/34714] New: ICE-on-invalid in gfc_conv_descriptor_dtype martin at mpa-garching dot mpg dot de
2008-01-16 20:47 ` [Bug fortran/34714] " dfranke at gcc dot gnu dot org
2008-03-16 15:56 ` dfranke at gcc dot gnu dot org
2008-03-28 22:58 ` dfranke at gcc dot gnu dot org
2008-03-28 23:02 ` dfranke at gcc dot gnu dot 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).