Browse Source

Fallback to LayoutKind.Explicit when a custom alignment is specified. (#1476)

pull/1479/head
josetr 5 years ago committed by GitHub
parent
commit
7791cf6996
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      build/Tests.lua
  2. 1
      src/AST/Declaration.cs
  3. 1
      src/CppParser/AST.cpp
  4. 10
      src/CppParser/Bindings/CLI/Decl.cpp
  5. 6
      src/CppParser/Bindings/CLI/Decl.h
  6. 1904
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  7. 1898
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  8. 168
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  9. 168
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  10. 168
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  11. 168
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  12. 1
      src/CppParser/Decl.h
  13. 15
      src/CppParser/Parser.cpp
  14. 1
      src/CppParser/Parser.h
  15. 26
      src/Generator/Generators/CSharp/CSharpSources.cs
  16. 1
      src/Parser/ASTConverter.cs
  17. 19
      tests/CSharp/CSharp.Tests.cs
  18. 35
      tests/CSharp/CSharp.h

6
build/Tests.lua

@ -71,6 +71,12 @@ function SetupManagedTestProject()
kind "SharedLib" kind "SharedLib"
language "C#" language "C#"
clr "Unsafe" clr "Unsafe"
filter { "action:not netcore" }
links
{
"System.Core"
}
end end
function SetupTestGeneratorProject(name, depends) function SetupTestGeneratorProject(name, depends)

1
src/AST/Declaration.cs

@ -121,6 +121,7 @@ namespace CppSharp.AST
public int LineNumberStart { get; set; } public int LineNumberStart { get; set; }
public int LineNumberEnd { get; set; } public int LineNumberEnd { get; set; }
public bool IsImplicit { get; set; } public bool IsImplicit { get; set; }
public int AlignAs { get; set; }
public int MaxFieldAlignment { get; set; } public int MaxFieldAlignment { get; set; }
private DeclarationContext @namespace; private DeclarationContext @namespace;

1
src/CppParser/AST.cpp

@ -280,6 +280,7 @@ Declaration::Declaration(DeclarationKind kind)
, completeDeclaration(0) , completeDeclaration(0)
, definitionOrder(0) , definitionOrder(0)
, originalPtr(0) , originalPtr(0)
, alignAs(0)
, maxFieldAlignment(0) , maxFieldAlignment(0)
{ {
} }

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

@ -124,6 +124,16 @@ void CppSharp::Parser::AST::Declaration::Kind::set(CppSharp::Parser::AST::Declar
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->kind = (::CppSharp::CppParser::AST::DeclarationKind)value; ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->kind = (::CppSharp::CppParser::AST::DeclarationKind)value;
} }
int CppSharp::Parser::AST::Declaration::AlignAs::get()
{
return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->alignAs;
}
void CppSharp::Parser::AST::Declaration::AlignAs::set(int value)
{
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->alignAs = value;
}
int CppSharp::Parser::AST::Declaration::MaxFieldAlignment::get() int CppSharp::Parser::AST::Declaration::MaxFieldAlignment::get()
{ {
return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->maxFieldAlignment; return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->maxFieldAlignment;

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

@ -307,6 +307,12 @@ namespace CppSharp
void set(CppSharp::Parser::AST::DeclarationKind); void set(CppSharp::Parser::AST::DeclarationKind);
} }
property int AlignAs
{
int get();
void set(int);
}
property int MaxFieldAlignment property int MaxFieldAlignment
{ {
int get(); int get();

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

@ -6407,9 +6407,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -6646,6 +6649,19 @@ namespace CppSharp
} }
} }
public int AlignAs
{
get
{
return ((__Internal*)__Instance)->alignAs;
}
set
{
((__Internal*)__Instance)->alignAs = value;
}
}
public int MaxFieldAlignment public int MaxFieldAlignment
{ {
get get
@ -6914,9 +6930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7497,9 +7516,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7674,9 +7696,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7831,9 +7856,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8005,9 +8033,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8899,9 +8930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9153,9 +9187,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9699,9 +9736,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10153,9 +10193,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10299,9 +10342,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10644,9 +10690,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11025,9 +11074,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11246,9 +11298,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -12524,9 +12579,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13068,9 +13126,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13301,9 +13362,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13461,9 +13525,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13668,9 +13735,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13876,9 +13946,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14057,9 +14130,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14302,9 +14378,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14535,9 +14614,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14844,9 +14926,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15085,9 +15170,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15500,9 +15588,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15733,9 +15824,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15976,9 +16070,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16151,9 +16248,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16305,9 +16405,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16967,9 +17070,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]

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

@ -6407,9 +6407,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -6646,6 +6649,19 @@ namespace CppSharp
} }
} }
public int AlignAs
{
get
{
return ((__Internal*)__Instance)->alignAs;
}
set
{
((__Internal*)__Instance)->alignAs = value;
}
}
public int MaxFieldAlignment public int MaxFieldAlignment
{ {
get get
@ -6914,9 +6930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7497,9 +7516,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7674,9 +7696,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7831,9 +7856,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8005,9 +8033,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8899,9 +8930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9153,9 +9187,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9699,9 +9736,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10153,9 +10193,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10299,9 +10342,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10644,9 +10690,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11025,9 +11074,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11246,9 +11298,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -12524,9 +12579,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13068,9 +13126,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13301,9 +13362,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13461,9 +13525,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13668,9 +13735,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13876,9 +13946,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14057,9 +14130,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14302,9 +14378,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14535,9 +14614,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14844,9 +14926,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15085,9 +15170,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15500,9 +15588,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15733,9 +15824,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15976,9 +16070,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16151,9 +16248,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16305,9 +16405,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16967,9 +17070,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]

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

@ -6407,9 +6407,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -6646,6 +6649,19 @@ namespace CppSharp
} }
} }
public int AlignAs
{
get
{
return ((__Internal*)__Instance)->alignAs;
}
set
{
((__Internal*)__Instance)->alignAs = value;
}
}
public int MaxFieldAlignment public int MaxFieldAlignment
{ {
get get
@ -6914,9 +6930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7497,9 +7516,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7674,9 +7696,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7831,9 +7856,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8005,9 +8033,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8899,9 +8930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9153,9 +9187,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9699,9 +9736,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10153,9 +10193,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10299,9 +10342,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10644,9 +10690,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11025,9 +11074,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11246,9 +11298,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -12524,9 +12579,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13068,9 +13126,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13301,9 +13362,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13461,9 +13525,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13668,9 +13735,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13876,9 +13946,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14057,9 +14130,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14302,9 +14378,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14535,9 +14614,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14844,9 +14926,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15085,9 +15170,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15500,9 +15588,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15733,9 +15824,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15976,9 +16070,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16151,9 +16248,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16305,9 +16405,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16967,9 +17070,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]

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

@ -6407,9 +6407,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -6646,6 +6649,19 @@ namespace CppSharp
} }
} }
public int AlignAs
{
get
{
return ((__Internal*)__Instance)->alignAs;
}
set
{
((__Internal*)__Instance)->alignAs = value;
}
}
public int MaxFieldAlignment public int MaxFieldAlignment
{ {
get get
@ -6914,9 +6930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7497,9 +7516,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7674,9 +7696,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -7831,9 +7856,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8005,9 +8033,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -8899,9 +8930,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9153,9 +9187,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -9699,9 +9736,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10153,9 +10193,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10299,9 +10342,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -10644,9 +10690,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11025,9 +11074,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -11246,9 +11298,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -12525,9 +12580,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13069,9 +13127,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13302,9 +13363,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13462,9 +13526,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13669,9 +13736,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -13877,9 +13947,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14058,9 +14131,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14303,9 +14379,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14536,9 +14615,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -14845,9 +14927,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15086,9 +15171,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15501,9 +15589,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15734,9 +15825,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -15977,9 +16071,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16152,9 +16249,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16306,9 +16406,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]
@ -16968,9 +17071,12 @@ namespace CppSharp
internal global::CppSharp.Parser.AST.DeclarationKind kind; internal global::CppSharp.Parser.AST.DeclarationKind kind;
[FieldOffset(4)] [FieldOffset(4)]
internal int maxFieldAlignment; internal int alignAs;
[FieldOffset(8)] [FieldOffset(8)]
internal int maxFieldAlignment;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.AccessSpecifier access; internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(16)] [FieldOffset(16)]

