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

31
src/Parser/Parser.cpp

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

Loading…
Cancel
Save