Browse Source

* test vmt only for classes and objects

git-svn-id: trunk@2762 -
florian 19 years ago
parent
commit
6952e63222
1 changed files with 7 additions and 2 deletions
  1. 7 2
      compiler/ncgutil.pas

+ 7 - 2
compiler/ncgutil.pas

@@ -2436,8 +2436,13 @@ implementation
           end;
         vmtreg:=cg.getaddressregister(list);
         cg.g_maybe_testself(list,href.base);
-        cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,vmtreg);
-        cg.g_maybe_testvmt(list,vmtreg,objdef);
+        { test validity of VMT }
+        if not(is_interface(objdef)) and
+           not(is_cppclass(objdef)) then
+           begin
+             cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,vmtreg);
+             cg.g_maybe_testvmt(list,vmtreg,objdef);
+           end;
       end;