[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-09-09 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-09 
09:06 ---
Subject: Bug 16511

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-09-09 09:06:09

Modified files:
gcc/fortran: gfortran.h match.h match.c module.c primary.c 
 trans-common.c trans-decl.c ChangeLog 
gcc/testsuite/gfortran.dg/g77: 19990905-0.f 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gfortran.dg: module_blank_common.f90 
   module_double_reuse.f90 
   common_equivalence_1.f 
   common_equivalence_2.f 
   common_equivalence_3.f 
   contained_equivalence_1.f90 
   module_commons_1.f90 
   module_equivalence_1.f90 
   nested_modules_1.f90 

Log message:
2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/18878
* module.c (find_use_name_n): Based on original
find_use_name. Either counts number of use names for a
given real name or returns use name n.
(find_use_name, number_use_names): Interfaces to the
function find_use_name_n.
(read_module): Add the logic and calls to these functions,
so that mutiple reuses of the same real name are loaded.

2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/22304
PR fortran/23270
PR fortran/18870
PR fortran/16511
PR fortran/17917
* gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
common.c so that it is accessible to module.c. Add common_head
field to gfc_symbol structure. Add field for the equivalence
name AND new attr field, in_equivalence.
* match.c (gfc_match_common, gfc_match_equivalence): In loops
that flag common block equivalences, emit an error if the
common blocks are different, using sym-common_head as the
common block identifier. Ensure that symbols that are equivalence
associated with a common block are marked as being in_common.
* module.c (write_blank_common): New.
(write_common): Use unmangled common block name.
(load_equiv): New function ported from g95.
(read_module): Call load_equiv.
(write_equiv): New function ported from g95. Correct
string referencing for gfc functions. Give module
equivalences a unique name.
(write_module): Call write_equiv and write_blank_common.
* primary.c (match_variable) Old gfc_match_variable, made
static and third argument provided to indicate if parent
namespace to be visited or not.
(gfc_match_variable): New. Interface to match_variable.
(gfc_match_equiv_variable): New. Interface to match_variable.
* trans-common.c (finish_equivalences): Provide the call
to create_common with a gfc_common_header so that
module equivalences are made external, rather than local.
(find_equivalences): Ensure that all members in common block
equivalences are marked as used. This prevents the subsequent
call to this function from making local unions.
* trans-decl.c (gfc_generate_function_code): Move the call to
gfc_generate_contained_functions to after the call to
gfc_trans_common so the use-associated, contained common
blocks produce the correct references.
(gfc_create_module_variable): Return for equivalenced symbols
with existing backend declaration.

2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/18878
* gfortran.dg/module_double_reuse.f90: New.

2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/23270
PR fortran/22304
PR fortran/18870
PR fortran/17917
PR fortran/16511
* gfortran.dg/common_equivalence_1.f: New.
* gfortran.dg/common_equivalence_2.f: New.
* gfortran.dg/common_equivalence_3.f: New.
* gfortran.dg/contained_equivalence_1.f90: New.
* gfortran.dg/module_blank_common.f90: New.
* gfortran.dg/module_commons_1.f90: New.
* gfortran.dg/module_equivalence_1.f90: New.
* gfortran.dg/nested_modules_1.f90: New.
* gfortran.dg/g77/19990905-0.f: Remove XFAIL, rearrange
equivalences and add comment to connect the test with
the PR.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.58.2.16r2=1.58.2.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/match.h.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.10.36.1r2=1.10.36.2

[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-09-09 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-09 
22:15 ---
Fixed.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.0.2


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


[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-09-08 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-09 
00:24 ---
Subject: Bug 16511

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-09 00:23:18

Modified files:
gcc/fortran: gfortran.h match.c module.c primary.c 
 trans-common.c trans-decl.c ChangeLog 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gfortran.dg: module_blank_common.f90 
   module_double_reuse.f90 
   common_equivalence_1.f 
   common_equivalence_2.f 
   common_equivalence_3.f 
   contained_equivalence_1.f90 
   module_commons_1.f90 
   module_equivalence_1.f90 
   nested_modules_1.f90 

Log message:
2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/18878
* module.c (find_use_name_n): Based on original
find_use_name. Either counts number of use names for a
given real name or returns use name n.
(find_use_name, number_use_names): Interfaces to the
function find_use_name_n.
(read_module): Add the logic and calls to these functions,
so that mutiple reuses of the same real name are loaded.

2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/22304
PR fortran/23270
PR fortran/18870
PR fortran/16511
PR fortran/17917
* gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
common.c so that it is accessible to module.c. Add common_head
field to gfc_symbol structure. Add field for the equivalence
name AND new attr field, in_equivalence.
* match.c (gfc_match_common, gfc_match_equivalence): In loops
that flag common block equivalences, emit an error if the
common blocks are different, using sym-common_head as the
common block identifier. Ensure that symbols that are equivalence
associated with a common block are marked as being in_common.
* module.c (write_blank_common): New.
(write_common): Use unmangled common block name.
(load_equiv): New function ported from g95.
(read_module): Call load_equiv.
(write_equiv): New function ported from g95. Correct
string referencing for gfc functions. Give module
equivalences a unique name.
(write_module): Call write_equiv and write_blank_common.
* primary.c (match_variable) Old gfc_match_variable, made
static and third argument provided to indicate if parent
namespace to be visited or not.
(gfc_match_variable) New. Interface to match_variable.
(gfc_match_equiv_variable) New. Interface to match_variable.
* trans-common.c (finish_equivalences): Provide the call
to create_common with a gfc_common_header so that
module equivalences are made external, rather than local.
(find_equivalences): Ensure that all members in common block
equivalences are marked as used. This prevents the subsequent
call to this function from making local unions.
* trans-decl.c (gfc_generate_function_code): Move the call to
gfc_generate_contained_functions to after the call to
gfc_trans_common so the use-associated, contained common
blocks produce the correct references.
(gfc_create_module_variable): Return for equivalenced symbols
with existing backend declaration.

2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/18878
* gfortran.dg/module_double_reuse.f90: New.

2005-09-09  Paul Thomas  [EMAIL PROTECTED]

PR fortran/23270
PR fortran/22304
PR fortran/18870
PR fortran/17917
PR fortran/16511
* gfortran.dg/common_equivalence_1.f: New.
* gfortran.dg/common_equivalence_2.f: New.
* gfortran.dg/common_equivalence_3.f: New.
* gfortran.dg/contained_equivalence_1.f90: New.
* gfortran.dg/module_blank_common.f90: New.
* gfortran.dg/module_commons_1.f90: New.
* gfortran.dg/module_equivalence_1.f90: New.
* gfortran.dg/nested_modules_1.f90: New.
* gfortran.dg/g77/19990905-0.f: Remove XFAIL, rearrange
equivalences and add comment to connect the test with
the PR.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gccr1=1.84r2=1.85
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/match.c.diff?cvsroot=gccr1=1.44r2=1.45
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/module.c.diff?cvsroot=gccr1=1.35r2=1.36
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/primary.c.diff?cvsroot=gccr1=1.35r2=1.36

[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-03-10 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-10 
14:38 ---
This is an equivalenced problem so linking to 20405

-- 


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


[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-03-10 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-10 
14:39 ---
The way I came to that conclusion was the following code worked:
c { dg-do compile }
  subroutine sub(a)
  common /info/ m, n
  real a(m,n)
  a(1,1) = a(2,2)
  end

-- 


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


[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-01-06 Thread tobi at gcc dot gnu dot org


-- 
   What|Removed |Added

OtherBugsDependingO||19292
  nThis||


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


[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-01-06 Thread coudert at clipper dot ens dot fr

--- Additional Comments From coudert at clipper dot ens dot fr  2005-01-06 
15:56 ---
The reduced case given in comment #9 fails to compile with Intel compiler (This
entity cannot be in a specification expression), Sun (Local variable M must
be a dummy argument or in common to be used in a bounds specification
expression) and NEC (Variable m in specification expression is invalid). It
compiles with Portland and MIPSpro compilers.

However, the inital (comment #0) snippet compiles fine on all compilers
mentionned above. So I guess the common block as something to do with it.

-- 
   What|Removed |Added

 CC||coudert at clipper dot ens
   ||dot fr


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


[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2005-01-06 Thread tobi at gcc dot gnu dot org

--- Additional Comments From tobi at gcc dot gnu dot org  2005-01-06 16:11 
---
(In reply to comment #9)
 However, the inital (comment #0) snippet compiles fine on all compilers
 mentionned above. So I guess the common block as something to do with it.

Indeed, the common block makes this code legal, the code in #9 is rightfully
rejected by gfortran.



-- 


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


[Bug fortran/16511] Test 19990905-0.f fails with gfortran

2004-12-10 Thread paulthomas2 at wanadoo dot fr

--- Additional Comments From paulthomas2 at wanadoo dot fr  2004-12-10 
08:56 ---
(In reply to comment #7)

The COMMON block has nothing to do with the problem:

subroutine sub(a)
  integer :: m=2,n=2
  real a(m,n)
end subroutine sub

Fails to compile too, with the same message.

-- 


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