Bug 29322 - [4.1/4.2 Regression] ICE with character optional arg
Summary: [4.1/4.2 Regression] ICE with character optional arg
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: fortran (show other bugs)
Version: 4.2.0
: P3 normal
Target Milestone: 4.1.2
Assignee: Paul Thomas
URL:
Keywords: ice-on-valid-code
Depends on: 29284
Blocks:
  Show dependency treegraph
 
Reported: 2006-10-02 15:20 UTC by Francois-Xavier Coudert
Modified: 2006-10-03 20:15 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2006-10-03 11:11:09


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Francois-Xavier Coudert 2006-10-02 15:20:46 UTC
$ cat u.f90 
  if (isscan () /= 0) call abort
contains
  integer function isscan (substr)
    character(*), optional :: substr
    if (.not.present(substr)) isscan = myscan ("foo", "over")
  end function isscan
end
$ gfortran u.f90 
u.f90: In function ‘MAIN__’:
u.f90:5: internal compiler error: Segmentation fault
Comment 1 Andrew Pinski 2006-10-02 17:50:29 UTC
Confirmed, I think this is a dup of bug 29284, well it is at least related.
Comment 2 Paul Thomas 2006-10-03 11:11:09 UTC
I submitted a fix for this today.

Paul
Comment 3 Paul Thomas 2006-10-03 20:13:20 UTC
Subject: Bug 29322

Author: pault
Date: Tue Oct  3 20:13:03 2006
New Revision: 117413

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117413
Log:
2006-10-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29284
	PR fortran/29321
	PR fortran/29322
	* trans-expr.c (gfc_conv_function_call): Check the expression
	and the formal symbol are present when testing the actual
	argument.

	PR fortran/25091
	PR fortran/25092
	* resolve.c (resolve_entries): It is an error if the entries
	of an array-valued function do not have the same shape.

2006-10-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29284
	* gfortran.dg/optional_assumed_charlen_1.f90: New test.

	PR fortran/29321
	PR fortran/29322
	* gfortran.dg/missing_optional_dummy_2.f90: New test.

	PR fortran/25091
	PR fortran/25092
	* gfortran.dg/entry_array_specs_1.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/entry_array_specs_1.f90
    trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90
    trunk/gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/testsuite/ChangeLog

Comment 4 Paul Thomas 2006-10-03 20:15:33 UTC
Fixed on trunk

Paul
Comment 5 Francois-Xavier Coudert 2006-10-24 08:06:23 UTC
Subject: Bug 29322

Author: fxcoudert
Date: Tue Oct 24 08:05:55 2006
New Revision: 117996

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117996
Log:
A bunch of backports:

	PR fortran/29284
	PR fortran/29321
	PR fortran/29322
	* trans-expr.c (gfc_conv_function_call): Check the expression
	and the formal symbol are present when testing the actual
	argument.

	PR fortran/25091
	PR fortran/25092
	* resolve.c (resolve_entries): It is an error if the entries
	of an array-valued function do not have the same shape.

	PR fortran/29284
	* gfortran.dg/optional_assumed_charlen_1.f90: New test.

	PR fortran/29321
	PR fortran/29322
	* gfortran.dg/missing_optional_dummy_2.f90: New test.

	PR fortran/25091
	PR fortran/25092
	* gfortran.dg/entry_array_specs_1.f90: New test.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/entry_array_specs_1.f90
      - copied unchanged from r117413, trunk/gcc/testsuite/gfortran.dg/entry_array_specs_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90
      - copied unchanged from r117413, trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90
      - copied unchanged from r117413, trunk/gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90
Modified:
    branches/gcc-4_1-branch/gcc/fortran/ChangeLog
    branches/gcc-4_1-branch/gcc/fortran/resolve.c
    branches/gcc-4_1-branch/gcc/fortran/trans-expr.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog