mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-28 02:37:37 +00:00
[AST/Lex/Parse/Sema] As part of using inclusive language within
the llvm project, migrate away from the use of blacklist and whitelist.
This commit is contained in:
parent
b32401464f
commit
1f593f46f3
@ -9749,7 +9749,7 @@ static bool EvaluateArrayNewConstructExpr(EvalInfo &Info, LValue &This,
|
||||
|
||||
// Return true iff the given array filler may depend on the element index.
|
||||
static bool MaybeElementDependentArrayFiller(const Expr *FillerExpr) {
|
||||
// For now, just whitelist non-class value-initialization and initialization
|
||||
// For now, just allow non-class value-initialization and initialization
|
||||
// lists comprised of them.
|
||||
if (isa<ImplicitValueInitExpr>(FillerExpr))
|
||||
return false;
|
||||
@ -10615,9 +10615,9 @@ static bool isUserWritingOffTheEnd(const ASTContext &Ctx, const LValue &LVal) {
|
||||
// the array at the end was flexible, or if it had 0 or 1 elements. This
|
||||
// broke some common standard library extensions (PR30346), but was
|
||||
// otherwise seemingly fine. It may be useful to reintroduce this behavior
|
||||
// with some sort of whitelist. OTOH, it seems that GCC is always
|
||||
// with some sort of list. OTOH, it seems that GCC is always
|
||||
// conservative with the last element in structs (if it's an array), so our
|
||||
// current behavior is more compatible than a whitelisting approach would
|
||||
// current behavior is more compatible than an explicit list approach would
|
||||
// be.
|
||||
return LVal.InvalidBase &&
|
||||
Designator.Entries.size() == Designator.MostDerivedPathLength &&
|
||||
|
@ -87,7 +87,7 @@ protected:
|
||||
public:
|
||||
DarwinTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
|
||||
: OSTargetInfo<Target>(Triple, Opts) {
|
||||
// By default, no TLS, and we whitelist permitted architecture/OS
|
||||
// By default, no TLS, and we list permitted architecture/OS
|
||||
// combinations.
|
||||
this->TLSSupported = false;
|
||||
|
||||
|
@ -1862,7 +1862,7 @@ const char *Lexer::LexUDSuffix(Token &Result, const char *CurPtr,
|
||||
char Next = getCharAndSizeNoWarn(CurPtr + Consumed, NextSize,
|
||||
getLangOpts());
|
||||
if (!isIdentifierBody(Next)) {
|
||||
// End of suffix. Check whether this is on the whitelist.
|
||||
// End of suffix. Check whether this is on the allowed list.
|
||||
const StringRef CompleteSuffix(Buffer, Chars);
|
||||
IsUDSuffix = StringLiteralParser::isValidUDSuffix(getLangOpts(),
|
||||
CompleteSuffix);
|
||||
|
@ -4387,7 +4387,7 @@ void Parser::ParseMicrosoftAttributes(ParsedAttributes &attrs,
|
||||
BalancedDelimiterTracker T(*this, tok::l_square);
|
||||
T.consumeOpen();
|
||||
|
||||
// Skip most ms attributes except for a whitelist.
|
||||
// Skip most ms attributes except for a specific list.
|
||||
while (true) {
|
||||
SkipUntil(tok::r_square, tok::identifier, StopAtSemi | StopBeforeMatch);
|
||||
if (Tok.isNot(tok::identifier)) // ']', but also eof
|
||||
|
@ -2725,7 +2725,7 @@ void PragmaCommentHandler::HandlePragma(Preprocessor &PP,
|
||||
return;
|
||||
}
|
||||
|
||||
// Verify that this is one of the 5 whitelisted options.
|
||||
// Verify that this is one of the 5 explicitly listed options.
|
||||
IdentifierInfo *II = Tok.getIdentifierInfo();
|
||||
PragmaMSCommentKind Kind =
|
||||
llvm::StringSwitch<PragmaMSCommentKind>(II->getName())
|
||||
@ -2766,7 +2766,7 @@ void PragmaCommentHandler::HandlePragma(Preprocessor &PP,
|
||||
// FIXME: If the kind is "compiler" warn if the string is present (it is
|
||||
// ignored).
|
||||
// The MSDN docs say that "lib" and "linker" require a string and have a short
|
||||
// whitelist of linker options they support, but in practice MSVC doesn't
|
||||
// list of linker options they support, but in practice MSVC doesn't
|
||||
// issue a diagnostic. Therefore neither does clang.
|
||||
|
||||
if (Tok.isNot(tok::r_paren)) {
|
||||
|
@ -13466,9 +13466,9 @@ void Sema::CheckCastAlign(Expr *Op, QualType T, SourceRange TRange) {
|
||||
if (!SrcPtr) return;
|
||||
QualType SrcPointee = SrcPtr->getPointeeType();
|
||||
|
||||
// Whitelist casts from cv void*. We already implicitly
|
||||
// whitelisted casts to cv void*, since they have alignment 1.
|
||||
// Also whitelist casts involving incomplete types, which implicitly
|
||||
// Explicitly allow casts from cv void*. We already implicitly
|
||||
// allowed casts to cv void*, since they have alignment 1.
|
||||
// Also allow casts involving incomplete types, which implicitly
|
||||
// includes 'void'.
|
||||
if (SrcPointee->isIncompleteType()) return;
|
||||
|
||||
@ -13954,7 +13954,7 @@ static bool isSetterLikeSelector(Selector sel) {
|
||||
if (str.startswith("set"))
|
||||
str = str.substr(3);
|
||||
else if (str.startswith("add")) {
|
||||
// Specially whitelist 'addOperationWithBlock:'.
|
||||
// Specially allow 'addOperationWithBlock:'.
|
||||
if (sel.getNumArgs() == 1 && str.startswith("addOperationWithBlock"))
|
||||
return false;
|
||||
str = str.substr(3);
|
||||
|
@ -2360,7 +2360,7 @@ static bool CheckMethodOverrideReturn(Sema &S,
|
||||
: diag::warn_conflicting_ret_types;
|
||||
|
||||
// Mismatches between ObjC pointers go into a different warning
|
||||
// category, and sometimes they're even completely whitelisted.
|
||||
// category, and sometimes they're even completely explicitly allowed.
|
||||
if (const ObjCObjectPointerType *ImplPtrTy =
|
||||
MethodImpl->getReturnType()->getAs<ObjCObjectPointerType>()) {
|
||||
if (const ObjCObjectPointerType *IfacePtrTy =
|
||||
@ -2444,7 +2444,7 @@ static bool CheckMethodOverrideParam(Sema &S,
|
||||
: diag::warn_conflicting_param_types;
|
||||
|
||||
// Mismatches between ObjC pointers go into a different warning
|
||||
// category, and sometimes they're even completely whitelisted.
|
||||
// category, and sometimes they're even completely explicitly allowed..
|
||||
if (const ObjCObjectPointerType *ImplPtrTy =
|
||||
ImplTy->getAs<ObjCObjectPointerType>()) {
|
||||
if (const ObjCObjectPointerType *IfacePtrTy =
|
||||
|
@ -4058,7 +4058,7 @@ bool Sema::CheckUnaryExprOrTypeTraitOperand(Expr *E,
|
||||
return CheckVecStepTraitOperandType(*this, ExprTy, E->getExprLoc(),
|
||||
E->getSourceRange());
|
||||
|
||||
// Whitelist some types as extensions
|
||||
// Explicitly list some types as extensions.
|
||||
if (!CheckExtensionTraitOperandType(*this, ExprTy, E->getExprLoc(),
|
||||
E->getSourceRange(), ExprKind))
|
||||
return false;
|
||||
@ -4168,7 +4168,7 @@ bool Sema::CheckUnaryExprOrTypeTraitOperand(QualType ExprType,
|
||||
if (ExprKind == UETT_VecStep)
|
||||
return CheckVecStepTraitOperandType(*this, ExprType, OpLoc, ExprRange);
|
||||
|
||||
// Whitelist some types as extensions
|
||||
// Explicitly list some types as extensions.
|
||||
if (!CheckExtensionTraitOperandType(*this, ExprType, OpLoc, ExprRange,
|
||||
ExprKind))
|
||||
return false;
|
||||
@ -12906,8 +12906,8 @@ static bool IgnoreCommaOperand(const Expr *E) {
|
||||
}
|
||||
|
||||
// Look for instances where it is likely the comma operator is confused with
|
||||
// another operator. There is a whitelist of acceptable expressions for the
|
||||
// left hand side of the comma operator, otherwise emit a warning.
|
||||
// another operator. There is an explicit list of acceptable expressions for
|
||||
// the left hand side of the comma operator, otherwise emit a warning.
|
||||
void Sema::DiagnoseCommaOperator(const Expr *LHS, SourceLocation Loc) {
|
||||
// No warnings in macros
|
||||
if (Loc.isMacroID())
|
||||
@ -12917,10 +12917,10 @@ void Sema::DiagnoseCommaOperator(const Expr *LHS, SourceLocation Loc) {
|
||||
if (inTemplateInstantiation())
|
||||
return;
|
||||
|
||||
// Scope isn't fine-grained enough to whitelist the specific cases, so
|
||||
// Scope isn't fine-grained enough to explicitly list the specific cases, so
|
||||
// instead, skip more than needed, then call back into here with the
|
||||
// CommaVisitor in SemaStmt.cpp.
|
||||
// The whitelisted locations are the initialization and increment portions
|
||||
// The listed locations are the initialization and increment portions
|
||||
// of a for loop. The additional checks are on the condition of
|
||||
// if statements, do/while loops, and for loops.
|
||||
// Differences in scope flags for C89 mode requires the extra logic.
|
||||
|
@ -1402,10 +1402,9 @@ namespace {
|
||||
Simple = false;
|
||||
}
|
||||
|
||||
// Any Stmt not whitelisted will cause the condition to be marked complex.
|
||||
void VisitStmt(Stmt *S) {
|
||||
Simple = false;
|
||||
}
|
||||
// Any Stmt not explicitly listed will cause the condition to be marked
|
||||
// complex.
|
||||
void VisitStmt(Stmt *S) { Simple = false; }
|
||||
|
||||
void VisitBinaryOperator(BinaryOperator *E) {
|
||||
Visit(E->getLHS());
|
||||
|
Loading…
Reference in New Issue
Block a user