Browse Source

Add support for WebAssembly C++ ABI to parser and AST converter.

pull/1711/head
Joao Matos 2 years ago
parent
commit
813cf1fb74
  1. 3
      src/AST/ASTContext.cs
  2. 3
      src/CppParser/Bindings/CLI/Decl.h
  3. 3
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  4. 3
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  5. 3
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  6. 3
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  7. 3
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  8. 3
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  9. 1650
      src/CppParser/Decl.h
  10. 2
      src/CppParser/Parser.cpp
  11. 2
      src/Parser/ASTConverter.cs

3
src/AST/ASTContext.cs

@ -11,7 +11,8 @@ namespace CppSharp.AST @@ -11,7 +11,8 @@ namespace CppSharp.AST
Microsoft,
ARM,
iOS,
iOS64
iOS64,
WebAssembly
}
/// <summary>

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

@ -256,7 +256,8 @@ namespace CppSharp @@ -256,7 +256,8 @@ namespace CppSharp
Microsoft = 1,
ARM = 2,
iOS = 3,
iOS64 = 4
iOS64 = 4,
WebAssembly = 5
};
public enum class RecordArgABI

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

@ -6301,7 +6301,8 @@ namespace CppSharp @@ -6301,7 +6301,8 @@ namespace CppSharp
Microsoft = 1,
ARM = 2,
iOS = 3,
iOS64 = 4
iOS64 = 4,
WebAssembly = 5
}
public enum RecordArgABI

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

@ -6301,7 +6301,8 @@ namespace CppSharp @@ -6301,7 +6301,8 @@ namespace CppSharp
Microsoft = 1,
ARM = 2,
iOS = 3,
iOS64 = 4
iOS64 = 4,
WebAssembly = 5
}
public enum RecordArgABI

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

@ -6301,7 +6301,8 @@ namespace CppSharp @@ -6301,7 +6301,8 @@ namespace CppSharp
Microsoft = 1,
ARM = 2,
iOS = 3,
iOS64 = 4
iOS64 = 4,
WebAssembly = 5
}
public enum RecordArgABI

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

@ -6301,7 +6301,8 @@ namespace CppSharp @@ -6301,7 +6301,8 @@ namespace CppSharp
Microsoft = 1,
ARM = 2,
iOS = 3,
iOS64 = 4
iOS64 = 4,
WebAssembly = 5
}
public enum RecordArgABI

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

@ -6301,7 +6301,8 @@ namespace CppSharp @@ -6301,7 +6301,8 @@ namespace CppSharp
Microsoft = 1,
ARM = 2,
iOS = 3,
iOS64 = 4
iOS64 = 4,
WebAssembly = 5
}
public enum RecordArgABI

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

@ -6301,7 +6301,8 @@ namespace CppSharp @@ -6301,7 +6301,8 @@ namespace CppSharp
Microsoft = 1,
ARM = 2,
iOS = 3,
iOS64 = 4
iOS64 = 4,
WebAssembly = 5
}
public enum RecordArgABI

1650
src/CppParser/Decl.h

File diff suppressed because it is too large Load Diff

2
src/CppParser/Parser.cpp

@ -104,6 +104,8 @@ static CppAbi GetClassLayoutAbi(clang::TargetCXXABI::Kind abi) @@ -104,6 +104,8 @@ static CppAbi GetClassLayoutAbi(clang::TargetCXXABI::Kind abi)
return CppAbi::iOS;
case clang::TargetCXXABI::AppleARM64:
return CppAbi::iOS64;
case clang::TargetCXXABI::WebAssembly:
return CppAbi::WebAssembly;
default:
llvm_unreachable("Unsupported C++ ABI kind");
}

2
src/Parser/ASTConverter.cs

@ -1719,6 +1719,8 @@ namespace CppSharp @@ -1719,6 +1719,8 @@ namespace CppSharp
return AST.CppAbi.iOS;
case CppAbi.iOS64:
return AST.CppAbi.iOS64;
case CppAbi.WebAssembly:
return AST.CppAbi.WebAssembly;
default:
throw new ArgumentOutOfRangeException("abi");
}

Loading…
Cancel
Save