[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2016-11-16 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44065

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0

[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-05 Thread janus at gcc dot gnu dot org


--- Comment #14 from janus at gcc dot gnu dot org  2010-08-05 11:58 ---
(In reply to comment #13)
> On x86_64-apple-darwin10.4.0 at r162881, I have tested all the codelets I have
> for the PRs fixed by r162879 with both -m32 and -m64 without linking error.

Great. So I guess we can close this PR.


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-04 Thread dominiq at lps dot ens dot fr


--- Comment #13 from dominiq at lps dot ens dot fr  2010-08-04 22:58 ---
> r162879 seems to fix all the test cases for me. Can anyone confirm that 
> comment
> #0 works now without any linking errors?

On x86_64-apple-darwin10.4.0 at r162881, I have tested all the codelets I have
for the PRs fixed by r162879 with both -m32 and -m64 without linking error.


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-04 Thread janus at gcc dot gnu dot org


--- Comment #12 from janus at gcc dot gnu dot org  2010-08-04 20:05 ---
r162879 seems to fix all the test cases for me. Can anyone confirm that comment
#0 works now without any linking errors?


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-04 Thread janus at gcc dot gnu dot org


--- Comment #11 from janus at gcc dot gnu dot org  2010-08-04 19:49 ---
Subject: Bug 44065

Author: janus
Date: Wed Aug  4 19:49:19 2010
New Revision: 162879

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162879
Log:
2010-08-04  Janus Weil  

PR fortran/42207
PR fortran/44064
PR fortran/44065
* class.c (gfc_find_derived_vtab): Do not generate vtabs for class
container types. Do not artificially increase refs. Commit symbols one
by one.
* interface.c (compare_parameter): Make sure vtabs are present before
generating module variables.
* resolve.c (resolve_allocate_expr): Ditto.


2010-08-04  Janus Weil  

PR fortran/42207
PR fortran/44064
PR fortran/44065
* gfortran.dg/class_25.f03: New.
* gfortran.dg/class_26.f03: New.

Added:
trunk/gcc/testsuite/gfortran.dg/class_25.f03
trunk/gcc/testsuite/gfortran.dg/class_26.f03
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/class.c
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-04 Thread janus at gcc dot gnu dot org


--- Comment #10 from janus at gcc dot gnu dot org  2010-08-04 08:32 ---
(In reply to comment #9)
> With the patch in comment #5 there is one regression:
> 
> FAIL: gfortran.dg/typebound_operator_4.f03  -O  (test for excess errors)
> 
> the extra errors are:
> 
> /opt/gcc/work/gcc/testsuite/gfortran.dg/typebound_operator_4.f03:73.7:
> 
>   USE m
>1
> Error: Invalid expression in the derived type constructor for pointer 
> component
> '$extends' at (1) in PURE procedure


This regression can be fixed by:


Index: gcc/fortran/resolve.c
===
--- gcc/fortran/resolve.c   (revision 162842)
+++ gcc/fortran/resolve.c   (working copy)
@@ -12320,6 +12323,10 @@ gfc_impure_variable (gfc_symbol *sym)
   gfc_symbol *proc;
   gfc_namespace *ns;

+  if (sym->attr.vtab)
+return 0;
+
   if (sym->attr.use_assoc || sym->attr.in_common)
 return 1;



-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-03 Thread dominiq at lps dot ens dot fr


--- Comment #9 from dominiq at lps dot ens dot fr  2010-08-03 18:56 ---
With the patch in comment #5 there is one regression:

FAIL: gfortran.dg/typebound_operator_4.f03  -O  (test for excess errors)

the extra errors are:

/opt/gcc/work/gcc/testsuite/gfortran.dg/typebound_operator_4.f03:73.7:

  USE m
   1
Error: Invalid expression in the derived type constructor for pointer component
'$extends' at (1) in PURE procedure
/opt/gcc/work/gcc/testsuite/gfortran.dg/typebound_operator_4.f03:73.7:

  USE m
   1
Error: Invalid expression in the derived type constructor for pointer component
'$extends' at (1) in PURE procedure

at the beginning of the error list.


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-03 Thread dominiq at lps dot ens dot fr


--- Comment #8 from dominiq at lps dot ens dot fr  2010-08-03 17:00 ---
> At r162840, comment #0 seems to work already without any patching. Pierre, can
> you confirm that?

Not for me at -O0 (patch not applied), but it works at -O[123s] (probably
_vtab$s_sparse_mat.1569 is optimized away?).


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-03 Thread janus at gcc dot gnu dot org


--- Comment #7 from janus at gcc dot gnu dot org  2010-08-03 16:54 ---
At r162840, comment #0 seems to work already without any patching. Pierre, can
you confirm that?


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-03 Thread janus at gcc dot gnu dot org


--- Comment #6 from janus at gcc dot gnu dot org  2010-08-03 16:44 ---
(In reply to comment #5)
> Comment #3 is fixed by:

I think it also fixes comment #4.


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-08-03 Thread janus at gcc dot gnu dot org


--- Comment #5 from janus at gcc dot gnu dot org  2010-08-03 16:37 ---
Comment #3 is fixed by:

Index: gcc/fortran/interface.c
===
--- gcc/fortran/interface.c (revision 162839)
+++ gcc/fortran/interface.c (working copy)
@@ -1423,6 +1423,9 @@ compare_parameter (gfc_symbol *formal, gfc_expr *a
   && actual->ts.u.derived && actual->ts.u.derived->ts.is_iso_c)
 return 1;

+  if (formal->ts.type == BT_CLASS)
+gfc_find_derived_vtab (formal->ts.u.derived);
+
   if (actual->ts.type == BT_PROCEDURE)
 {
   char err[200];


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |janus at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-05-10 22:06:33 |2010-08-03 16:37:14
   date||


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-07-17 Thread janus at gcc dot gnu dot org


--- Comment #4 from janus at gcc dot gnu dot org  2010-07-17 08:49 ---
Another failing example was reported by Andrew Benson in

http://gcc.gnu.org/ml/fortran/2010-07/msg00222.html


-- 


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



[Bug fortran/44065] [OOP] Undefined reference to vtab$...

2010-06-05 Thread janus at gcc dot gnu dot org


--- Comment #3 from janus at gcc dot gnu dot org  2010-06-06 03:37 ---
Here is a related test case (by Salvatore):

module s_mat_mod
  implicit none 
  type :: s_sparse_mat
  end type
contains
  subroutine s_set_triangle(a)
class(s_sparse_mat), intent(inout) :: a
  end subroutine
end module

module s_tester
implicit none
contains
  subroutine s_ussv_2
use s_mat_mod
type(s_sparse_mat) :: a
call s_set_triangle(a)
  end subroutine
end module

end


This gives:

/tmp/ccUws0SU.o: In function `__s_tester_MOD_s_ussv_2':
testd17.f03:(.text+0x13): undefined reference to `vtab$s_sparse_mat.1564'

(when compiled in one file)


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||sfilippone at uniroma2 dot
   ||it
Summary|[OOP] Undefined reference to|[OOP] Undefined reference to
   |TBP |vtab$...


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