* 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.

Reply via email to