public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/37201] New: ICE
@ 2008-08-22 13:48 francois dot jacq at irsn dot fr
2008-08-23 13:09 ` [Bug fortran/37201] ICE tkoenig at gcc dot gnu dot org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: francois dot jacq at irsn dot fr @ 2008-08-22 13:48 UTC (permalink / raw)
To: gcc-bugs
$ gfortran odcdir.f90 cdir.o
odcdir.f90: In function 'test':
odcdir.f90:16: internal compiler error: in gfc_conv_string_parameter, at
fortran/trans-expr.c:4009
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
file : odcdir.f90
MODULE mod
INTERFACE
FUNCTION cdir() BIND(C,name="cdir") RESULT(r)
USE iso_c_binding
CHARACTER(kind=C_CHAR) :: r
END FUNCTION
END INTERFACE
CONTAINS
function odcdir() RESULT(c)
CHARACTER :: c
c=cdir()
end function
END MODULE
PROGRAM test
USE mod
WRITE(*,*) ICHAR(odcdir())
WRITE(*,*) ICHAR(cdir())
END PROGRAM
file cdir.c
char cdir(void){return '/';}
--
Summary: ICE
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: francois dot jacq at irsn dot fr
GCC build triplet: GNU Fortran (GCC) 4.4.0 20080821 (experimental) [trunk
revision
GCC host triplet: i686 GNU/Linux, kernel 2.6.22.1
GCC target triplet: 4.4.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/37201] ICE
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
@ 2008-08-23 13:09 ` tkoenig at gcc dot gnu dot org
2008-08-23 16:56 ` [Bug fortran/37201] ICE in in gfc_conv_string_parameter jvdelisle at gcc dot gnu dot org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-08-23 13:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from tkoenig at gcc dot gnu dot org 2008-08-23 13:07 -------
Confirmed.
Reduced test case:
program test
INTERFACE
FUNCTION cdir() BIND(C,name="cdir") RESULT(r)
CHARACTER(kind=1) :: r
END FUNCTION
END INTERFACE
WRITE(*,*) ICHAR(cdir())
END PROGRAM
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
OtherBugsDependingO| |32630
nThis| |
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
GCC host triplet|i686 GNU/Linux, kernel |
|2.6.22.1 |
Last reconfirmed|0000-00-00 00:00:00 |2008-08-23 13:07:50
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/37201] ICE in in gfc_conv_string_parameter
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
2008-08-23 13:09 ` [Bug fortran/37201] ICE tkoenig at gcc dot gnu dot org
@ 2008-08-23 16:56 ` jvdelisle at gcc dot gnu dot org
2008-08-23 19:15 ` burnus at gcc dot gnu dot org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-08-23 16:56 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from jvdelisle at gcc dot gnu dot org 2008-08-23 16:54 -------
Needed a little better summary
--
jvdelisle at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|ICE |ICE in in
| |gfc_conv_string_parameter
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/37201] ICE in in gfc_conv_string_parameter
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
2008-08-23 13:09 ` [Bug fortran/37201] ICE tkoenig at gcc dot gnu dot org
2008-08-23 16:56 ` [Bug fortran/37201] ICE in in gfc_conv_string_parameter jvdelisle at gcc dot gnu dot org
@ 2008-08-23 19:15 ` burnus at gcc dot gnu dot org
2008-08-23 19:46 ` burnus at gcc dot gnu dot org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-08-23 19:15 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from burnus at gcc dot gnu dot org 2008-08-23 19:13 -------
*** Bug 37205 has been marked as a duplicate of this bug. ***
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/37201] ICE in in gfc_conv_string_parameter
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
` (2 preceding siblings ...)
2008-08-23 19:15 ` burnus at gcc dot gnu dot org
@ 2008-08-23 19:46 ` burnus at gcc dot gnu dot org
2008-08-24 17:19 ` burnus at gcc dot gnu dot org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-08-23 19:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from burnus at gcc dot gnu dot org 2008-08-23 19:45 -------
Actually, removing the assert
--- /home/tob/projects/gcc/gcc/fortran/trans-expr.c (Revision 139520)
+++ /home/tob/projects/gcc/gcc/fortran/trans-expr.c
@@ -4008,2 +4008,0 @@ gfc_conv_string_parameter (gfc_se * se)
- gcc_assert (se->string_length
- && TREE_CODE (TREE_TYPE (se->string_length)) == INTEGER_TYPE);
is enough for assignments. Proof:
str[1]{lb: 1 sz: 1} = cdir (); ! str = cdir()
i = (integer(kind=4)) cdir (); ! i = ichar(cdir())
TODO: Come up with a better assert which works also in this case.
* * *
For I/O one also needs the following:
--- trans-io.c (Revision 139521)
+++ trans-io.c
@@ -2071,2 +2071,6 @@ transfer_expr (gfc_se * se, gfc_typespec
- gcc_assert (TREE_CODE (TREE_TYPE (tmp)) == ARRAY_TYPE);
- arg2 = TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (tmp)));
+
+ /* BIND(C) function return value. */
+ if (TREE_CODE (TREE_TYPE (tmp)) != ARRAY_TYPE)
+ arg2 = build_int_cst (gfc_charlen_type_node, 1);
+ else
+ arg2 = TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (tmp)));
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/37201] ICE in in gfc_conv_string_parameter
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
` (3 preceding siblings ...)
2008-08-23 19:46 ` burnus at gcc dot gnu dot org
@ 2008-08-24 17:19 ` burnus at gcc dot gnu dot org
2008-08-24 20:33 ` burnus at gcc dot gnu dot org
2008-08-24 20:33 ` burnus at gcc dot gnu dot org
6 siblings, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-08-24 17:19 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from burnus at gcc dot gnu dot org 2008-08-24 17:18 -------
Subject: Bug 37201
Author: burnus
Date: Sun Aug 24 17:16:46 2008
New Revision: 139537
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139537
Log:
2008-08-24 Tobias Burnus <burnus@net-b.de>
PR fortran/37201
* trans-expr.c (gfc_conv_function_call): Add string_length
for character-returning bind(C) functions.
2008-08-24 Tobias Burnus <burnus@net-b.de>
PR fortran/37201
* gfortran.dg/bind_c_usage_17.f90: New.
* gfortran.dg/bind_c_usage_17_c.c: New.
Added:
trunk/gcc/testsuite/gfortran.dg/bind_c_usage_17.f90
trunk/gcc/testsuite/gfortran.dg/bind_c_usage_17_c.c
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/37201] ICE in in gfc_conv_string_parameter
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
` (4 preceding siblings ...)
2008-08-24 17:19 ` burnus at gcc dot gnu dot org
@ 2008-08-24 20:33 ` burnus at gcc dot gnu dot org
2008-08-24 20:33 ` burnus at gcc dot gnu dot org
6 siblings, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-08-24 20:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from burnus at gcc dot gnu dot org 2008-08-24 20:32 -------
Subject: Bug 37201
Author: burnus
Date: Sun Aug 24 20:31:09 2008
New Revision: 139545
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139545
Log:
2008-08-24 Tobias Burnus <burnus@net-b.de>
PR fortran/37201
* decl.c (verify_bind_c_sym): Reject array/string returning
functions.
2008-08-24 Tobias Burnus <burnus@net-b.de>
PR fortran/37201
* gfortran.dg/bind_c_18.f90: New.
Added:
trunk/gcc/testsuite/gfortran.dg/bind_c_18.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/37201] ICE in in gfc_conv_string_parameter
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
` (5 preceding siblings ...)
2008-08-24 20:33 ` burnus at gcc dot gnu dot org
@ 2008-08-24 20:33 ` burnus at gcc dot gnu dot org
6 siblings, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-08-24 20:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from burnus at gcc dot gnu dot org 2008-08-24 20:31 -------
FIXED on the trunk (4.4).
Thanks for reporting the bug.
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37201
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-08-24 20:33 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-22 13:48 [Bug fortran/37201] New: ICE francois dot jacq at irsn dot fr
2008-08-23 13:09 ` [Bug fortran/37201] ICE tkoenig at gcc dot gnu dot org
2008-08-23 16:56 ` [Bug fortran/37201] ICE in in gfc_conv_string_parameter jvdelisle at gcc dot gnu dot org
2008-08-23 19:15 ` burnus at gcc dot gnu dot org
2008-08-23 19:46 ` burnus at gcc dot gnu dot org
2008-08-24 17:19 ` burnus at gcc dot gnu dot org
2008-08-24 20:33 ` burnus at gcc dot gnu dot org
2008-08-24 20:33 ` burnus 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).