mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-28 08:02:08 +00:00
NFC: Replace asserts with if() in SourceLocation accessors
Summary: Nowhere else in the AST classes assert on these kinds of accessors. This way, we can call the accessors and check the validity of the result instead of externally duplicating the conditions. This generality will make it possible to introspect instances for source locations: http://ec2-18-191-7-3.us-east-2.compute.amazonaws.com:10240/z/iiaWhw Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D56354 llvm-svn: 350573
This commit is contained in:
parent
b460f1624c
commit
54272e5b66
@ -729,9 +729,10 @@ public:
|
||||
/// getNamedTypeInfo - Returns the source type info associated to
|
||||
/// the name. Assumes it is a constructor, destructor or conversion.
|
||||
TypeSourceInfo *getNamedTypeInfo() const {
|
||||
assert(Name.getNameKind() == DeclarationName::CXXConstructorName ||
|
||||
Name.getNameKind() == DeclarationName::CXXDestructorName ||
|
||||
Name.getNameKind() == DeclarationName::CXXConversionFunctionName);
|
||||
if (Name.getNameKind() != DeclarationName::CXXConstructorName &&
|
||||
Name.getNameKind() != DeclarationName::CXXDestructorName &&
|
||||
Name.getNameKind() != DeclarationName::CXXConversionFunctionName)
|
||||
return nullptr;
|
||||
return LocInfo.NamedType.TInfo;
|
||||
}
|
||||
|
||||
@ -747,7 +748,8 @@ public:
|
||||
/// getCXXOperatorNameRange - Gets the range of the operator name
|
||||
/// (without the operator keyword). Assumes it is a (non-literal) operator.
|
||||
SourceRange getCXXOperatorNameRange() const {
|
||||
assert(Name.getNameKind() == DeclarationName::CXXOperatorName);
|
||||
if (Name.getNameKind() != DeclarationName::CXXOperatorName)
|
||||
return SourceRange();
|
||||
return SourceRange(
|
||||
SourceLocation::getFromRawEncoding(LocInfo.CXXOperatorName.BeginOpNameLoc),
|
||||
SourceLocation::getFromRawEncoding(LocInfo.CXXOperatorName.EndOpNameLoc)
|
||||
@ -766,7 +768,8 @@ public:
|
||||
/// operator name (not the operator keyword).
|
||||
/// Assumes it is a literal operator.
|
||||
SourceLocation getCXXLiteralOperatorNameLoc() const {
|
||||
assert(Name.getNameKind() == DeclarationName::CXXLiteralOperatorName);
|
||||
if (Name.getNameKind() != DeclarationName::CXXLiteralOperatorName)
|
||||
return SourceLocation();
|
||||
return SourceLocation::
|
||||
getFromRawEncoding(LocInfo.CXXLiteralOperatorName.OpNameLoc);
|
||||
}
|
||||
|
@ -530,19 +530,22 @@ public:
|
||||
}
|
||||
|
||||
NestedNameSpecifierLoc getTemplateQualifierLoc() const {
|
||||
assert(Argument.getKind() == TemplateArgument::Template ||
|
||||
Argument.getKind() == TemplateArgument::TemplateExpansion);
|
||||
if (Argument.getKind() != TemplateArgument::Template &&
|
||||
Argument.getKind() != TemplateArgument::TemplateExpansion)
|
||||
return NestedNameSpecifierLoc();
|
||||
return LocInfo.getTemplateQualifierLoc();
|
||||
}
|
||||
|
||||
SourceLocation getTemplateNameLoc() const {
|
||||
assert(Argument.getKind() == TemplateArgument::Template ||
|
||||
Argument.getKind() == TemplateArgument::TemplateExpansion);
|
||||
if (Argument.getKind() != TemplateArgument::Template &&
|
||||
Argument.getKind() != TemplateArgument::TemplateExpansion)
|
||||
return SourceLocation();
|
||||
return LocInfo.getTemplateNameLoc();
|
||||
}
|
||||
|
||||
SourceLocation getTemplateEllipsisLoc() const {
|
||||
assert(Argument.getKind() == TemplateArgument::TemplateExpansion);
|
||||
if (Argument.getKind() != TemplateArgument::TemplateExpansion)
|
||||
return SourceLocation();
|
||||
return LocInfo.getTemplateEllipsisLoc();
|
||||
}
|
||||
};
|
||||
|
@ -462,9 +462,9 @@ SourceRange NestedNameSpecifierLoc::getLocalSourceRange() const {
|
||||
}
|
||||
|
||||
TypeLoc NestedNameSpecifierLoc::getTypeLoc() const {
|
||||
assert((Qualifier->getKind() == NestedNameSpecifier::TypeSpec ||
|
||||
Qualifier->getKind() == NestedNameSpecifier::TypeSpecWithTemplate) &&
|
||||
"Nested-name-specifier location is not a type");
|
||||
if (Qualifier->getKind() != NestedNameSpecifier::TypeSpec &&
|
||||
Qualifier->getKind() != NestedNameSpecifier::TypeSpecWithTemplate)
|
||||
return TypeLoc();
|
||||
|
||||
// The "void*" that points at the TypeLoc data.
|
||||
unsigned Offset = getDataLength(Qualifier->getPrefix());
|
||||
|
Loading…
Reference in New Issue
Block a user