* PING *
Patches in this trilogy:
* http://gcc.gnu.org/ml/fortran/2013-05/msg00048.html - COMMON
* http://gcc.gnu.org/ml/fortran/2013-05/msg00051.html - PROCEDURE
* http://gcc.gnu.org/ml/fortran/2013-05/msg00056.html - more on bind
label handling
Especially the first one should be rather simple to review.
Tobias
On May 13, 2013 Tobias Burnus wrote:
First, it adds a missing -std=f95 check for Fortran 2003's BIND(C)
statement.
Secondly, it honors the COMMON identifier changes of Fortran 2008. In
Fortran 2003, one has:
"The name of a program unit, common block, or external procedure is a
global identifier and shall not be the same as the name of any other
such global entity in the same program." (16.1 Scope of global
identifiers)
In Fortran 2008 it has been modified to:
"The name of a common block with no binding label, external procedure
with no binding label, or program unit that is not a submodule is a
global identifier." (16.2 Scope of global identifiers)
Thus, this patch only generates a "gsym" if a common block either has
no binding label or -std=f2003 is used. Additionally, it ensures in
trans-common.c that this is correctly handled.
Build and regtested on x86-64-gnu-linux.
OK for the trunk?
Tobias
PS: Still to be done is a similar change for procedures. Except that
for procedures even more changes are required, e.g. having two
identical INTERFACE (with different Fortran name but same binding
name) is valid.