Browse Source

Add information about linkage to the AST

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1398/head
Dimitar Dobrev 5 years ago
parent
commit
e061edde76
  1. 11
      src/AST/Class.cs
  2. 2
      src/AST/Declaration.cs
  3. 10
      src/CppParser/Bindings/CLI/Decl.cpp
  4. 18
      src/CppParser/Bindings/CLI/Decl.h
  5. 1779
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  6. 1773
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  7. 117
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  8. 117
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  9. 117
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  10. 117
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  11. 12
      src/CppParser/Decl.h
  12. 3
      src/CppParser/Parser.cpp
  13. 7
      src/Generator.Tests/AST/TestAST.cs
  14. 2
      src/Parser/ASTConverter.cs
  15. 2
      tests/Native/AST.h

11
src/AST/Class.cs

@ -5,6 +5,17 @@ using CppSharp.AST.Extensions; @@ -5,6 +5,17 @@ using CppSharp.AST.Extensions;
namespace CppSharp.AST
{
public enum Linkage
{
NoLinkage,
InternalLinkage,
UniqueExternalLinkage,
VisibleNoLinkage,
ModuleInternalLinkage,
ModuleLinkage,
ExternalLinkage
}
// A C++ access specifier.
public enum AccessSpecifier
{

2
src/AST/Declaration.cs

@ -287,6 +287,8 @@ namespace CppSharp.AST @@ -287,6 +287,8 @@ namespace CppSharp.AST
// Comment associated with declaration.
public RawComment Comment;
public Linkage Linkage { get; set; }
public AccessSpecifier Access { get; set; }
// Contains debug text about the declaration.

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

@ -144,6 +144,16 @@ void CppSharp::Parser::AST::Declaration::Access::set(CppSharp::Parser::AST::Acce @@ -144,6 +144,16 @@ void CppSharp::Parser::AST::Declaration::Access::set(CppSharp::Parser::AST::Acce
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->access = (::CppSharp::CppParser::AST::AccessSpecifier)value;
}
CppSharp::Parser::AST::Linkage CppSharp::Parser::AST::Declaration::Linkage::get()
{
return (CppSharp::Parser::AST::Linkage)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->linkage;
}
void CppSharp::Parser::AST::Declaration::Linkage::set(CppSharp::Parser::AST::Linkage value)
{
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->linkage = (::CppSharp::CppParser::AST::Linkage)value;
}
CppSharp::Parser::AST::DeclarationContext^ CppSharp::Parser::AST::Declaration::Namespace::get()
{
return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_namespace == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->_namespace);

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

@ -23,6 +23,7 @@ namespace CppSharp @@ -23,6 +23,7 @@ namespace CppSharp
enum class CppAbi;
enum class DeclarationKind;
enum class FriendKind;
enum class Linkage;
enum class MacroLocation;
enum class RecordArgABI;
enum class RefQualifierKind;
@ -135,6 +136,17 @@ namespace CppSharp @@ -135,6 +136,17 @@ namespace CppSharp
Public = 2
};
public enum class Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
};
public enum class MacroLocation
{
Unknown = 0,
@ -319,6 +331,12 @@ namespace CppSharp @@ -319,6 +331,12 @@ namespace CppSharp
void set(CppSharp::Parser::AST::AccessSpecifier);
}
property CppSharp::Parser::AST::Linkage Linkage
{
CppSharp::Parser::AST::Linkage get();
void set(CppSharp::Parser::AST::Linkage);
}
property CppSharp::Parser::AST::DeclarationContext^ Namespace
{
CppSharp::Parser::AST::DeclarationContext^ get();

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

@ -6113,6 +6113,17 @@ namespace CppSharp @@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2
}
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation
{
Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp @@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp @@ -6550,6 +6564,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace
{
get
@ -6809,6 +6836,9 @@ namespace CppSharp @@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp @@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp @@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp @@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp @@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp @@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp @@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp @@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp @@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp @@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp @@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp @@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp @@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -12502,6 +12568,9 @@ namespace CppSharp @@ -12502,6 +12568,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13092,6 +13161,9 @@ namespace CppSharp @@ -13092,6 +13161,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13337,6 +13409,9 @@ namespace CppSharp @@ -13337,6 +13409,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13491,6 +13566,9 @@ namespace CppSharp @@ -13491,6 +13566,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13692,6 +13770,9 @@ namespace CppSharp @@ -13692,6 +13770,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13894,6 +13975,9 @@ namespace CppSharp @@ -13894,6 +13975,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14069,6 +14153,9 @@ namespace CppSharp @@ -14069,6 +14153,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14316,6 +14403,9 @@ namespace CppSharp @@ -14316,6 +14403,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14567,6 +14657,9 @@ namespace CppSharp @@ -14567,6 +14657,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14882,6 +14975,9 @@ namespace CppSharp @@ -14882,6 +14975,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15117,6 +15213,9 @@ namespace CppSharp @@ -15117,6 +15213,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15554,6 +15653,9 @@ namespace CppSharp @@ -15554,6 +15653,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15805,6 +15907,9 @@ namespace CppSharp @@ -15805,6 +15907,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16048,6 +16153,9 @@ namespace CppSharp @@ -16048,6 +16153,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16211,6 +16319,9 @@ namespace CppSharp @@ -16211,6 +16319,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16359,6 +16470,9 @@ namespace CppSharp @@ -16359,6 +16470,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16999,6 +17113,9 @@ namespace CppSharp @@ -16999,6 +17113,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;

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

@ -6113,6 +6113,17 @@ namespace CppSharp @@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2
}
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation
{
Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp @@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp @@ -6550,6 +6564,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace
{
get
@ -6809,6 +6836,9 @@ namespace CppSharp @@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp @@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp @@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp @@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp @@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp @@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp @@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp @@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp @@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp @@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp @@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp @@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp @@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -12502,6 +12568,9 @@ namespace CppSharp @@ -12502,6 +12568,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13092,6 +13161,9 @@ namespace CppSharp @@ -13092,6 +13161,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13337,6 +13409,9 @@ namespace CppSharp @@ -13337,6 +13409,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13491,6 +13566,9 @@ namespace CppSharp @@ -13491,6 +13566,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13692,6 +13770,9 @@ namespace CppSharp @@ -13692,6 +13770,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13894,6 +13975,9 @@ namespace CppSharp @@ -13894,6 +13975,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14069,6 +14153,9 @@ namespace CppSharp @@ -14069,6 +14153,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14316,6 +14403,9 @@ namespace CppSharp @@ -14316,6 +14403,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14567,6 +14657,9 @@ namespace CppSharp @@ -14567,6 +14657,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14882,6 +14975,9 @@ namespace CppSharp @@ -14882,6 +14975,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15117,6 +15213,9 @@ namespace CppSharp @@ -15117,6 +15213,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15554,6 +15653,9 @@ namespace CppSharp @@ -15554,6 +15653,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15805,6 +15907,9 @@ namespace CppSharp @@ -15805,6 +15907,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16048,6 +16153,9 @@ namespace CppSharp @@ -16048,6 +16153,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16211,6 +16319,9 @@ namespace CppSharp @@ -16211,6 +16319,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16359,6 +16470,9 @@ namespace CppSharp @@ -16359,6 +16470,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16999,6 +17113,9 @@ namespace CppSharp @@ -16999,6 +17113,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;

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

@ -6113,6 +6113,17 @@ namespace CppSharp @@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2
}
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation
{
Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp @@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp @@ -6550,6 +6564,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace
{
get
@ -6809,6 +6836,9 @@ namespace CppSharp @@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp @@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp @@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp @@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp @@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp @@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp @@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp @@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp @@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp @@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp @@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp @@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp @@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -12502,6 +12568,9 @@ namespace CppSharp @@ -12502,6 +12568,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13092,6 +13161,9 @@ namespace CppSharp @@ -13092,6 +13161,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13337,6 +13409,9 @@ namespace CppSharp @@ -13337,6 +13409,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13491,6 +13566,9 @@ namespace CppSharp @@ -13491,6 +13566,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13692,6 +13770,9 @@ namespace CppSharp @@ -13692,6 +13770,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13894,6 +13975,9 @@ namespace CppSharp @@ -13894,6 +13975,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14069,6 +14153,9 @@ namespace CppSharp @@ -14069,6 +14153,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14316,6 +14403,9 @@ namespace CppSharp @@ -14316,6 +14403,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14567,6 +14657,9 @@ namespace CppSharp @@ -14567,6 +14657,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14882,6 +14975,9 @@ namespace CppSharp @@ -14882,6 +14975,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15117,6 +15213,9 @@ namespace CppSharp @@ -15117,6 +15213,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15554,6 +15653,9 @@ namespace CppSharp @@ -15554,6 +15653,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15805,6 +15907,9 @@ namespace CppSharp @@ -15805,6 +15907,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16048,6 +16153,9 @@ namespace CppSharp @@ -16048,6 +16153,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16211,6 +16319,9 @@ namespace CppSharp @@ -16211,6 +16319,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16359,6 +16470,9 @@ namespace CppSharp @@ -16359,6 +16470,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16999,6 +17113,9 @@ namespace CppSharp @@ -16999,6 +17113,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;

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

@ -6113,6 +6113,17 @@ namespace CppSharp @@ -6113,6 +6113,17 @@ namespace CppSharp
Public = 2
}
public enum Linkage
{
NoLinkage = 0,
InternalLinkage = 1,
UniqueExternalLinkage = 2,
VisibleNoLinkage = 3,
ModuleInternalLinkage = 4,
ModuleLinkage = 5,
ExternalLinkage = 6
}
public enum MacroLocation
{
Unknown = 0,
@ -6272,6 +6283,9 @@ namespace CppSharp @@ -6272,6 +6283,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -6550,6 +6564,19 @@ namespace CppSharp @@ -6550,6 +6564,19 @@ namespace CppSharp
}
}
public global::CppSharp.Parser.AST.Linkage Linkage
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->linkage;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*)__Instance)->linkage = value;
}
}
public global::CppSharp.Parser.AST.DeclarationContext Namespace
{
get
@ -6809,6 +6836,9 @@ namespace CppSharp @@ -6809,6 +6836,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7494,6 +7524,9 @@ namespace CppSharp @@ -7494,6 +7524,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7665,6 +7698,9 @@ namespace CppSharp @@ -7665,6 +7698,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7816,6 +7852,9 @@ namespace CppSharp @@ -7816,6 +7852,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -7988,6 +8027,9 @@ namespace CppSharp @@ -7988,6 +8027,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -8886,6 +8928,9 @@ namespace CppSharp @@ -8886,6 +8928,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9142,6 +9187,9 @@ namespace CppSharp @@ -9142,6 +9187,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -9706,6 +9754,9 @@ namespace CppSharp @@ -9706,6 +9754,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10166,6 +10217,9 @@ namespace CppSharp @@ -10166,6 +10217,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10328,6 +10382,9 @@ namespace CppSharp @@ -10328,6 +10382,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -10671,6 +10728,9 @@ namespace CppSharp @@ -10671,6 +10728,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11009,6 +11069,9 @@ namespace CppSharp @@ -11009,6 +11069,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -11228,6 +11291,9 @@ namespace CppSharp @@ -11228,6 +11291,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -12503,6 +12569,9 @@ namespace CppSharp @@ -12503,6 +12569,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13093,6 +13162,9 @@ namespace CppSharp @@ -13093,6 +13162,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13338,6 +13410,9 @@ namespace CppSharp @@ -13338,6 +13410,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13492,6 +13567,9 @@ namespace CppSharp @@ -13492,6 +13567,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13693,6 +13771,9 @@ namespace CppSharp @@ -13693,6 +13771,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -13895,6 +13976,9 @@ namespace CppSharp @@ -13895,6 +13976,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14070,6 +14154,9 @@ namespace CppSharp @@ -14070,6 +14154,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14317,6 +14404,9 @@ namespace CppSharp @@ -14317,6 +14404,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14568,6 +14658,9 @@ namespace CppSharp @@ -14568,6 +14658,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -14883,6 +14976,9 @@ namespace CppSharp @@ -14883,6 +14976,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15118,6 +15214,9 @@ namespace CppSharp @@ -15118,6 +15214,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15555,6 +15654,9 @@ namespace CppSharp @@ -15555,6 +15654,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -15806,6 +15908,9 @@ namespace CppSharp @@ -15806,6 +15908,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16049,6 +16154,9 @@ namespace CppSharp @@ -16049,6 +16154,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16212,6 +16320,9 @@ namespace CppSharp @@ -16212,6 +16320,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -16360,6 +16471,9 @@ namespace CppSharp @@ -16360,6 +16471,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;
@ -17000,6 +17114,9 @@ namespace CppSharp @@ -17000,6 +17114,9 @@ namespace CppSharp
[FieldOffset(8)]
internal global::CppSharp.Parser.AST.AccessSpecifier access;
[FieldOffset(12)]
internal global::CppSharp.Parser.AST.Linkage linkage;
[FieldOffset(16)]
internal global::System.IntPtr _namespace;

12
src/CppParser/Decl.h

@ -59,6 +59,17 @@ enum class AccessSpecifier @@ -59,6 +59,17 @@ enum class AccessSpecifier
Public
};
enum class Linkage
{
NoLinkage,
InternalLinkage,
UniqueExternalLinkage,
VisibleNoLinkage,
ModuleInternalLinkage,
ModuleLinkage,
ExternalLinkage
};
class DeclarationContext;
class RawComment;
class PreprocessedEntity;
@ -73,6 +84,7 @@ public: @@ -73,6 +84,7 @@ public:
DeclarationKind kind;
int maxFieldAlignment;
AccessSpecifier access;
Linkage linkage;
DeclarationContext* _namespace;
SourceLocation location;
int lineNumberStart;

