This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch, Fortran, OOP] PR 49112: [4.6/4.7 Regression] Missing type-bound procedure, "duplicate save" warnings and internal compiler error


Hi all,

while I continue working on some of the yet unsolved parts of this PR,
I'm already posting a simple patch which fixes the part with
"duplicate save" warnings on CLASS variables (which is a regression on
4.6 and trunk). The warnings are silenced by making the vtab and
default initialization symbols SAVE_IMPLICIT (right now they falsely
are SAVE_EXPLICIT). This is a pretty obvious fix, and rather safe to
apply to trunk, I think.

However, I would also like to apply it to the 4.6 branch (which was
frozen a few hours ago). Is there any chance to get approval by the
RM's for this?

In any case, the patch was regtested on x86_64-unknown-linux-gnu. I'll
commit to trunk as obvious tomorrow.

Cheers,
Janus


2011-06-21  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49112
	* class.c (gfc_find_derived_vtab): Make vtab and default initialization
	symbols SAVE_IMPLICIT.

2011-06-21  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49112
	* gfortran.dg/class_44.f03: New.
Index: gcc/fortran/class.c
===================================================================
--- gcc/fortran/class.c	(revision 175227)
+++ gcc/fortran/class.c	(working copy)
@@ -428,7 +428,7 @@ gfc_find_derived_vtab (gfc_symbol *derived)
 	                      &gfc_current_locus) == FAILURE)
 	    goto cleanup;
 	  vtab->attr.target = 1;
-	  vtab->attr.save = SAVE_EXPLICIT;
+	  vtab->attr.save = SAVE_IMPLICIT;
 	  vtab->attr.vtab = 1;
 	  vtab->attr.access = ACCESS_PUBLIC;
 	  gfc_set_sym_referenced (vtab);
@@ -516,7 +516,7 @@ gfc_find_derived_vtab (gfc_symbol *derived)
 		  sprintf (name, "__def_init_%s", tname);
 		  gfc_get_symbol (name, ns, &def_init);
 		  def_init->attr.target = 1;
-		  def_init->attr.save = SAVE_EXPLICIT;
+		  def_init->attr.save = SAVE_IMPLICIT;
 		  def_init->attr.access = ACCESS_PUBLIC;
 		  def_init->attr.flavor = FL_VARIABLE;
 		  gfc_set_sym_referenced (def_init);

Attachment: class_44.f03
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]