Browse Source

Prevented C++ generation for invalid specialised functions.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/990/head
Dimitar Dobrev 8 years ago
parent
commit
e53b25346e
  1. 2
      src/CppParser/AST.cpp
  2. 1
      src/CppParser/AST.h
  3. 10
      src/CppParser/Bindings/CLI/AST.cpp
  4. 6
      src/CppParser/Bindings/CLI/AST.h
  5. 103
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  6. 103
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  7. 103
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  8. 103
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  9. 103
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  10. 103
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  11. 32
      src/CppParser/Parser.cpp
  12. 1
      src/CppParser/Parser.h
  13. 13
      src/Generator/Generators/CSharp/CSharpSources.cs
  14. 28
      src/Generator/Passes/IgnoreSystemDeclarationsPass.cs
  15. 3
      src/Parser/ASTConverter.cs

2
src/CppParser/AST.cpp

@ -248,6 +248,7 @@ Declaration::Declaration(DeclarationKind kind) @@ -248,6 +248,7 @@ Declaration::Declaration(DeclarationKind kind)
, isIncomplete(false)
, isDependent(false)
, isImplicit(false)
, isInvalid(false)
, completeDeclaration(0)
, definitionOrder(0)
, originalPtr(0)
@ -268,6 +269,7 @@ Declaration::Declaration(const Declaration& rhs) @@ -268,6 +269,7 @@ Declaration::Declaration(const Declaration& rhs)
, isIncomplete(rhs.isIncomplete)
, isDependent(rhs.isDependent)
, isImplicit(rhs.isImplicit)
, isInvalid(rhs.isInvalid)
, completeDeclaration(rhs.completeDeclaration)
, definitionOrder(rhs.definitionOrder)
, PreprocessedEntities(rhs.PreprocessedEntities)

1
src/CppParser/AST.h

@ -483,6 +483,7 @@ public: @@ -483,6 +483,7 @@ public:
bool isIncomplete;
bool isDependent;
bool isImplicit;
bool isInvalid;
Declaration* completeDeclaration;
unsigned definitionOrder;
VECTOR(PreprocessedEntity*, PreprocessedEntities)

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

@ -2240,6 +2240,16 @@ void CppSharp::Parser::AST::Declaration::IsImplicit::set(bool value) @@ -2240,6 +2240,16 @@ void CppSharp::Parser::AST::Declaration::IsImplicit::set(bool value)
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->isImplicit = value;
}
bool CppSharp::Parser::AST::Declaration::IsInvalid::get()
{
return ((::CppSharp::CppParser::AST::Declaration*)NativePtr)->isInvalid;
}
void CppSharp::Parser::AST::Declaration::IsInvalid::set(bool value)
{
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->isInvalid = value;
}
CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::Declaration::CompleteDeclaration::get()
{
return (((::CppSharp::CppParser::AST::Declaration*)NativePtr)->completeDeclaration == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)((::CppSharp::CppParser::AST::Declaration*)NativePtr)->completeDeclaration);

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

