Browse Source

Extended the AST with the template parameters being substituted.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/719/head
Dimitar Dobrev 9 years ago
parent
commit
5af5b2093f
  1. 2
      src/AST/Type.cs
  2. 2
      src/CppParser/AST.cpp
  3. 1
      src/CppParser/AST.h
  4. 10
      src/CppParser/Bindings/CLI/AST.cpp
  5. 6
      src/CppParser/Bindings/CLI/AST.h
  6. 29
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  7. 19
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
  8. 29
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  9. 14
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
  10. 29
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  11. 19
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
  12. 29
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  13. 56
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
  14. 29
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  15. 56
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs
  16. 1067
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  17. 14
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
  18. 6
      src/CppParser/Parser.cpp
  19. 1
      src/Parser/ASTConverter.cs

2
src/AST/Type.cs

@ -825,6 +825,8 @@ namespace CppSharp.AST @@ -825,6 +825,8 @@ namespace CppSharp.AST
{
public QualifiedType Replacement;
public TemplateParameterType ReplacedParameter { get; set; }
public TemplateParameterSubstitutionType()
{
}

2
src/CppParser/AST.cpp

@ -170,7 +170,7 @@ TemplateParameterType::TemplateParameterType() : Type(TypeKind::TemplateParamete @@ -170,7 +170,7 @@ TemplateParameterType::TemplateParameterType() : Type(TypeKind::TemplateParamete
TemplateParameterType::~TemplateParameterType() {}
TemplateParameterSubstitutionType::TemplateParameterSubstitutionType()
: Type(TypeKind::TemplateParameterSubstitution) {}
: Type(TypeKind::TemplateParameterSubstitution), ReplacedParameter(0) {}
InjectedClassNameType::InjectedClassNameType()
: Type(TypeKind::InjectedClassName)

1
src/CppParser/AST.h

@ -227,6 +227,7 @@ class CS_API TemplateParameterSubstitutionType : public Type @@ -227,6 +227,7 @@ class CS_API TemplateParameterSubstitutionType : public Type
public:
DECLARE_TYPE_KIND(TemplateParameterSubstitution)
QualifiedType Replacement;
TemplateParameterType* ReplacedParameter;
};
class Class;

10
src/CppParser/Bindings/CLI/AST.cpp

@ -1000,6 +1000,16 @@ void CppSharp::Parser::AST::TemplateParameterSubstitutionType::Replacement::set( @@ -1000,6 +1000,16 @@ void CppSharp::Parser::AST::TemplateParameterSubstitutionType::Replacement::set(
((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->Replacement = *(::CppSharp::CppParser::AST::QualifiedType*)value->NativePtr;
}
CppSharp::Parser::AST::TemplateParameterType^ CppSharp::Parser::AST::TemplateParameterSubstitutionType::ReplacedParameter::get()
{
return (((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->ReplacedParameter == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::TemplateParameterType((::CppSharp::CppParser::AST::TemplateParameterType*)((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->ReplacedParameter);
}
void CppSharp::Parser::AST::TemplateParameterSubstitutionType::ReplacedParameter::set(CppSharp::Parser::AST::TemplateParameterType^ value)
{
((::CppSharp::CppParser::AST::TemplateParameterSubstitutionType*)NativePtr)->ReplacedParameter = (::CppSharp::CppParser::AST::TemplateParameterType*)value->NativePtr;
}
CppSharp::Parser::AST::InjectedClassNameType::InjectedClassNameType(::CppSharp::CppParser::AST::InjectedClassNameType* native)
: CppSharp::Parser::AST::Type((::CppSharp::CppParser::AST::Type*)native)
{

6
src/CppParser/Bindings/CLI/AST.h

@ -898,6 +898,12 @@ namespace CppSharp @@ -898,6 +898,12 @@ namespace CppSharp
CppSharp::Parser::AST::QualifiedType^ get();
void set(CppSharp::Parser::AST::QualifiedType^);
}
property CppSharp::Parser::AST::TemplateParameterType^ ReplacedParameter
{
CppSharp::Parser::AST::TemplateParameterType^ get();
void set(CppSharp::Parser::AST::TemplateParameterType^);
}
};
public ref class InjectedClassNameType : CppSharp::Parser::AST::Type

29
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp @@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 16)]
[StructLayout(LayoutKind.Explicit, Size = 20)]
public new partial struct __Internal
{
[FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp @@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(16)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp @@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{
var ret = Marshal.AllocHGlobal(16);
var ret = Marshal.AllocHGlobal(20);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
@ -2344,7 +2347,7 @@ namespace CppSharp @@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType()
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(16);
__Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp @@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(16);
__Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp @@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance;
}
}
public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
}
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

19
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs

@ -3584,6 +3584,16 @@ namespace Std @@ -3584,6 +3584,16 @@ namespace Std
internal global::Std.__1.CompressedPair.__Internal __pair3_;
}
}
namespace TreeEndNode
{
[StructLayout(LayoutKind.Explicit, Size = 4)]
public unsafe partial struct __Internal_Ptr
{
[FieldOffset(0)]
public global::System.IntPtr __left_;
}
}
}
}
@ -3853,10 +3863,13 @@ namespace Std @@ -3853,10 +3863,13 @@ namespace Std
Marshal.FreeHGlobal(__Instance);
}
public string CStr()
public string CStr
{
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment));
return Marshal.PtrToStringAnsi(__ret);
get
{
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment));
return Marshal.PtrToStringAnsi(__ret);
}
}
}

