Browse Source

Merge pull request #157 from InitialForce/update_llvm

Update to latest llvm
pull/159/merge
João Matos 12 years ago
parent
commit
0c516bf7d5
  1. 31
      src/CppParser/Parser.cpp
  2. 31
      src/Parser/Parser.cpp

31
src/CppParser/Parser.cpp

@ -119,7 +119,6 @@ void Parser::SetupHeader() @@ -119,7 +119,6 @@ void Parser::SetupHeader()
TargetOptions& TO = Inv->getTargetOpts();
TargetABI = (Opts->Abi == CppAbi::Microsoft) ? TargetCXXABI::Microsoft
: TargetCXXABI::GenericItanium;
TO.CXXABI = GetCXXABIString(TargetABI);
TO.Triple = llvm::sys::getDefaultTargetTriple();
if (!Opts->TargetTriple.empty())
@ -939,7 +938,7 @@ Method* Parser::WalkMethodCXX(clang::CXXMethodDecl* MD) @@ -939,7 +938,7 @@ Method* Parser::WalkMethodCXX(clang::CXXMethodDecl* MD)
else if (const CXXConversionDecl* CD = dyn_cast<CXXConversionDecl>(MD))
{
auto TL = MD->getTypeSourceInfo()->getTypeLoc().castAs<FunctionTypeLoc>();
auto RTL = TL.getResultLoc();
auto RTL = TL.getReturnLoc();
auto ConvTy = WalkType(CD->getConversionType(), &RTL);
Method->ConversionType = GetQualifiedType(CD->getConversionType(), ConvTy);
}
@ -1398,20 +1397,20 @@ Type* Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL, @@ -1398,20 +1397,20 @@ Type* Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL,
if (TL && !TL->isNull())
{
FTL = TL->getAs<FunctionProtoTypeLoc>();
RL = FTL.getResultLoc();
RL = FTL.getReturnLoc();
}
auto F = new FunctionType();
F->ReturnType = GetQualifiedType(FP->getResultType(),
WalkType(FP->getResultType(), &RL));
F->ReturnType = GetQualifiedType(FP->getReturnType(),
WalkType(FP->getReturnType(), &RL));
F->CallingConvention = ConvertCallConv(FP->getCallConv());
for (unsigned i = 0; i < FP->getNumArgs(); ++i)
for (unsigned i = 0; i < FP->getNumParams(); ++i)
{
auto FA = new Parameter();
if (FTL)
{
auto PVD = FTL.getArg(i);
auto PVD = FTL.getParam(i);
HandleDeclaration(PVD, FA);
@ -1422,7 +1421,7 @@ Type* Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL, @@ -1422,7 +1421,7 @@ Type* Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL,
}
else
{
auto Arg = FP->getArgType(i);
auto Arg = FP->getParamType(i);
FA->Name = "";
FA->QualifiedType = GetQualifiedType(Arg, WalkType(Arg));
}
@ -1754,7 +1753,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F, @@ -1754,7 +1753,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F,
FunctionTypeLoc FTL = TSI->getTypeLoc().getAs<FunctionTypeLoc>();
if (FTL)
{
RTL = FTL.getResultLoc();
RTL = FTL.getReturnLoc();
auto &SM = C->getSourceManager();
auto headStartLoc = GetDeclStartLocation(C.get(), FD);
@ -1768,8 +1767,8 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F, @@ -1768,8 +1767,8 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F,
}
}
F->ReturnType = GetQualifiedType(FD->getResultType(),
WalkType(FD->getResultType(), &RTL));
F->ReturnType = GetQualifiedType(FD->getReturnType(),
WalkType(FD->getReturnType(), &RTL));
String Mangled = GetDeclMangledName(FD, TargetABI, IsDependent);
F->Mangled = Mangled;
@ -1790,7 +1789,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F, @@ -1790,7 +1789,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F,
assert (!FTInfo.isNull());
ParamStartLoc = FTInfo.getRParenLoc();
ResultLoc = FTInfo.getResultLoc().getLocStart();
ResultLoc = FTInfo.getReturnLoc().getLocStart();
}
}
@ -1829,7 +1828,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F, @@ -1829,7 +1828,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F,
}
bool CheckCodeGenInfo = !FD->isDependentContext() && !FD->isInvalidDecl();
CheckCodeGenInfo &= CanCheckCodeGenInfo(FD->getResultType().getTypePtr());
CheckCodeGenInfo &= CanCheckCodeGenInfo(FD->getReturnType().getTypePtr());
for (auto I = FD->param_begin(), E = FD->param_end(); I != E; ++I)
CheckCodeGenInfo &= CanCheckCodeGenInfo((*I)->getType().getTypePtr());
@ -2556,7 +2555,7 @@ ParserResultKind Parser::ParseArchive(llvm::StringRef File, @@ -2556,7 +2555,7 @@ ParserResultKind Parser::ParseArchive(llvm::StringRef File,
NativeLib = new NativeLibrary();
NativeLib->FileName = LibName;
for(auto it = Archive.begin_symbols(); it != Archive.end_symbols(); ++it)
for(auto it = Archive.symbol_begin(); it != Archive.symbol_end(); ++it)
{
llvm::StringRef SymRef;
@ -2583,7 +2582,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, @@ -2583,7 +2582,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File,
NativeLib->FileName = LibName;
llvm::error_code ec;
for(auto it = Object->begin_symbols(); it != Object->end_symbols(); it.increment(ec))
for(auto it = Object.get()->begin_symbols(); it != Object.get()->end_symbols(); it.increment(ec))
{
llvm::StringRef SymRef;
@ -2593,7 +2592,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, @@ -2593,7 +2592,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File,
NativeLib->Symbols.push_back(SymRef);
}
for(auto it = Object->begin_dynamic_symbols(); it != Object->end_dynamic_symbols();
for (auto it = Object.get()->begin_dynamic_symbols(); it != Object.get()->end_dynamic_symbols();
it.increment(ec))
{
llvm::StringRef SymRef;

31
src/Parser/Parser.cpp

@ -122,7 +122,6 @@ void Parser::SetupHeader() @@ -122,7 +122,6 @@ void Parser::SetupHeader()
TargetOptions& TO = Inv->getTargetOpts();
TargetABI = (Opts->Abi == CppAbi::Microsoft) ? TargetCXXABI::Microsoft
: TargetCXXABI::GenericItanium;
TO.CXXABI = GetCXXABIString(TargetABI);
TO.Triple = llvm::sys::getDefaultTargetTriple();
if (!System::String::IsNullOrWhiteSpace(Opts->TargetTriple))
@ -952,7 +951,7 @@ CppSharp::AST::Method^ Parser::WalkMethodCXX(clang::CXXMethodDecl* MD) @@ -952,7 +951,7 @@ CppSharp::AST::Method^ Parser::WalkMethodCXX(clang::CXXMethodDecl* MD)
else if (const CXXConversionDecl* CD = dyn_cast<CXXConversionDecl>(MD))
{
auto TL = MD->getTypeSourceInfo()->getTypeLoc().castAs<FunctionTypeLoc>();
auto RTL = TL.getResultLoc();
auto RTL = TL.getReturnLoc();
auto ConvTy = WalkType(CD->getConversionType(), &RTL);
Method->ConversionType = GetQualifiedType(CD->getConversionType(), ConvTy);
}
@ -1421,20 +1420,20 @@ CppSharp::AST::Type^ Parser::WalkType(clang::QualType QualType, clang::TypeLoc* @@ -1421,20 +1420,20 @@ CppSharp::AST::Type^ Parser::WalkType(clang::QualType QualType, clang::TypeLoc*
if (TL && !TL->isNull())
{
FTL = TL->getAs<FunctionProtoTypeLoc>();
RL = FTL.getResultLoc();
RL = FTL.getReturnLoc();
}
auto F = gcnew CppSharp::AST::FunctionType();
F->ReturnType = GetQualifiedType(FP->getResultType(),
WalkType(FP->getResultType(), &RL));
F->ReturnType = GetQualifiedType(FP->getReturnType(),
WalkType(FP->getReturnType(), &RL));
F->CallingConvention = ConvertCallConv(FP->getCallConv());
for (unsigned i = 0; i < FP->getNumArgs(); ++i)
for (unsigned i = 0; i < FP->getNumParams(); ++i)
{
auto FA = gcnew CppSharp::AST::Parameter();
if (FTL)
{
auto PVD = FTL.getArg(i);
auto PVD = FTL.getParam(i);
HandleDeclaration(PVD, FA);
@ -1445,7 +1444,7 @@ CppSharp::AST::Type^ Parser::WalkType(clang::QualType QualType, clang::TypeLoc* @@ -1445,7 +1444,7 @@ CppSharp::AST::Type^ Parser::WalkType(clang::QualType QualType, clang::TypeLoc*
}
else
{
auto Arg = FP->getArgType(i);
auto Arg = FP->getParamType(i);
FA->Name = "";
FA->QualifiedType = GetQualifiedType(Arg, WalkType(Arg));
}
@ -1775,7 +1774,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F, @@ -1775,7 +1774,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F,
FunctionTypeLoc FTL = TSI->getTypeLoc().getAs<FunctionTypeLoc>();
if (FTL)
{
RTL = FTL.getResultLoc();
RTL = FTL.getReturnLoc();
auto &SM = C->getSourceManager();
auto headStartLoc = GetDeclStartLocation(C.get(), FD);
@ -1789,8 +1788,8 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F, @@ -1789,8 +1788,8 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F,
}
}
F->ReturnType = GetQualifiedType(FD->getResultType(),
WalkType(FD->getResultType(), &RTL));
F->ReturnType = GetQualifiedType(FD->getReturnType(),
WalkType(FD->getReturnType(), &RTL));
String Mangled = GetDeclMangledName(FD, TargetABI, IsDependent);
F->Mangled = marshalString<E_UTF8>(Mangled);
@ -1811,7 +1810,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F, @@ -1811,7 +1810,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F,
assert (!FTInfo.isNull());
ParamStartLoc = FTInfo.getRParenLoc();
ResultLoc = FTInfo.getResultLoc().getLocStart();
ResultLoc = FTInfo.getReturnLoc().getLocStart();
}
}
@ -1850,7 +1849,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F, @@ -1850,7 +1849,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, CppSharp::AST::Function^ F,
}
bool CheckCodeGenInfo = !FD->isDependentContext() && !FD->isInvalidDecl();
CheckCodeGenInfo &= CanCheckCodeGenInfo(FD->getResultType().getTypePtr());
CheckCodeGenInfo &= CanCheckCodeGenInfo(FD->getReturnType().getTypePtr());
for (auto I = FD->param_begin(), E = FD->param_end(); I != E; ++I)
CheckCodeGenInfo &= CanCheckCodeGenInfo((*I)->getType().getTypePtr());
@ -2570,7 +2569,7 @@ ParserResultKind Parser::ParseArchive(llvm::StringRef File, @@ -2570,7 +2569,7 @@ ParserResultKind Parser::ParseArchive(llvm::StringRef File,
auto LibName = clix::marshalString<clix::E_UTF8>(File);
NativeLib->FileName = LibName;
for(auto it = Archive.begin_symbols(); it != Archive.end_symbols(); ++it)
for(auto it = Archive.symbol_begin(); it != Archive.symbol_end(); ++it)
{
llvm::StringRef SymRef;
@ -2597,7 +2596,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, @@ -2597,7 +2596,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File,
NativeLib->FileName = LibName;
llvm::error_code ec;
for(auto it = Object->begin_symbols(); it != Object->end_symbols(); it.increment(ec))
for(auto it = Object.get()->begin_symbols(); it != Object.get()->end_symbols(); it.increment(ec))
{
llvm::StringRef SymRef;
@ -2608,7 +2607,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, @@ -2608,7 +2607,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File,
NativeLib->Symbols->Add(SymName);
}
for(auto it = Object->begin_dynamic_symbols(); it != Object->end_dynamic_symbols();
for(auto it = Object.get()->begin_dynamic_symbols(); it != Object.get()->end_dynamic_symbols();
it.increment(ec))
{
llvm::StringRef SymRef;

Loading…
Cancel
Save