Browse Source

compiler: don't write rtti for objc classes/protocols (a trial to fix build on mac)

git-svn-id: trunk@24440 -
paul 12 years ago
parent
commit
5cd3f9d8fb
1 changed files with 6 additions and 2 deletions
  1. 6 2
      compiler/ncgrtti.pas

+ 6 - 2
compiler/ncgrtti.pas

@@ -627,7 +627,10 @@ implementation
         begin
           write_header(def,tkPointer);
           maybe_write_align;
-          current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def.pointeddef,rt)));
+          if is_objc_class_or_protocol(def.pointeddef) then
+            current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(nil))
+          else
+            current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def.pointeddef,rt)));
         end;
 
         procedure recorddef_rtti(def:trecorddef);
@@ -1225,7 +1228,8 @@ implementation
             end;
           classrefdef,
           pointerdef:
-            write_rtti(tabstractpointerdef(def).pointeddef,rt);
+            if is_objc_class_or_protocol(tabstractpointerdef(def).pointeddef) then
+              write_rtti(tabstractpointerdef(def).pointeddef,rt);
         end;
       end;