Browse Source

llvm:a fix opaque ptr IR for Objective-C protocol

Also for interfacecom functions and properties. Fixes test/tobjc9 and
test/tobjc9b with LLVM 15.0+
Jonas Maebe 2 years ago
parent
commit
0b6942de8a
1 changed files with 4 additions and 1 deletions
  1. 4 1
      compiler/llvm/llvmdef.pas

+ 4 - 1
compiler/llvm/llvmdef.pas

@@ -666,7 +666,10 @@ implementation
                 begin
                 begin
                   { opaque for now }
                   { opaque for now }
                   if not(lef_removeouterpointer in flags) then
                   if not(lef_removeouterpointer in flags) then
-                    encodedstr:=encodedstr+'i8*'
+                    if (llvmflag_opaque_ptr in llvmversion_properties[current_settings.llvmversion]) then
+                      encodedstr:=encodedstr+'ptr'
+                    else
+                      encodedstr:=encodedstr+'i8*'
                   else
                   else
                     encodedstr:=encodedstr+'i8'
                     encodedstr:=encodedstr+'i8'
                 end;
                 end;