1
src/CppParser/Decl.h

@ -72,6 +72,7 @@ public:
~Declaration(); ~Declaration();
DeclarationKind kind; DeclarationKind kind;
int alignAs;
int maxFieldAlignment; int maxFieldAlignment;
AccessSpecifier access; AccessSpecifier access;
DeclarationContext* _namespace; DeclarationContext* _namespace;

15
src/CppParser/Parser.cpp

@ -1889,6 +1889,9 @@ Field* Parser::WalkFieldCXX(const clang::FieldDecl* FD, Class* Class)
if (F->isBitField && !F->isDependent && !FD->getBitWidth()->isInstantiationDependent()) if (F->isBitField && !F->isDependent && !FD->getBitWidth()->isInstantiationDependent())
F->bitWidth = FD->getBitWidthValue(c->getASTContext()); F->bitWidth = FD->getBitWidthValue(c->getASTContext());
if (auto alignedAttr = FD->getAttr<clang::AlignedAttr>())
F->alignAs = GetAlignAs(alignedAttr);
Class->Fields.push_back(F); Class->Fields.push_back(F);
return F; return F;
@ -4179,6 +4182,9 @@ Declaration* Parser::WalkDeclaration(const clang::Decl* D)
Decl->isDeprecated = true; Decl->isDeprecated = true;
break; break;
} }
case clang::attr::Kind::Aligned:
Decl->alignAs = GetAlignAs(cast<clang::AlignedAttr>(Attr));
break;
default: default:
break; break;
} }
@ -4188,6 +4194,15 @@ Declaration* Parser::WalkDeclaration(const clang::Decl* D)
return Decl; return Decl;
} }
int Parser::GetAlignAs(const clang::AlignedAttr* alignedAttr)
{
return alignedAttr->isAlignas() &&
!alignedAttr->isAlignmentErrorDependent() &&
!alignedAttr->isAlignmentDependent()
? alignedAttr->getAlignment(c->getASTContext())
: 0;
}
void Parser::HandleDiagnostics(ParserResult* res) void Parser::HandleDiagnostics(ParserResult* res)
{ {
auto DiagClient = (DiagnosticConsumer&) c->getDiagnosticClient(); auto DiagClient = (DiagnosticConsumer&) c->getDiagnosticClient();

1
src/CppParser/Parser.h

@ -140,6 +140,7 @@ private:
std::stack<clang::Scope> GetScopesFor(clang::FunctionDecl* FD); std::stack<clang::Scope> GetScopesFor(clang::FunctionDecl* FD);
void MarkValidity(Function* F); void MarkValidity(Function* F);
void WalkFunction(const clang::FunctionDecl* FD, Function* F); void WalkFunction(const clang::FunctionDecl* FD, Function* F);
int GetAlignAs(const clang::AlignedAttr* alignedAttr);
void HandlePreprocessedEntities(Declaration* Decl); void HandlePreprocessedEntities(Declaration* Decl);
void HandlePreprocessedEntities(Declaration* Decl, clang::SourceRange sourceRange, void HandlePreprocessedEntities(Declaration* Decl, clang::SourceRange sourceRange,
MacroLocation macroLocation = MacroLocation::Unknown); MacroLocation macroLocation = MacroLocation::Unknown);

26
src/Generator/Generators/CSharp/CSharpSources.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Security.Permissions;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using CppSharp.AST; using CppSharp.AST;
@ -774,6 +775,15 @@ namespace CppSharp.Generators.CSharp
if (@class.IsUnion) if (@class.IsUnion)
return false; return false;
foreach (var field in @class.Fields)
{
if (field.AlignAs != 0)
{
// https://github.com/dotnet/runtime/issues/22990
return false;
}
}
var fields = @class.Layout.Fields; var fields = @class.Layout.Fields;
if (fields.Count > 1) if (fields.Count > 1)
@ -782,6 +792,14 @@ namespace CppSharp.Generators.CSharp
{ {
if (fields[i].Offset == fields[i - 1].Offset) if (fields[i].Offset == fields[i - 1].Offset)
return false; return false;
var type = fields[i].QualifiedType.Type.Desugar();
if (type.TryGetDeclaration(out Declaration declaration) && declaration.AlignAs != 0)
{
// https://github.com/dotnet/runtime/issues/9089
return false;
}
} }
} }
@ -812,14 +830,12 @@ namespace CppSharp.Generators.CSharp
} }
WriteLine(";"); WriteLine(";");
// HACK: work around the lack of alignment in StructLayout
// it's been requested multiple times to no avail:
// https://github.com/dotnet/runtime/issues/5931, https://github.com/dotnet/runtime/issues/9089, https://github.com/dotnet/runtime/issues/22990
// Sometimes padding is needed due to aligment. // Sometimes padding is needed due to aligment.
// The linux 32 bit target pads at the end the structure // The linux 32 bit target pads at the end the structure
// which is already handled by using [StructLayout(Size = n)]. // which is already handled by using [StructLayout(Size = n)].
// However the windows 32 bit target pads at the front, // However the windows 32 bit target will add some of the padding at the front,
// right after the vtable pointer, which is what we are handling here // right after the vtable pointer, which is what we are handling here.
// See https://github.com/dotnet/runtime/issues/44378 for more info.
if (sequentalLayout && fields[i].IsVTablePtr) if (sequentalLayout && fields[i].IsVTablePtr)
{ {
var nativePointerSize = Context.TargetInfo.PointerWidth / 8; var nativePointerSize = Context.TargetInfo.PointerWidth / 8;

1
src/Parser/ASTConverter.cs

@ -985,6 +985,7 @@ namespace CppSharp
_decl.IsImplicit = decl.IsImplicit; _decl.IsImplicit = decl.IsImplicit;
_decl.IsInvalid = decl.IsInvalid; _decl.IsInvalid = decl.IsInvalid;
_decl.DefinitionOrder = decl.DefinitionOrder; _decl.DefinitionOrder = decl.DefinitionOrder;
_decl.AlignAs = decl.AlignAs;
_decl.MaxFieldAlignment = decl.MaxFieldAlignment; _decl.MaxFieldAlignment = decl.MaxFieldAlignment;
_decl.IsDeprecated = decl.IsDeprecated; _decl.IsDeprecated = decl.IsDeprecated;

19
tests/CSharp/CSharp.Tests.cs

@ -1,7 +1,9 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Reflection; using System.Reflection;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Security;
using System.Text; using System.Text;
using CppSharp.Utils; using CppSharp.Utils;
using CSharp; using CSharp;
@ -707,7 +709,7 @@ public unsafe class CSharpTests : GeneratorTestFixture
} }
[Test] [Test]
public void TestTemplateInternals() public void TestAlignment()
{ {
foreach (var internalType in new[] foreach (var internalType in new[]
{ {
@ -724,6 +726,7 @@ public unsafe class CSharpTests : GeneratorTestFixture
if (fieldOffset != null) if (fieldOffset != null)
Assert.That(fieldOffset.Value, Is.EqualTo(0)); Assert.That(fieldOffset.Value, Is.EqualTo(0));
Assert.That((int)Marshal.OffsetOf(internalType, independentFields[0].Name), Is.EqualTo(0)); Assert.That((int)Marshal.OffsetOf(internalType, independentFields[0].Name), Is.EqualTo(0));
Assert.That(Marshal.SizeOf(internalType), Is.EqualTo(internalType.StructLayoutAttribute.Size));
} }
foreach (var internalType in new Type[] foreach (var internalType in new Type[]
@ -743,6 +746,20 @@ public unsafe class CSharpTests : GeneratorTestFixture
if (fieldOffsetValue != null) if (fieldOffsetValue != null)
Assert.That(fieldOffsetValue.Value, Is.EqualTo(Marshal.SizeOf(IntPtr.Zero))); Assert.That(fieldOffsetValue.Value, Is.EqualTo(Marshal.SizeOf(IntPtr.Zero)));
Assert.That((int)Marshal.OffsetOf(internalType, independentFields[1].Name), Is.EqualTo(Marshal.SizeOf(IntPtr.Zero))); Assert.That((int)Marshal.OffsetOf(internalType, independentFields[1].Name), Is.EqualTo(Marshal.SizeOf(IntPtr.Zero)));
Assert.That(Marshal.SizeOf(internalType), Is.EqualTo(internalType.StructLayoutAttribute.Size));
}
foreach (var (type, offsets) in new (Type, int[])[] {
(typeof(ClassCustomTypeAlignment), CSharp.CSharp.ClassCustomTypeAlignmentOffsets),
(typeof(ClassCustomObjectAligment), CSharp.CSharp.ClassCustomObjectAligmentOffsets),
})
{
var internalType = type.GetNestedType("__Internal");
var managedOffsets = internalType.GetFields(BindingFlags.Instance | BindingFlags.NonPublic).Select(field =>
(int)Marshal.OffsetOf(internalType, field.Name)
);
Assert.That(managedOffsets, Is.EqualTo(offsets));
Assert.That(Marshal.SizeOf(internalType), Is.EqualTo(internalType.StructLayoutAttribute.Size));
} }
} }

35
tests/CSharp/CSharp.h

@ -1508,6 +1508,41 @@ struct DLL_API ConversionFunctions
short field = 100; short field = 100;
}; };
struct DLL_API ClassCustomTypeAlignment
{
struct alignas(1) Align1 { };
struct alignas(8) Align8 { };
struct alignas(16) Align16 {
double a;
double b;
};
bool boolean;
Align16 align16;
Align1 align1;
double dbl;
Align8 align8;
};
static constexpr const int ClassCustomTypeAlignmentOffsets[] {
offsetof(ClassCustomTypeAlignment, boolean),
offsetof(ClassCustomTypeAlignment, align16),
offsetof(ClassCustomTypeAlignment, align1),
offsetof(ClassCustomTypeAlignment, dbl),
offsetof(ClassCustomTypeAlignment, align8),
};
struct DLL_API ClassCustomObjectAligment
{
bool boolean;
alignas(alignof(ClassCustomTypeAlignment)) char charAligned8;
};
static constexpr const int ClassCustomObjectAligmentOffsets[] {
offsetof(ClassCustomObjectAligment, boolean),
offsetof(ClassCustomObjectAligment, charAligned8),
};
DLL_API const char* TestCSharpString(const char* in, CS_OUT const char** out); DLL_API const char* TestCSharpString(const char* in, CS_OUT const char** out);
DLL_API const wchar_t* TestCSharpStringWide(const wchar_t* in, CS_OUT const wchar_t** out); DLL_API const wchar_t* TestCSharpStringWide(const wchar_t* in, CS_OUT const wchar_t** out);
DLL_API const char16_t* TestCSharpString16(const char16_t* in, CS_OUT const char16_t** out); DLL_API const char16_t* TestCSharpString16(const char16_t* in, CS_OUT const char16_t** out);

Loading…
Cancel
Save