@ -1514,6 +1514,12 @@ namespace CppSharp @@ -1514,6 +1514,12 @@ namespace CppSharp
void set(bool);
}
property bool IsInvalid
{
bool get();
void set(bool);
}
property CppSharp::Parser::AST::Declaration^ CompleteDeclaration
{
CppSharp::Parser::AST::Declaration^ get();

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

@ -4259,6 +4259,9 @@ namespace CppSharp @@ -4259,6 +4259,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -4651,6 +4654,19 @@ namespace CppSharp @@ -4651,6 +4654,19 @@ namespace CppSharp
}
}
public bool IsInvalid
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid != 0;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{
get
@ -4776,6 +4792,9 @@ namespace CppSharp @@ -4776,6 +4792,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -5450,6 +5469,9 @@ namespace CppSharp @@ -5450,6 +5469,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -5617,6 +5639,9 @@ namespace CppSharp @@ -5617,6 +5639,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -5766,6 +5791,9 @@ namespace CppSharp @@ -5766,6 +5791,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -5936,6 +5964,9 @@ namespace CppSharp @@ -5936,6 +5964,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -6862,6 +6893,9 @@ namespace CppSharp @@ -6862,6 +6893,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -7093,6 +7127,9 @@ namespace CppSharp @@ -7093,6 +7127,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -7641,6 +7678,9 @@ namespace CppSharp @@ -7641,6 +7678,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -8093,6 +8133,9 @@ namespace CppSharp @@ -8093,6 +8133,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -8249,6 +8292,9 @@ namespace CppSharp @@ -8249,6 +8292,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -8598,6 +8644,9 @@ namespace CppSharp @@ -8598,6 +8644,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -8938,6 +8987,9 @@ namespace CppSharp @@ -8938,6 +8987,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -9153,6 +9205,9 @@ namespace CppSharp @@ -9153,6 +9205,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -9299,6 +9354,9 @@ namespace CppSharp @@ -9299,6 +9354,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -9883,6 +9941,9 @@ namespace CppSharp @@ -9883,6 +9941,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -10125,6 +10186,9 @@ namespace CppSharp @@ -10125,6 +10186,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -10277,6 +10341,9 @@ namespace CppSharp @@ -10277,6 +10341,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -10476,6 +10543,9 @@ namespace CppSharp @@ -10476,6 +10543,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -10676,6 +10746,9 @@ namespace CppSharp @@ -10676,6 +10746,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -10847,6 +10920,9 @@ namespace CppSharp @@ -10847,6 +10920,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -11071,6 +11147,9 @@ namespace CppSharp @@ -11071,6 +11147,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -11321,6 +11400,9 @@ namespace CppSharp @@ -11321,6 +11400,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -11634,6 +11716,9 @@ namespace CppSharp @@ -11634,6 +11716,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -11867,6 +11952,9 @@ namespace CppSharp @@ -11867,6 +11952,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -12304,6 +12392,9 @@ namespace CppSharp @@ -12304,6 +12392,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -12554,6 +12645,9 @@ namespace CppSharp @@ -12554,6 +12645,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -12795,6 +12889,9 @@ namespace CppSharp @@ -12795,6 +12889,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -12956,6 +13053,9 @@ namespace CppSharp @@ -12956,6 +13053,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;
@ -13620,6 +13720,9 @@ namespace CppSharp @@ -13620,6 +13720,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(68)]
internal global::System.IntPtr completeDeclaration;

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

@ -4259,6 +4259,9 @@ namespace CppSharp @@ -4259,6 +4259,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -4651,6 +4654,19 @@ namespace CppSharp @@ -4651,6 +4654,19 @@ namespace CppSharp
}
}
public bool IsInvalid
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid != 0;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{
get
@ -4776,6 +4792,9 @@ namespace CppSharp @@ -4776,6 +4792,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -5450,6 +5469,9 @@ namespace CppSharp @@ -5450,6 +5469,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -5617,6 +5639,9 @@ namespace CppSharp @@ -5617,6 +5639,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -5766,6 +5791,9 @@ namespace CppSharp @@ -5766,6 +5791,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -5936,6 +5964,9 @@ namespace CppSharp @@ -5936,6 +5964,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -6862,6 +6893,9 @@ namespace CppSharp @@ -6862,6 +6893,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -7093,6 +7127,9 @@ namespace CppSharp @@ -7093,6 +7127,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -7641,6 +7678,9 @@ namespace CppSharp @@ -7641,6 +7678,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -8093,6 +8133,9 @@ namespace CppSharp @@ -8093,6 +8133,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -8249,6 +8292,9 @@ namespace CppSharp @@ -8249,6 +8292,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -8598,6 +8644,9 @@ namespace CppSharp @@ -8598,6 +8644,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -8938,6 +8987,9 @@ namespace CppSharp @@ -8938,6 +8987,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -9153,6 +9205,9 @@ namespace CppSharp @@ -9153,6 +9205,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -9299,6 +9354,9 @@ namespace CppSharp @@ -9299,6 +9354,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -9883,6 +9941,9 @@ namespace CppSharp @@ -9883,6 +9941,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -10125,6 +10186,9 @@ namespace CppSharp @@ -10125,6 +10186,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -10277,6 +10341,9 @@ namespace CppSharp @@ -10277,6 +10341,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -10476,6 +10543,9 @@ namespace CppSharp @@ -10476,6 +10543,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -10676,6 +10746,9 @@ namespace CppSharp @@ -10676,6 +10746,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -10847,6 +10920,9 @@ namespace CppSharp @@ -10847,6 +10920,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -11071,6 +11147,9 @@ namespace CppSharp @@ -11071,6 +11147,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -11321,6 +11400,9 @@ namespace CppSharp @@ -11321,6 +11400,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -11634,6 +11716,9 @@ namespace CppSharp @@ -11634,6 +11716,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -11867,6 +11952,9 @@ namespace CppSharp @@ -11867,6 +11952,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -12304,6 +12392,9 @@ namespace CppSharp @@ -12304,6 +12392,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -12554,6 +12645,9 @@ namespace CppSharp @@ -12554,6 +12645,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -12795,6 +12889,9 @@ namespace CppSharp @@ -12795,6 +12889,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -12956,6 +13053,9 @@ namespace CppSharp @@ -12956,6 +13053,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;
@ -13620,6 +13720,9 @@ namespace CppSharp @@ -13620,6 +13720,9 @@ namespace CppSharp
[FieldOffset(102)]
internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)]
internal global::System.IntPtr completeDeclaration;

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

