diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index f5ad2b61..def014fc 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -328,8 +328,6 @@ namespace CppSharp TranslationUnitPasses.AddPass(new ParamTypeToInterfacePass()); } - TranslationUnitPasses.AddPass(new CheckVTableComponentsPass()); - if (Options.IsCSharpGenerator) TranslationUnitPasses.AddPass(new DelegatesPass()); diff --git a/src/Generator/Passes/CheckVTableComponentsPass.cs b/src/Generator/Passes/CheckVTableComponentsPass.cs deleted file mode 100644 index d8df00c9..00000000 --- a/src/Generator/Passes/CheckVTableComponentsPass.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Linq; -using CppSharp.AST; -using CppSharp.Utils; - -namespace CppSharp.Passes -{ - /// - /// This pass checks for vftable entries with duplicated components. - /// This might happen because of bugs in Clang vftable layouting. - /// - public class CheckVTableComponentsPass : TranslationUnitPass - { - public override bool VisitClassDecl(AST.Class @class) - { - foreach (var vfptr in @class.Layout.VFTables) - { - var uniqueEntries = new OrderedSet(); - foreach (var entry in vfptr.Layout.Components) - uniqueEntries.Add(entry); - - // The vftable does not have duplicated components. - if (vfptr.Layout.Components.Count == uniqueEntries.Count) - continue; - - Diagnostics.Warning( - "Class '{0}' found with duplicated vftable components", - @class.Name); - vfptr.Layout.Components = uniqueEntries.ToList(); - } - - return base.VisitClassDecl(@class); - } - } -}