Missing implementations for GenericAArch64 ABI
JordanL8 opened this issue · 0 comments
JordanL8 commented
There are a few places in Parser.cpp
that switch on the target ABI and then only handle Itanium and Microsoft. An assert is raised for unhandled ABIs.
The methods that do this are:
Parser::WalkVTable
Parser::GetDeclMangledName
Related, I'm unsure if this is a typo or deliberate but ConvertToClangTargetCXXABI
uses TargetCXXABI::GenericARM
for AppAbi::AArch64
instead of TargetCXXABI::GenericAArch64
.
ConvertToClangTargetCXXABI
static clang::TargetCXXABI::Kind
ConvertToClangTargetCXXABI(CppSharp::CppParser::AST::CppAbi abi)
{
using namespace clang;
switch (abi)
{
case CppSharp::CppParser::AST::CppAbi::Itanium:
return TargetCXXABI::GenericItanium;
case CppSharp::CppParser::AST::CppAbi::Microsoft:
return TargetCXXABI::Microsoft;
case CppSharp::CppParser::AST::CppAbi::ARM:
return TargetCXXABI::GenericARM;
case CppSharp::CppParser::AST::CppAbi::AArch64:
return TargetCXXABI::GenericARM;
case CppSharp::CppParser::AST::CppAbi::iOS:
return TargetCXXABI::iOS;
case CppSharp::CppParser::AST::CppAbi::AppleARM64:
return TargetCXXABI::AppleARM64;
}
llvm_unreachable("Unsupported C++ ABI.");
}