@ -4258,6 +4258,9 @@ namespace CppSharp @@ -4258,6 +4258,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -4650,6 +4653,19 @@ namespace CppSharp @@ -4650,6 +4653,19 @@ namespace CppSharp
}
}
public bool IsInvalid
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid != 0;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{
get
@ -4775,6 +4791,9 @@ namespace CppSharp @@ -4775,6 +4791,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -5449,6 +5468,9 @@ namespace CppSharp @@ -5449,6 +5468,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -5616,6 +5638,9 @@ namespace CppSharp @@ -5616,6 +5638,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -5765,6 +5790,9 @@ namespace CppSharp @@ -5765,6 +5790,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -5935,6 +5963,9 @@ namespace CppSharp @@ -5935,6 +5963,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -6861,6 +6892,9 @@ namespace CppSharp @@ -6861,6 +6892,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -7092,6 +7126,9 @@ namespace CppSharp @@ -7092,6 +7126,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -7640,6 +7677,9 @@ namespace CppSharp @@ -7640,6 +7677,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -8092,6 +8132,9 @@ namespace CppSharp @@ -8092,6 +8132,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -8248,6 +8291,9 @@ namespace CppSharp @@ -8248,6 +8291,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -8597,6 +8643,9 @@ namespace CppSharp @@ -8597,6 +8643,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -8937,6 +8986,9 @@ namespace CppSharp @@ -8937,6 +8986,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -9152,6 +9204,9 @@ namespace CppSharp @@ -9152,6 +9204,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -9298,6 +9353,9 @@ namespace CppSharp @@ -9298,6 +9353,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -9882,6 +9940,9 @@ namespace CppSharp @@ -9882,6 +9940,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -10124,6 +10185,9 @@ namespace CppSharp @@ -10124,6 +10185,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -10276,6 +10340,9 @@ namespace CppSharp @@ -10276,6 +10340,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -10475,6 +10542,9 @@ namespace CppSharp @@ -10475,6 +10542,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -10675,6 +10745,9 @@ namespace CppSharp @@ -10675,6 +10745,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -10846,6 +10919,9 @@ namespace CppSharp @@ -10846,6 +10919,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -11070,6 +11146,9 @@ namespace CppSharp @@ -11070,6 +11146,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -11320,6 +11399,9 @@ namespace CppSharp @@ -11320,6 +11399,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -11633,6 +11715,9 @@ namespace CppSharp @@ -11633,6 +11715,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -11866,6 +11951,9 @@ namespace CppSharp @@ -11866,6 +11951,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -12303,6 +12391,9 @@ namespace CppSharp @@ -12303,6 +12391,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -12553,6 +12644,9 @@ namespace CppSharp @@ -12553,6 +12644,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -12794,6 +12888,9 @@ namespace CppSharp @@ -12794,6 +12888,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -12955,6 +13052,9 @@ namespace CppSharp @@ -12955,6 +13052,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;
@ -13619,6 +13719,9 @@ namespace CppSharp @@ -13619,6 +13719,9 @@ namespace CppSharp
[FieldOffset(114)]
internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)]
internal global::System.IntPtr completeDeclaration;

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

