Skip to content

Commit

Permalink
[AST/Lex/Parse/Sema] As part of using inclusive language within
Browse files Browse the repository at this point in the history
the llvm project, migrate away from the use of blacklist and whitelist.
  • Loading branch information
echristo committed Jun 20, 2020
1 parent b324014 commit 1f593f4
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 24 deletions.
6 changes: 3 additions & 3 deletions clang/lib/AST/ExprConstant.cpp
Expand Up @@ -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;
Expand Down Expand Up @@ -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 &&
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Basic/Targets/OSTargets.h
Expand Up @@ -87,7 +87,7 @@ class LLVM_LIBRARY_VISIBILITY DarwinTargetInfo : public OSTargetInfo<Target> {
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;

Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Lex/Lexer.cpp
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Parse/ParseDeclCXX.cpp
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions clang/lib/Parse/ParsePragma.cpp
Expand Up @@ -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())
Expand Down Expand Up @@ -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)) {
Expand Down
8 changes: 4 additions & 4 deletions clang/lib/Sema/SemaChecking.cpp
Expand Up @@ -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;

Expand Down Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions clang/lib/Sema/SemaDeclObjC.cpp
Expand Up @@ -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 =
Expand Down Expand Up @@ -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 =
Expand Down
12 changes: 6 additions & 6 deletions clang/lib/Sema/SemaExpr.cpp
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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())
Expand All @@ -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.
Expand Down
7 changes: 3 additions & 4 deletions clang/lib/Sema/SemaStmt.cpp
Expand Up @@ -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());
Expand Down

0 comments on commit 1f593f4

Please sign in to comment.