Browse Source

Generate valid C++ for pure implemented dtors

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1635/head
Dimitar Dobrev 4 years ago
parent
commit
8a75cee99f
  1. 5
      src/Generator/Passes/SymbolsCodeGenerator.cs
  2. 10
      tests/Common/Common.h

5
src/Generator/Passes/SymbolsCodeGenerator.cs

@ -401,7 +401,10 @@ namespace CppSharp.Passes
WriteLine(" };"); WriteLine(" };");
if (abstractDtor != null && !implementedDtors.Contains(abstractDtor)) if (abstractDtor != null && !implementedDtors.Contains(abstractDtor))
{ {
WriteLine($"{abstractDtor.Namespace.Name}::{abstractDtor.Name}() {{}}"); if (string.IsNullOrEmpty(abstractDtor.Body))
{
WriteLine($"{abstractDtor.Namespace.Name}::{abstractDtor.Name}() {{}}");
}
implementedDtors.Add(abstractDtor); implementedDtors.Add(abstractDtor);
} }
} }

10
tests/Common/Common.h

@ -785,6 +785,16 @@ public:
virtual ~PureDtor() = 0; virtual ~PureDtor() = 0;
}; };
class PureImplementedDtor
{
public:
virtual ~PureImplementedDtor() = 0;
};
PureImplementedDtor::~PureImplementedDtor()
{
}
DLL_API void va_listFunction(va_list v); DLL_API void va_listFunction(va_list v);
struct DLL_API TestNestedTypes struct DLL_API TestNestedTypes

Loading…
Cancel
Save