فهرست منبع

* only write vmt of objects defined in static/global symtable
to prevent IE in make_mangledname

git-svn-id: trunk@542 -

peter 20 سال پیش
والد
کامیت
3700aa1b80
3فایلهای تغییر یافته به همراه17 افزوده شده و 1 حذف شده
  1. 1 0
      .gitattributes
  2. 2 1
      compiler/pdecl.pas
  3. 14 0
      tests/webtbf/tw4144.pp

+ 1 - 0
.gitattributes

@@ -5469,6 +5469,7 @@ tests/webtbf/tw3841.pp svneol=native#text/plain
 tests/webtbf/tw4103.pp svneol=native#text/plain
 tests/webtbf/tw4111.pp svneol=native#text/plain
 tests/webtbf/tw4139.pp svneol=native#text/plain
+tests/webtbf/tw4144.pp svneol=native#text/plain
 tests/webtbf/uw0744.pp svneol=native#text/plain
 tests/webtbf/uw0840a.pp svneol=native#text/plain
 tests/webtbf/uw0840b.pp svneol=native#text/plain

+ 2 - 1
compiler/pdecl.pas

@@ -524,7 +524,8 @@ implementation
                 This need to be done after the rtti has been written, because
                 it can contain a reference to that data (PFV)
                 This is not for forward classes }
-              if (tt.def.deftype=objectdef) then
+              if (tt.def.deftype=objectdef) and
+                 (tt.def.owner.symtabletype in [staticsymtable,globalsymtable]) then
                 with Tobjectdef(tt.def) do
                   begin
                     if not(oo_is_forward in objectoptions) then

+ 14 - 0
tests/webtbf/tw4144.pp

@@ -0,0 +1,14 @@
+{ Source provided for Free Pascal Bug Report 4144 }
+{ Submitted by "Wiktor Sywula" on  2005-06-30 }
+{ e-mail: [email protected] }
+procedure foo;
+type
+   bar = object
+     constructor init;
+     procedure zzyzzy; virtual;
+   end;
+begin
+end;
+
+begin
+end.