@ -4258,6 +4258,9 @@ namespace CppSharp @@ -4258,6 +4258,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -4650,6 +4653,19 @@ namespace CppSharp @@ -4650,6 +4653,19 @@ namespace CppSharp
}
}
public bool IsInvalid
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid != 0;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{
get
@ -4775,6 +4791,9 @@ namespace CppSharp @@ -4775,6 +4791,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5449,6 +5468,9 @@ namespace CppSharp @@ -5449,6 +5468,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5616,6 +5638,9 @@ namespace CppSharp @@ -5616,6 +5638,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5765,6 +5790,9 @@ namespace CppSharp @@ -5765,6 +5790,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5935,6 +5963,9 @@ namespace CppSharp @@ -5935,6 +5963,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -6861,6 +6892,9 @@ namespace CppSharp @@ -6861,6 +6892,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -7092,6 +7126,9 @@ namespace CppSharp @@ -7092,6 +7126,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -7640,6 +7677,9 @@ namespace CppSharp @@ -7640,6 +7677,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8092,6 +8132,9 @@ namespace CppSharp @@ -8092,6 +8132,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8248,6 +8291,9 @@ namespace CppSharp @@ -8248,6 +8291,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8597,6 +8643,9 @@ namespace CppSharp @@ -8597,6 +8643,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8937,6 +8986,9 @@ namespace CppSharp @@ -8937,6 +8986,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -9152,6 +9204,9 @@ namespace CppSharp @@ -9152,6 +9204,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -9298,6 +9353,9 @@ namespace CppSharp @@ -9298,6 +9353,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -9882,6 +9940,9 @@ namespace CppSharp @@ -9882,6 +9940,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10124,6 +10185,9 @@ namespace CppSharp @@ -10124,6 +10185,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10276,6 +10340,9 @@ namespace CppSharp @@ -10276,6 +10340,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10475,6 +10542,9 @@ namespace CppSharp @@ -10475,6 +10542,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10675,6 +10745,9 @@ namespace CppSharp @@ -10675,6 +10745,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10846,6 +10919,9 @@ namespace CppSharp @@ -10846,6 +10919,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11070,6 +11146,9 @@ namespace CppSharp @@ -11070,6 +11146,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11320,6 +11399,9 @@ namespace CppSharp @@ -11320,6 +11399,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11633,6 +11715,9 @@ namespace CppSharp @@ -11633,6 +11715,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11866,6 +11951,9 @@ namespace CppSharp @@ -11866,6 +11951,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12303,6 +12391,9 @@ namespace CppSharp @@ -12303,6 +12391,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12553,6 +12644,9 @@ namespace CppSharp @@ -12553,6 +12644,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12794,6 +12888,9 @@ namespace CppSharp @@ -12794,6 +12888,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12955,6 +13052,9 @@ namespace CppSharp @@ -12955,6 +13052,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -13619,6 +13719,9 @@ namespace CppSharp @@ -13619,6 +13719,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;

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

@ -4258,6 +4258,9 @@ namespace CppSharp @@ -4258,6 +4258,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -4650,6 +4653,19 @@ namespace CppSharp @@ -4650,6 +4653,19 @@ namespace CppSharp
}
}
public bool IsInvalid
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid != 0;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{
get
@ -4775,6 +4791,9 @@ namespace CppSharp @@ -4775,6 +4791,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -5449,6 +5468,9 @@ namespace CppSharp @@ -5449,6 +5468,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -5616,6 +5638,9 @@ namespace CppSharp @@ -5616,6 +5638,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -5765,6 +5790,9 @@ namespace CppSharp @@ -5765,6 +5790,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -5935,6 +5963,9 @@ namespace CppSharp @@ -5935,6 +5963,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -6861,6 +6892,9 @@ namespace CppSharp @@ -6861,6 +6892,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -7092,6 +7126,9 @@ namespace CppSharp @@ -7092,6 +7126,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -7640,6 +7677,9 @@ namespace CppSharp @@ -7640,6 +7677,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -8092,6 +8132,9 @@ namespace CppSharp @@ -8092,6 +8132,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -8248,6 +8291,9 @@ namespace CppSharp @@ -8248,6 +8291,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -8597,6 +8643,9 @@ namespace CppSharp @@ -8597,6 +8643,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -8937,6 +8986,9 @@ namespace CppSharp @@ -8937,6 +8986,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -9152,6 +9204,9 @@ namespace CppSharp @@ -9152,6 +9204,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -9298,6 +9353,9 @@ namespace CppSharp @@ -9298,6 +9353,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -9882,6 +9940,9 @@ namespace CppSharp @@ -9882,6 +9940,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -10124,6 +10185,9 @@ namespace CppSharp @@ -10124,6 +10185,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -10276,6 +10340,9 @@ namespace CppSharp @@ -10276,6 +10340,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -10475,6 +10542,9 @@ namespace CppSharp @@ -10475,6 +10542,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -10675,6 +10745,9 @@ namespace CppSharp @@ -10675,6 +10745,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -10846,6 +10919,9 @@ namespace CppSharp @@ -10846,6 +10919,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -11070,6 +11146,9 @@ namespace CppSharp @@ -11070,6 +11146,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -11320,6 +11399,9 @@ namespace CppSharp @@ -11320,6 +11399,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -11633,6 +11715,9 @@ namespace CppSharp @@ -11633,6 +11715,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -11866,6 +11951,9 @@ namespace CppSharp @@ -11866,6 +11951,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -12303,6 +12391,9 @@ namespace CppSharp @@ -12303,6 +12391,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -12553,6 +12644,9 @@ namespace CppSharp @@ -12553,6 +12644,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -12794,6 +12888,9 @@ namespace CppSharp @@ -12794,6 +12888,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -12955,6 +13052,9 @@ namespace CppSharp @@ -12955,6 +13052,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;
@ -13619,6 +13719,9 @@ namespace CppSharp @@ -13619,6 +13719,9 @@ namespace CppSharp
[FieldOffset(66)]
internal byte isImplicit;
[FieldOffset(67)]
internal byte isInvalid;
[FieldOffset(72)]
internal global::System.IntPtr completeDeclaration;

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

@ -4259,6 +4259,9 @@ namespace CppSharp @@ -4259,6 +4259,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -4651,6 +4654,19 @@ namespace CppSharp @@ -4651,6 +4654,19 @@ namespace CppSharp
}
}
public bool IsInvalid
{
get
{
return ((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid != 0;
}
set
{
((global::CppSharp.Parser.AST.Declaration.__Internal*) __Instance)->isInvalid = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{
get
@ -4776,6 +4792,9 @@ namespace CppSharp @@ -4776,6 +4792,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5450,6 +5469,9 @@ namespace CppSharp @@ -5450,6 +5469,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5617,6 +5639,9 @@ namespace CppSharp @@ -5617,6 +5639,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5766,6 +5791,9 @@ namespace CppSharp @@ -5766,6 +5791,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -5936,6 +5964,9 @@ namespace CppSharp @@ -5936,6 +5964,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -6862,6 +6893,9 @@ namespace CppSharp @@ -6862,6 +6893,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -7093,6 +7127,9 @@ namespace CppSharp @@ -7093,6 +7127,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -7641,6 +7678,9 @@ namespace CppSharp @@ -7641,6 +7678,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8093,6 +8133,9 @@ namespace CppSharp @@ -8093,6 +8133,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8249,6 +8292,9 @@ namespace CppSharp @@ -8249,6 +8292,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8598,6 +8644,9 @@ namespace CppSharp @@ -8598,6 +8644,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -8938,6 +8987,9 @@ namespace CppSharp @@ -8938,6 +8987,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -9153,6 +9205,9 @@ namespace CppSharp @@ -9153,6 +9205,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -9299,6 +9354,9 @@ namespace CppSharp @@ -9299,6 +9354,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -9883,6 +9941,9 @@ namespace CppSharp @@ -9883,6 +9941,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10125,6 +10186,9 @@ namespace CppSharp @@ -10125,6 +10186,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10277,6 +10341,9 @@ namespace CppSharp @@ -10277,6 +10341,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10476,6 +10543,9 @@ namespace CppSharp @@ -10476,6 +10543,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10676,6 +10746,9 @@ namespace CppSharp @@ -10676,6 +10746,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -10847,6 +10920,9 @@ namespace CppSharp @@ -10847,6 +10920,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11071,6 +11147,9 @@ namespace CppSharp @@ -11071,6 +11147,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11321,6 +11400,9 @@ namespace CppSharp @@ -11321,6 +11400,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11634,6 +11716,9 @@ namespace CppSharp @@ -11634,6 +11716,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -11867,6 +11952,9 @@ namespace CppSharp @@ -11867,6 +11952,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12304,6 +12392,9 @@ namespace CppSharp @@ -12304,6 +12392,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12554,6 +12645,9 @@ namespace CppSharp @@ -12554,6 +12645,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12795,6 +12889,9 @@ namespace CppSharp @@ -12795,6 +12889,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -12956,6 +13053,9 @@ namespace CppSharp @@ -12956,6 +13053,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;
@ -13620,6 +13720,9 @@ namespace CppSharp @@ -13620,6 +13720,9 @@ namespace CppSharp
[FieldOffset(138)]
internal byte isImplicit;
[FieldOffset(139)]
internal byte isInvalid;
[FieldOffset(144)]
internal global::System.IntPtr completeDeclaration;

32
src/CppParser/Parser.cpp

@ -259,7 +259,7 @@ void Parser::Setup() @@ -259,7 +259,7 @@ void Parser::Setup()
CompilerInvocation::CreateFromArgs(*Inv, args.data(), args.data() + args.size(),
c->getDiagnostics());
c->setInvocation(std::shared_ptr<CompilerInvocation>(Inv));
c->getLangOpts() = *Inv->LangOpts;
auto& TO = Inv->TargetOpts;
targetABI = ConvertToClangTargetCXXABI(opts->abi);
@ -1136,7 +1136,7 @@ struct DiagnosticConsumer : public clang::DiagnosticConsumer @@ -1136,7 +1136,7 @@ struct DiagnosticConsumer : public clang::DiagnosticConsumer
NumErrors++;
if (Decl)
{
Decl->setInvalidDecl();
Decl->isInvalid = true;
Decl = 0;
}
}
@ -1149,7 +1149,7 @@ struct DiagnosticConsumer : public clang::DiagnosticConsumer @@ -1149,7 +1149,7 @@ struct DiagnosticConsumer : public clang::DiagnosticConsumer
}
std::vector<Diagnostic> Diagnostics;
clang::Decl* Decl;
Declaration* Decl;
};
ClassTemplateSpecialization*
@ -2919,7 +2919,6 @@ void Parser::CompleteIfSpecializationType(const clang::QualType& QualType) @@ -2919,7 +2919,6 @@ void Parser::CompleteIfSpecializationType(const clang::QualType& QualType)
auto Diagnostics = c->getSema().getDiagnostics().getClient();
auto SemaDiagnostics = static_cast<::DiagnosticConsumer*>(Diagnostics);
SemaDiagnostics->Decl = CTS;
c->getSema().InstantiateClassTemplateSpecialization(CTS->getLocStart(),
CTS, TSK_ImplicitInstantiation, false);
}
@ -2983,6 +2982,27 @@ void Parser::SetBody(const clang::FunctionDecl* FD, Function* F) @@ -2983,6 +2982,27 @@ void Parser::SetBody(const clang::FunctionDecl* FD, Function* F)
}
}
void Parser::MarkValidity(Function* F)
{
using namespace clang;
auto FD = static_cast<FunctionDecl*>(F->originalPtr);
if (!FD->getTemplateInstantiationPattern() ||
FD->getTemplateInstantiationPattern()->isLateTemplateParsed() ||
!FD->isExternallyVisible() ||
c->getSourceManager().isInSystemHeader(FD->getLocStart()))
return;
auto Diagnostics = c->getSema().getDiagnostics().getClient();
auto SemaDiagnostics = static_cast<::DiagnosticConsumer*>(Diagnostics);
SemaDiagnostics->Decl = F;
c->getSema().InstantiateFunctionDefinition(FD->getLocStart(), FD,
/*Recursive*/true);
if (!F->isInvalid)
F->isInvalid = FD->isInvalidDecl();
}
void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
bool IsDependent)
{
@ -3101,7 +3121,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F, @@ -3101,7 +3121,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
if (auto FTSI = FD->getTemplateSpecializationInfo())
F->specializationInfo = WalkFunctionTemplateSpec(FTSI, F);
if (F->isDependent)
if (FD->isDependentContext())
return;
const CXXMethodDecl* MD;
@ -3129,6 +3149,8 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F, @@ -3129,6 +3149,8 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
continue;
F->Parameters[Index++]->isIndirect = I->info.isIndirect();
}
MarkValidity(F);
}
Function* Parser::WalkFunction(const clang::FunctionDecl* FD, bool IsDependent,

1
src/CppParser/Parser.h

@ -120,6 +120,7 @@ private: @@ -120,6 +120,7 @@ private:
Parameter* WalkParameter(const clang::ParmVarDecl* PVD,
const clang::SourceLocation& ParamStartLoc);
void SetBody(const clang::FunctionDecl* FD, Function* F);
void MarkValidity(Function* F);
void WalkFunction(const clang::FunctionDecl* FD, Function* F,
bool IsDependent = false);
void HandlePreprocessedEntities(Declaration* Decl);

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

@ -2313,15 +2313,22 @@ namespace CppSharp.Generators.CSharp @@ -2313,15 +2313,22 @@ namespace CppSharp.Generators.CSharp
{
var specializedMethod = @class.Methods.FirstOrDefault(
m => m.InstantiatedFrom == method);
if (specializedMethod != null)
method = specializedMethod;
else
if (specializedMethod == null)
{
WriteLine($@"throw new MissingMethodException(""Method {
method.Name} missing from explicit specialization {
@class.Visit(TypePrinter)}."");");
return;
}
if (specializedMethod.Ignore)
{
WriteLine($@"throw new MissingMethodException(""Method {
method.Name} ignored in specialization {
@class.Visit(TypePrinter)}."");");
return;
}
method = specializedMethod;
}
if (@class.IsRefType)
{

28
src/Generator/Passes/IgnoreSystemDeclarationsPass.cs

@ -77,19 +77,26 @@ namespace CppSharp.Passes @@ -77,19 +77,26 @@ namespace CppSharp.Passes
}
break;
case "allocator":
foreach (var method in @class.Methods.Where(m => !m.IsConstructor || m.Parameters.Any()))
foreach (var method in @class.Methods.Where(Unused))
method.ExplicitlyIgnore();
foreach (var allocator in GetCharSpecializations(@class))
{
allocator.GenerationKind = GenerationKind.Generate;
foreach (var method in allocator.Methods)
method.ExplicitlyIgnore();
var ctor = allocator.Methods.Single(m => m.IsConstructor && !m.Parameters.Any());
ctor.GenerationKind = GenerationKind.Generate;
ctor.InstantiatedFrom.GenerationKind = GenerationKind.Generate;
ctor.InstantiatedFrom.Namespace.GenerationKind = GenerationKind.Generate;
foreach (var parameter in ctor.Parameters)
parameter.DefaultArgument = null;
{
if (Unused(method))
method.ExplicitlyIgnore();
else
{
method.GenerationKind = GenerationKind.Generate;
if (method.InstantiatedFrom != null)
method.InstantiatedFrom.GenerationKind =
method.InstantiatedFrom.Namespace.GenerationKind =
GenerationKind.Generate;
foreach (var parameter in method.Parameters)
parameter.DefaultArgument = null;
}
}
}
break;
case "char_traits":
@ -107,6 +114,11 @@ namespace CppSharp.Passes @@ -107,6 +114,11 @@ namespace CppSharp.Passes
return true;
}
private static bool Unused(Method m)
{
return !m.IsDestructor && (!m.IsConstructor || m.Parameters.Count > 0);
}
private static IEnumerable<ClassTemplateSpecialization> GetCharSpecializations(Class @class)
{
return @class.Specializations.Where(s =>

3
src/Parser/ASTConverter.cs

@ -944,6 +944,9 @@ namespace CppSharp @@ -944,6 +944,9 @@ namespace CppSharp
_decl.DebugText = decl.DebugText;
_decl.IsIncomplete = decl.IsIncomplete;
_decl.IsDependent = decl.IsDependent;
_decl.IsImplicit = decl.IsImplicit;
if (decl.IsInvalid)
_decl.GenerationKind = AST.GenerationKind.None;
_decl.DefinitionOrder = decl.DefinitionOrder;
_decl.MaxFieldAlignment = decl.MaxFieldAlignment;

Loading…
Cancel
Save