Browse Source

Prevented C++ generation for invalid specialised functions.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/990/head
Dimitar Dobrev 9 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)
, isIncomplete(false) , isIncomplete(false)
, isDependent(false) , isDependent(false)
, isImplicit(false) , isImplicit(false)
, isInvalid(false)
, completeDeclaration(0) , completeDeclaration(0)
, definitionOrder(0) , definitionOrder(0)
, originalPtr(0) , originalPtr(0)
@ -268,6 +269,7 @@ Declaration::Declaration(const Declaration& rhs)
, isIncomplete(rhs.isIncomplete) , isIncomplete(rhs.isIncomplete)
, isDependent(rhs.isDependent) , isDependent(rhs.isDependent)
, isImplicit(rhs.isImplicit) , isImplicit(rhs.isImplicit)
, isInvalid(rhs.isInvalid)
, completeDeclaration(rhs.completeDeclaration) , completeDeclaration(rhs.completeDeclaration)
, definitionOrder(rhs.definitionOrder) , definitionOrder(rhs.definitionOrder)
, PreprocessedEntities(rhs.PreprocessedEntities) , PreprocessedEntities(rhs.PreprocessedEntities)

1
src/CppParser/AST.h

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

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

@ -2240,6 +2240,16 @@ void CppSharp::Parser::AST::Declaration::IsImplicit::set(bool value)
((::CppSharp::CppParser::AST::Declaration*)NativePtr)->isImplicit = 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() 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); 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
void set(bool); void set(bool);
} }
property bool IsInvalid
{
bool get();
void set(bool);
}
property CppSharp::Parser::AST::Declaration^ CompleteDeclaration property CppSharp::Parser::AST::Declaration^ CompleteDeclaration
{ {
CppSharp::Parser::AST::Declaration^ get(); CppSharp::Parser::AST::Declaration^ get();

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

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

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

@ -4259,6 +4259,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -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 public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{ {
get get
@ -4776,6 +4792,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5450,6 +5469,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5617,6 +5639,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5766,6 +5791,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5936,6 +5964,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -6862,6 +6893,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -7093,6 +7127,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -7641,6 +7678,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8093,6 +8133,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8249,6 +8292,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8598,6 +8644,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8938,6 +8987,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -9153,6 +9205,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -9299,6 +9354,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -9883,6 +9941,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10125,6 +10186,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10277,6 +10341,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10476,6 +10543,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10676,6 +10746,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10847,6 +10920,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11071,6 +11147,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11321,6 +11400,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11634,6 +11716,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11867,6 +11952,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12304,6 +12392,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12554,6 +12645,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12795,6 +12889,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12956,6 +13053,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -13620,6 +13720,9 @@ namespace CppSharp
[FieldOffset(102)] [FieldOffset(102)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(103)]
internal byte isInvalid;
[FieldOffset(104)] [FieldOffset(104)]
internal global::System.IntPtr completeDeclaration; 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
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -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 public global::CppSharp.Parser.AST.Declaration CompleteDeclaration
{ {
get get
@ -4775,6 +4791,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5449,6 +5468,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5616,6 +5638,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5765,6 +5790,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -5935,6 +5963,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -6861,6 +6892,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -7092,6 +7126,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -7640,6 +7677,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8092,6 +8132,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8248,6 +8291,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8597,6 +8643,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -8937,6 +8986,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -9152,6 +9204,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -9298,6 +9353,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -9882,6 +9940,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10124,6 +10185,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10276,6 +10340,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10475,6 +10542,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10675,6 +10745,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -10846,6 +10919,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11070,6 +11146,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11320,6 +11399,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11633,6 +11715,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -11866,6 +11951,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12303,6 +12391,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12553,6 +12644,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12794,6 +12888,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -12955,6 +13052,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;
@ -13619,6 +13719,9 @@ namespace CppSharp
[FieldOffset(114)] [FieldOffset(114)]
internal byte isImplicit; internal byte isImplicit;
[FieldOffset(115)]
internal byte isInvalid;
[FieldOffset(120)] [FieldOffset(120)]
internal global::System.IntPtr completeDeclaration; internal global::System.IntPtr completeDeclaration;

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

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

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

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

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

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

32
src/CppParser/Parser.cpp

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

1
src/CppParser/Parser.h

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

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

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

28
src/Generator/Passes/IgnoreSystemDeclarationsPass.cs

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

3
src/Parser/ASTConverter.cs

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

Loading…
Cancel
Save