From 740a284323ad8b02a0940b87eb44bd1b533e2250 Mon Sep 17 00:00:00 2001 From: triton Date: Sat, 25 Oct 2014 23:12:45 +0100 Subject: [PATCH] Added support for iOS and iOS 64-bits ABIs. --- src/AST/ASTContext.cs | 4 +++- src/Core/Parser/ASTConverter.cs | 4 ++++ src/CppParser/AST.h | 4 +++- src/CppParser/Bindings/CLI/AST.h | 4 +++- .../CSharp/i686-apple-darwin12.4.0/AST.cs | 4 +++- .../Bindings/CSharp/i686-pc-win32-msvc/AST.cs | 4 +++- .../Bindings/CSharp/x86_64-linux-gnu/AST.cs | 4 +++- src/CppParser/Parser.cpp | 17 ++++------------- 8 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/AST/ASTContext.cs b/src/AST/ASTContext.cs index fadbcf47..3c8f2043 100644 --- a/src/AST/ASTContext.cs +++ b/src/AST/ASTContext.cs @@ -9,7 +9,9 @@ namespace CppSharp.AST { Itanium, Microsoft, - ARM + ARM, + iOS, + iOS64 } /// diff --git a/src/Core/Parser/ASTConverter.cs b/src/Core/Parser/ASTConverter.cs index 437f8530..4f0f43fb 100644 --- a/src/Core/Parser/ASTConverter.cs +++ b/src/Core/Parser/ASTConverter.cs @@ -1222,6 +1222,10 @@ namespace CppSharp return AST.CppAbi.Microsoft; case CppAbi.ARM: return AST.CppAbi.ARM; + case CppAbi.iOS: + return AST.CppAbi.iOS; + case CppAbi.iOS64: + return AST.CppAbi.iOS64; default: throw new ArgumentOutOfRangeException("abi"); } diff --git a/src/CppParser/AST.h b/src/CppParser/AST.h index e5f7f58c..4517e52a 100644 --- a/src/CppParser/AST.h +++ b/src/CppParser/AST.h @@ -281,7 +281,9 @@ enum class CppAbi { Itanium, Microsoft, - ARM + ARM, + iOS, + iOS64 }; enum class VTableComponentKind diff --git a/src/CppParser/Bindings/CLI/AST.h b/src/CppParser/Bindings/CLI/AST.h index d3b3739f..1304843c 100644 --- a/src/CppParser/Bindings/CLI/AST.h +++ b/src/CppParser/Bindings/CLI/AST.h @@ -230,7 +230,9 @@ namespace CppSharp { Itanium = 0, Microsoft = 1, - ARM = 2 + ARM = 2, + iOS = 3, + iOS64 = 4 }; public enum struct VTableComponentKind diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs index 10a4d71b..9f1d090c 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs @@ -153,7 +153,9 @@ namespace CppSharp { Itanium = 0, Microsoft = 1, - ARM = 2 + ARM = 2, + iOS = 3, + iOS64 = 4 } public enum VTableComponentKind diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/AST.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/AST.cs index 3faeee2e..ba46883d 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/AST.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/AST.cs @@ -153,7 +153,9 @@ namespace CppSharp { Itanium = 0, Microsoft = 1, - ARM = 2 + ARM = 2, + iOS = 3, + iOS64 = 4 } public enum VTableComponentKind diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/AST.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/AST.cs index 3400e573..a0c7febf 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/AST.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/AST.cs @@ -153,7 +153,9 @@ namespace CppSharp { Itanium = 0, Microsoft = 1, - ARM = 2 + ARM = 2, + iOS = 3, + iOS64 = 4 } public enum VTableComponentKind diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index 9c7d90c3..1aa92b73 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -86,19 +86,6 @@ static std::string GetClangBuiltinIncludeDir() //-----------------------------------// -static std::string GetCXXABIString(clang::TargetCXXABI::Kind Kind) -{ - switch(Kind) - { - case clang::TargetCXXABI::GenericItanium: - return "itanium"; - case clang::TargetCXXABI::Microsoft: - return "microsoft"; - default: - llvm_unreachable("Unknown C++ ABI kind"); - } -} - #ifdef _MSC_VER std::vector GetWindowsSystemIncludeDirs(); #endif @@ -116,6 +103,10 @@ ConvertToClangTargetCXXABI(CppSharp::CppParser::AST::CppAbi abi) return TargetCXXABI::Microsoft; case CppSharp::CppParser::AST::CppAbi::ARM: return TargetCXXABI::GenericARM; + case CppSharp::CppParser::AST::CppAbi::iOS: + return TargetCXXABI::iOS; + case CppSharp::CppParser::AST::CppAbi::iOS64: + return TargetCXXABI::iOS64; } llvm_unreachable("Unsupported C++ ABI.");