Skip to content

Commit

Permalink
Merge pull request #254 from berolinux/llvm-16
Browse files Browse the repository at this point in the history
Port to LLVM 16.0
  • Loading branch information
chenyang78 authored Jun 8, 2023
2 parents 8d56bee + 8ab9a69 commit 26df757
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 33 deletions.
3 changes: 1 addition & 2 deletions clang_delta/CommonRenameClassRewriteVisitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -420,8 +420,7 @@ bool CommonRenameClassRewriteVisitor<T>::TraverseTemplateArgumentLoc(
return getDerived().TraverseStmt(ArgLoc.getSourceExpression());

case TemplateArgument::Pack:
return getDerived().TraverseTemplateArguments(Arg.pack_begin(),
Arg.pack_size());
return getDerived().TraverseTemplateArguments(Arg);
}

return true;
Expand Down
4 changes: 2 additions & 2 deletions clang_delta/ExpressionDetector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class IncludesPPCallbacks : public PPCallbacks {
virtual void InclusionDirective(SourceLocation HashLoc,
const Token &IncludeTok,
StringRef FileName, bool IsAngled,
CharSourceRange FilenameRange, Optional<FileEntryRef> File,
CharSourceRange FilenameRange, OptionalFileEntryRef File,
StringRef SearchPath, StringRef RelativePath,
const Module *Imported,
SrcMgr::CharacteristicKind FileType) override;
Expand All @@ -82,7 +82,7 @@ void IncludesPPCallbacks::InclusionDirective(SourceLocation HashLoc,
StringRef FileName,
bool /*IsAngled*/,
CharSourceRange /*FilenameRange*/,
Optional<FileEntryRef> /*File*/,
OptionalFileEntryRef /*File*/,
StringRef /*SearchPath*/,
StringRef /*RelativePath*/,
const Module * /*Imported*/,
Expand Down
6 changes: 3 additions & 3 deletions clang_delta/RemoveNestedFunction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,18 +183,18 @@ void RemoveNestedFunction::getVarStrForTemplateSpecialization(
std::string &VarStr,
const TemplateSpecializationType *TST)
{
unsigned NumArgs = TST->getNumArgs();
unsigned NumArgs = TST->template_arguments().size();
if (NumArgs == 0) {
return;
}

std::string ArgStr;
llvm::raw_string_ostream Stream(ArgStr);
TST->getArg(0).print(Context->getPrintingPolicy(), Stream,
TST->template_arguments()[0].print(Context->getPrintingPolicy(), Stream,
/*IncludeType*/ true);

for (unsigned I = 1; I < NumArgs; ++I) {
const TemplateArgument &Arg = TST->getArg(I);
const TemplateArgument &Arg = TST->template_arguments()[I];
Stream << ", ";
Arg.print(Context->getPrintingPolicy(), Stream, /*IncludeType*/ true);
}
Expand Down
5 changes: 2 additions & 3 deletions clang_delta/TemplateArgToInt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -357,8 +357,7 @@ void TemplateArgToInt::handleOneType(const Type *Ty)
if (!SubstType)
return;

const TemplateTypeParmType *ParmType = SubstType->getReplacedParameter();
TemplateTypeParmDecl *ParmDecl = ParmType->getDecl();
const TemplateTypeParmDecl *ParmDecl = SubstType->getReplacedParameter();
TransAssert(ParmDecl && "Invalid ParmDecl!");
const TemplateDecl *TmplD = ParamToTemplateDecl[ParmDecl];
if (TmplD == NULL) {
Expand All @@ -384,7 +383,7 @@ void TemplateArgToInt::handleOneType(const Type *Ty)
TemplateParameterIdxSet *InvalidIdx =
DeclToParamIdx[dyn_cast<TemplateDecl>(TmplD->getCanonicalDecl())];
TransAssert(InvalidIdx && "NULL InvalidIdx!");
InvalidIdx->insert(ParmType->getIndex());
InvalidIdx->insert(ParmDecl->getIndex());
}

TemplateArgToInt::~TemplateArgToInt()
Expand Down
29 changes: 12 additions & 17 deletions clang_delta/Transformation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -807,7 +807,7 @@ const CXXRecordDecl *Transformation::getBaseDeclFromType(const Type *Ty)

case Type::TypeOf: {
return getBaseDeclFromType(
dyn_cast<TypeOfType>(Ty)->getUnderlyingType().getTypePtr());
dyn_cast<TypeOfType>(Ty)->getUnmodifiedType().getTypePtr());
}

default:
Expand Down Expand Up @@ -876,8 +876,7 @@ bool Transformation::isBeforeColonColon(TypeLoc &Loc)
}

bool Transformation::replaceDependentNameString(const Type *Ty,
const TemplateArgument *Args,
unsigned NumArgs,
ArrayRef<TemplateArgument> Args,
std::string &Str,
bool &Typename)
{
Expand All @@ -901,7 +900,7 @@ bool Transformation::replaceDependentNameString(const Type *Ty,
return false;

unsigned Idx = ParmTy->getIndex();
TransAssert((Idx < NumArgs) && "Bad Parm Index!");
TransAssert((Idx < Args.size()) && "Bad Parm Index!");
const TemplateArgument Arg = Args[Idx];
if (Arg.getKind() != TemplateArgument::Type)
return false;
Expand All @@ -915,13 +914,12 @@ bool Transformation::replaceDependentNameString(const Type *Ty,

bool Transformation::getTemplateTypeParmString(
const TemplateTypeParmType *ParmTy,
const TemplateArgument *Args,
unsigned NumArgs,
ArrayRef<TemplateArgument> Args,
std::string &Str)
{
unsigned Idx = ParmTy->getIndex();
// we could have default template args, skip this case for now
if (Idx >= NumArgs)
if (Idx >= Args.size())
return false;
const TemplateArgument Arg = Args[Idx];
if (Arg.getKind() != TemplateArgument::Type)
Expand All @@ -933,8 +931,7 @@ bool Transformation::getTemplateTypeParmString(

bool Transformation::getTypedefString(const StringRef &Name,
const CXXRecordDecl *CXXRD,
const TemplateArgument *Args,
unsigned NumArgs,
ArrayRef<TemplateArgument> Args,
std::string &Str,
bool &Typename)
{
Expand All @@ -948,12 +945,12 @@ bool Transformation::getTypedefString(const StringRef &Name,
Type::TypeClass TC = UnderlyingTy->getTypeClass();
if (TC == Type::DependentName) {
if (replaceDependentNameString(UnderlyingTy, Args,
NumArgs, Str, Typename))
Str, Typename))
return true;
}
else if (const TemplateTypeParmType *ParmTy =
UnderlyingTy->getAs<TemplateTypeParmType>()) {
if (getTemplateTypeParmString(ParmTy, Args, NumArgs, Str))
if (getTemplateTypeParmString(ParmTy, Args, Str))
return true;
}
}
Expand All @@ -970,7 +967,7 @@ bool Transformation::getTypedefString(const StringRef &Name,
const CXXRecordDecl *BaseDef = Base->getDefinition();
if (!BaseDef)
continue;
if (getTypedefString(Name, BaseDef, Args, NumArgs, Str, Typename))
if (getTypedefString(Name, BaseDef, Args, Str, Typename))
return true;
}

Expand Down Expand Up @@ -998,15 +995,13 @@ bool Transformation::getDependentNameTypeString(
if (!BaseDef)
return false;

unsigned NumArgs = 0;
const TemplateArgument *Args = NULL;
ArrayRef<TemplateArgument> Args;
if (const TemplateSpecializationType *TST =
Ty->getAs<TemplateSpecializationType>()) {
NumArgs = TST->getNumArgs();
Args = TST->getArgs();
Args = TST->template_arguments();
}
return getTypedefString(IdInfo->getName(),
BaseDef, Args, NumArgs, Str, Typename);
BaseDef, Args, Str, Typename);
}

bool Transformation::getTypeString(const QualType &QT,
Expand Down
9 changes: 3 additions & 6 deletions clang_delta/Transformation.h
Original file line number Diff line number Diff line change
Expand Up @@ -271,8 +271,7 @@ friend class clang_delta_common_visitor::CommonRenameClassRewriteVisitor;

bool getTypedefString(const llvm::StringRef &Name,
const clang::CXXRecordDecl *CXXRD,
const clang::TemplateArgument *Args,
unsigned NumArgs,
const llvm::ArrayRef<clang::TemplateArgument> Args,
std::string &Str,
bool &Typename);

Expand All @@ -281,14 +280,12 @@ friend class clang_delta_common_visitor::CommonRenameClassRewriteVisitor;
bool &Typename);

bool replaceDependentNameString(const clang::Type *Ty,
const clang::TemplateArgument *Args,
unsigned NumArgs,
const llvm::ArrayRef<clang::TemplateArgument> Args,
std::string &Str,
bool &Typename);

bool getTemplateTypeParmString(const clang::TemplateTypeParmType *ParmTy,
const clang::TemplateArgument *Args,
unsigned NumArgs,
const llvm::ArrayRef<clang::TemplateArgument> Args,
std::string &Str);

unsigned getNumExplicitDecls(const clang::CXXRecordDecl *CXXRD);
Expand Down

0 comments on commit 26df757

Please sign in to comment.