3
src/CppParser/Parser.cpp

@ -3769,6 +3769,9 @@ void Parser::HandleDeclaration(const clang::Decl* D, Declaration* Decl) @@ -3769,6 +3769,9 @@ void Parser::HandleDeclaration(const clang::Decl* D, Declaration* Decl)
}
}
if (auto ND = llvm::dyn_cast<clang::NamedDecl>(D))
Decl->linkage = (Linkage) ND->getLinkageAndVisibility().getLinkage();
if (IsDeclExplicit)
HandleOriginalText(D, Decl);
HandleComments(D, Decl);

7
src/Generator.Tests/AST/TestAST.cs

@ -651,5 +651,12 @@ namespace CppSharp.Generator.Tests.AST @@ -651,5 +651,12 @@ namespace CppSharp.Generator.Tests.AST
Assert.NotNull(macro);
Assert.AreEqual("(x, y, z) x##y##z", macro.Expression);
}
[Test]
public void TestLinkage()
{
var externConst = AstContext.FindDecl<Variable>("externConst").First();
Assert.That(externConst.Linkage, Is.EqualTo(Linkage.ExternalLinkage));
}
}
}

2
src/Parser/ASTConverter.cs

@ -971,6 +971,7 @@ namespace CppSharp @@ -971,6 +971,7 @@ namespace CppSharp
// already handled it and return the declaration.
Declarations[originalPtr] = _decl;
_decl.Linkage = (AST.Linkage) decl.Linkage;
_decl.Access = VisitAccessSpecifier(decl.Access);
_decl.Name = decl.Name;
_decl.USR = decl.USR;
@ -1528,7 +1529,6 @@ namespace CppSharp @@ -1528,7 +1529,6 @@ namespace CppSharp
_field.QualifiedType = typeConverter.VisitQualified(
decl.QualifiedType);
_field.Access = VisitAccessSpecifier(decl.Access);
_field.Class = Visit(decl.Class) as AST.Class;
_field.IsBitField = decl.IsBitField;
_field.BitWidth = decl.BitWidth;

2
tests/Native/AST.h

@ -253,3 +253,5 @@ int non_deprecated_func(int num); @@ -253,3 +253,5 @@ int non_deprecated_func(int num);
TestTemplateClass<double> returnIncompleteTemplateSpecialization();
#define MACRO(x, y, z) x##y##z
extern const int externConst = 1;

Loading…
Cancel
Save