29
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp @@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 16)]
[StructLayout(LayoutKind.Explicit, Size = 20)]
public new partial struct __Internal
{
[FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp @@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(16)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??0TemplateParameterSubstitutionType@AST@CppParser@CppSharp@@QAE@XZ")]
@ -2320,7 +2323,7 @@ namespace CppSharp @@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{
var ret = Marshal.AllocHGlobal(16);
var ret = Marshal.AllocHGlobal(20);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
@ -2344,7 +2347,7 @@ namespace CppSharp @@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType()
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(16);
__Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp @@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(16);
__Instance = Marshal.AllocHGlobal(20);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp @@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance;
}
}
public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
}
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

14
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs

@ -609,6 +609,10 @@ namespace Std @@ -609,6 +609,10 @@ namespace Std
}
}
namespace Std
{
}
namespace Std
{
namespace TreeVal
@ -782,6 +786,16 @@ public unsafe partial class Cvtvec @@ -782,6 +786,16 @@ public unsafe partial class Cvtvec
}
}
namespace Std
{
[Flags]
public enum CodecvtMode
{
_Consume_header = 4,
_Generate_header = 2
}
}
namespace Std
{
public unsafe partial class ErrorCode

29
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp @@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
[StructLayout(LayoutKind.Explicit, Size = 32)]
public new partial struct __Internal
{
[FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp @@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(24)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp @@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{
var ret = Marshal.AllocHGlobal(24);
var ret = Marshal.AllocHGlobal(32);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
@ -2344,7 +2347,7 @@ namespace CppSharp @@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType()
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(24);
__Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp @@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(24);
__Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp @@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance;
}
}
public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
}
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

19
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs

@ -3584,6 +3584,16 @@ namespace Std @@ -3584,6 +3584,16 @@ namespace Std
internal global::Std.__1.CompressedPair.__Internal __pair3_;
}
}
namespace TreeEndNode
{
[StructLayout(LayoutKind.Explicit, Size = 8)]
public unsafe partial struct __Internal_Ptr
{
[FieldOffset(0)]
public global::System.IntPtr __left_;
}
}
}
}
@ -3889,10 +3899,13 @@ namespace Std @@ -3889,10 +3899,13 @@ namespace Std
Marshal.FreeHGlobal(__Instance);
}
public string CStr()
public string CStr
{
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment));
return Marshal.PtrToStringAnsi(__ret);
get
{
var __ret = __Internal.CStr_0((__Instance + __PointerAdjustment));
return Marshal.PtrToStringAnsi(__ret);
}
}
}

29
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp @@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
[StructLayout(LayoutKind.Explicit, Size = 32)]
public new partial struct __Internal
{
[FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp @@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(24)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp @@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{
var ret = Marshal.AllocHGlobal(24);
var ret = Marshal.AllocHGlobal(32);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
@ -2344,7 +2347,7 @@ namespace CppSharp @@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType()
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(24);
__Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp @@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(24);
__Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp @@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance;
}
}
public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
}
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

