From 90db6eb95daabe10145c60b126efecd4629f693c Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Tue, 13 Aug 2013 20:14:04 +0300 Subject: [PATCH] Added an option for the used ABI to the C++ Parser class. Signed-off-by: Dimitar Dobrev --- src/Generator/Parser.cs | 3 ++- src/Parser/Parser.cpp | 2 +- src/Parser/Parser.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Generator/Parser.cs b/src/Generator/Parser.cs index 775d1730..e2ec1de6 100644 --- a/src/Generator/Parser.cs +++ b/src/Generator/Parser.cs @@ -52,7 +52,8 @@ namespace CppSharp NoBuiltinIncludes = options.NoBuiltinIncludes, MicrosoftMode = options.MicrosoftMode, ToolSetToUse = options.ToolsetToUse, - TargetTriple = options.TargetTriple + TargetTriple = options.TargetTriple, + Abi = options.Abi }; var result = ClangParser.ParseHeader(parserOptions); diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index 219527d1..8c78d23e 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -114,7 +114,7 @@ void Parser::SetupHeader() C->setInvocation(Inv); TargetOptions& TO = Inv->getTargetOpts(); - TargetABI = Opts->MicrosoftMode ? TargetCXXABI::Microsoft + TargetABI = (Opts->Abi == CppSharp::AST::CppAbi::Microsoft) ? TargetCXXABI::Microsoft : TargetCXXABI::GenericItanium; TO.CXXABI = GetCXXABIString(TargetABI); diff --git a/src/Parser/Parser.h b/src/Parser/Parser.h index 39fb3147..0f687930 100644 --- a/src/Parser/Parser.h +++ b/src/Parser/Parser.h @@ -66,6 +66,7 @@ public ref struct ParserOptions bool NoStandardIncludes; bool NoBuiltinIncludes; bool MicrosoftMode; + CppSharp::AST::CppAbi Abi; bool Verbose; };