56
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs

@ -964,6 +964,62 @@ public unsafe partial struct PthreadRwlockT @@ -964,6 +964,62 @@ public unsafe partial struct PthreadRwlockT
}
}
public unsafe partial class PthreadUnwindBufT
{
[StructLayout(LayoutKind.Explicit, Size = 104)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed byte __cancel_jmp_buf[72];
[FieldOffset(72)]
public void* __pad;
[FieldOffset(80)]
public global::System.IntPtr __dummy___pad_1;
[FieldOffset(88)]
public global::System.IntPtr __dummy___pad_2;
[FieldOffset(96)]
public global::System.IntPtr __dummy___pad_3;
}
public unsafe partial class _
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed long __cancel_jmp_buf[8];
[FieldOffset(8)]
public long __dummy___cancel_jmp_buf_1;
[FieldOffset(16)]
public long __dummy___cancel_jmp_buf_2;
[FieldOffset(24)]
public long __dummy___cancel_jmp_buf_3;
[FieldOffset(32)]
public long __dummy___cancel_jmp_buf_4;
[FieldOffset(40)]
public long __dummy___cancel_jmp_buf_5;
[FieldOffset(48)]
public long __dummy___cancel_jmp_buf_6;
[FieldOffset(56)]
public long __dummy___cancel_jmp_buf_7;
[FieldOffset(64)]
public int __mask_was_saved;
}
}
}
namespace Std
{
namespace Cxx11

29
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

@ -2285,7 +2285,7 @@ namespace CppSharp @@ -2285,7 +2285,7 @@ namespace CppSharp
public unsafe partial class TemplateParameterSubstitutionType : global::CppSharp.Parser.AST.Type, IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
[StructLayout(LayoutKind.Explicit, Size = 32)]
public new partial struct __Internal
{
[FieldOffset(0)]
@ -2297,6 +2297,9 @@ namespace CppSharp @@ -2297,6 +2297,9 @@ namespace CppSharp
[FieldOffset(8)]
public global::CppSharp.Parser.AST.QualifiedType.__Internal Replacement;
[FieldOffset(24)]
public global::System.IntPtr ReplacedParameter;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST33TemplateParameterSubstitutionTypeC2Ev")]
@ -2320,7 +2323,7 @@ namespace CppSharp @@ -2320,7 +2323,7 @@ namespace CppSharp
private static void* __CopyValue(TemplateParameterSubstitutionType.__Internal native)
{
var ret = Marshal.AllocHGlobal(24);
var ret = Marshal.AllocHGlobal(32);
global::CppSharp.Parser.AST.TemplateParameterSubstitutionType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
@ -2344,7 +2347,7 @@ namespace CppSharp @@ -2344,7 +2347,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType()
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(24);
__Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor_0((__Instance + __PointerAdjustment));
@ -2353,7 +2356,7 @@ namespace CppSharp @@ -2353,7 +2356,7 @@ namespace CppSharp
public TemplateParameterSubstitutionType(global::CppSharp.Parser.AST.TemplateParameterSubstitutionType _0)
: this((void*) null)
{
__Instance = Marshal.AllocHGlobal(24);
__Instance = Marshal.AllocHGlobal(32);
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -2374,6 +2377,24 @@ namespace CppSharp @@ -2374,6 +2377,24 @@ namespace CppSharp
((__Internal*) __Instance)->Replacement = ReferenceEquals(value, null) ? new global::CppSharp.Parser.AST.QualifiedType.__Internal() : *(global::CppSharp.Parser.AST.QualifiedType.__Internal*) value.__Instance;
}
}
public global::CppSharp.Parser.AST.TemplateParameterType ReplacedParameter
{
get
{
global::CppSharp.Parser.AST.TemplateParameterType __result0;
if (((__Internal*) __Instance)->ReplacedParameter == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap.ContainsKey(((__Internal*) __Instance)->ReplacedParameter))
__result0 = (global::CppSharp.Parser.AST.TemplateParameterType) global::CppSharp.Parser.AST.TemplateParameterType.NativeToManagedMap[((__Internal*) __Instance)->ReplacedParameter];
else __result0 = global::CppSharp.Parser.AST.TemplateParameterType.__CreateInstance(((__Internal*) __Instance)->ReplacedParameter);
return __result0;
}
set
{
((__Internal*) __Instance)->ReplacedParameter = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
}
}
}
public unsafe partial class InjectedClassNameType : global::CppSharp.Parser.AST.Type, IDisposable

56
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs

@ -949,6 +949,62 @@ public unsafe partial struct PthreadRwlockT @@ -949,6 +949,62 @@ public unsafe partial struct PthreadRwlockT
}
}
public unsafe partial class PthreadUnwindBufT
{
[StructLayout(LayoutKind.Explicit, Size = 104)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed byte __cancel_jmp_buf[72];
[FieldOffset(72)]
public void* __pad;
[FieldOffset(80)]
public global::System.IntPtr __dummy___pad_1;
[FieldOffset(88)]
public global::System.IntPtr __dummy___pad_2;
[FieldOffset(96)]
public global::System.IntPtr __dummy___pad_3;
}
public unsafe partial class _
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
public fixed long __cancel_jmp_buf[8];
[FieldOffset(8)]
public long __dummy___cancel_jmp_buf_1;
[FieldOffset(16)]
public long __dummy___cancel_jmp_buf_2;
[FieldOffset(24)]
public long __dummy___cancel_jmp_buf_3;
[FieldOffset(32)]
public long __dummy___cancel_jmp_buf_4;
[FieldOffset(40)]
public long __dummy___cancel_jmp_buf_5;
[FieldOffset(48)]
public long __dummy___cancel_jmp_buf_6;
[FieldOffset(56)]
public long __dummy___cancel_jmp_buf_7;
[FieldOffset(64)]
public int __mask_was_saved;
}
}
}
namespace Std
{
public unsafe partial class BasicString : IDisposable

1067
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

14
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs

@ -622,6 +622,10 @@ namespace Std @@ -622,6 +622,10 @@ namespace Std
}
}
namespace Std
{
}
namespace Std
{
namespace TreeVal
@ -795,6 +799,16 @@ public unsafe partial class Cvtvec @@ -795,6 +799,16 @@ public unsafe partial class Cvtvec
}
}
namespace Std
{
[Flags]
public enum CodecvtMode
{
_Consume_header = 4,
_Generate_header = 2
}
}
namespace Std
{
public unsafe partial class ErrorCode

6
src/CppParser/Parser.cpp

@ -2491,6 +2491,10 @@ Type* Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL, @@ -2491,6 +2491,10 @@ Type* Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL,
auto RepTy = TP->getReplacementType();
TPT->Replacement = GetQualifiedType(RepTy, &Next);
TPT->ReplacedParameter = (TemplateParameterType*)
WalkType(clang::QualType(TP->getReplacedParameter(), 0), 0);
TPT->ReplacedParameter->Parameter = WalkTypeTemplateParameter(
TP->getReplacedParameter()->getDecl());
Ty = TPT;
break;
@ -2765,7 +2769,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F, @@ -2765,7 +2769,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
F->IsDependent = FD->isDependentContext();
F->IsPure = FD->isPure();
F->IsDeleted = FD->isDeleted();
if (auto InstantiatedFrom = FD->getInstantiatedFromMemberFunction())
if (auto InstantiatedFrom = FD->getTemplateInstantiationPattern())
F->InstantiatedFrom = static_cast<Function*>(WalkDeclaration(InstantiatedFrom));
auto CC = FT->getCallConv();

1
src/Parser/ASTConverter.cs

@ -655,6 +655,7 @@ namespace CppSharp @@ -655,6 +655,7 @@ namespace CppSharp
{
var _type = new AST.TemplateParameterSubstitutionType();
_type.Replacement = VisitQualified(type.Replacement);
_type.ReplacedParameter = (AST.TemplateParameterType) Visit(type.ReplacedParameter);
VisitType(type, _type);
return _type;
}

Loading…
Cancel
Save