forked from OSchip/llvm-project
[clang] [Objective C] Inclusive language: use objcmt-allowlist-dir-path=<arg> instead of objcmt-white-list-dir-path=<arg>
Trying to update some options that don't at least have an inclusive language version. This patch adds `objcmt-allowlist-dir-path` as a default alternative. Reviewed By: akyrtzi Differential Revision: https://reviews.llvm.org/D112591
This commit is contained in:
parent
0b36431810
commit
a83a6c22e6
|
@ -483,7 +483,7 @@ Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'ato
|
|||
|
||||
Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER
|
||||
|
||||
.. option:: -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>
|
||||
.. option:: -objcmpt-allowlist-dir-path=<arg>, -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>
|
||||
|
||||
Only modify files with a filename contained in the provided directory path
|
||||
|
||||
|
|
|
@ -617,12 +617,15 @@ def objcmt_migrate_designated_init : Flag<["-"], "objcmt-migrate-designated-init
|
|||
HelpText<"Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods">,
|
||||
MarshallingInfoBitfieldFlag<FrontendOpts<"ObjCMTAction">, "FrontendOptions::ObjCMT_DesignatedInitializer">;
|
||||
|
||||
def objcmt_whitelist_dir_path: Joined<["-"], "objcmt-whitelist-dir-path=">, Flags<[CC1Option]>,
|
||||
def objcmt_allowlist_dir_path: Joined<["-"], "objcmt-allowlist-dir-path=">, Flags<[CC1Option]>,
|
||||
HelpText<"Only modify files with a filename contained in the provided directory path">,
|
||||
MarshallingInfoString<FrontendOpts<"ObjCMTWhiteListPath">>;
|
||||
MarshallingInfoString<FrontendOpts<"ObjCMTAllowListPath">>;
|
||||
def : Joined<["-"], "objcmt-whitelist-dir-path=">, Flags<[CC1Option]>,
|
||||
HelpText<"Alias for -objcmt-allowlist-dir-path">,
|
||||
Alias<objcmt_allowlist_dir_path>;
|
||||
// The misspelt "white-list" [sic] alias is due for removal.
|
||||
def : Joined<["-"], "objcmt-white-list-dir-path=">, Flags<[CC1Option]>,
|
||||
Alias<objcmt_whitelist_dir_path>;
|
||||
Alias<objcmt_allowlist_dir_path>;
|
||||
|
||||
// Make sure all other -ccc- options are rejected.
|
||||
def ccc_ : Joined<["-"], "ccc-">, Group<internal_Group>, Flags<[Unsupported]>;
|
||||
|
|
|
@ -373,7 +373,7 @@ public:
|
|||
ObjCMT_MigrateDecls | ObjCMT_PropertyDotSyntax)
|
||||
};
|
||||
unsigned ObjCMTAction = ObjCMT_None;
|
||||
std::string ObjCMTWhiteListPath;
|
||||
std::string ObjCMTAllowListPath;
|
||||
|
||||
std::string MTMigrateDir;
|
||||
std::string ARCMTMigrateReportOut;
|
||||
|
|
|
@ -104,7 +104,7 @@ public:
|
|||
bool FoundationIncluded;
|
||||
llvm::SmallPtrSet<ObjCProtocolDecl *, 32> ObjCProtocolDecls;
|
||||
llvm::SmallVector<const Decl *, 8> CFFunctionIBCandidates;
|
||||
llvm::StringSet<> WhiteListFilenames;
|
||||
llvm::StringSet<> AllowListFilenames;
|
||||
|
||||
RetainSummaryManager &getSummaryManager(ASTContext &Ctx) {
|
||||
if (!Summaries)
|
||||
|
@ -118,14 +118,14 @@ public:
|
|||
FileRemapper &remapper, FileManager &fileMgr,
|
||||
const PPConditionalDirectiveRecord *PPRec,
|
||||
Preprocessor &PP, bool isOutputFile,
|
||||
ArrayRef<std::string> WhiteList)
|
||||
ArrayRef<std::string> AllowList)
|
||||
: MigrateDir(migrateDir), ASTMigrateActions(astMigrateActions),
|
||||
NSIntegerTypedefed(nullptr), NSUIntegerTypedefed(nullptr),
|
||||
Remapper(remapper), FileMgr(fileMgr), PPRec(PPRec), PP(PP),
|
||||
IsOutputFile(isOutputFile), FoundationIncluded(false) {
|
||||
// FIXME: StringSet should have insert(iter, iter) to use here.
|
||||
for (const std::string &Val : WhiteList)
|
||||
WhiteListFilenames.insert(Val);
|
||||
for (const std::string &Val : AllowList)
|
||||
AllowListFilenames.insert(Val);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -151,10 +151,10 @@ protected:
|
|||
void HandleTranslationUnit(ASTContext &Ctx) override;
|
||||
|
||||
bool canModifyFile(StringRef Path) {
|
||||
if (WhiteListFilenames.empty())
|
||||
if (AllowListFilenames.empty())
|
||||
return true;
|
||||
return WhiteListFilenames.find(llvm::sys::path::filename(Path))
|
||||
!= WhiteListFilenames.end();
|
||||
return AllowListFilenames.find(llvm::sys::path::filename(Path)) !=
|
||||
AllowListFilenames.end();
|
||||
}
|
||||
bool canModifyFile(Optional<FileEntryRef> FE) {
|
||||
if (!FE)
|
||||
|
@ -1986,7 +1986,7 @@ bool MigrateSourceAction::BeginInvocation(CompilerInstance &CI) {
|
|||
return true;
|
||||
}
|
||||
|
||||
static std::vector<std::string> getWhiteListFilenames(StringRef DirPath) {
|
||||
static std::vector<std::string> getAllowListFilenames(StringRef DirPath) {
|
||||
using namespace llvm::sys::fs;
|
||||
using namespace llvm::sys::path;
|
||||
|
||||
|
@ -2017,16 +2017,16 @@ MigrateSourceAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) {
|
|||
if (ObjCMTOpts == FrontendOptions::ObjCMT_None) {
|
||||
// If no specific option was given, enable literals+subscripting transforms
|
||||
// by default.
|
||||
ObjCMTAction |= FrontendOptions::ObjCMT_Literals |
|
||||
FrontendOptions::ObjCMT_Subscripting;
|
||||
ObjCMTAction |=
|
||||
FrontendOptions::ObjCMT_Literals | FrontendOptions::ObjCMT_Subscripting;
|
||||
}
|
||||
CI.getPreprocessor().addPPCallbacks(std::unique_ptr<PPCallbacks>(PPRec));
|
||||
std::vector<std::string> WhiteList =
|
||||
getWhiteListFilenames(CI.getFrontendOpts().ObjCMTWhiteListPath);
|
||||
std::vector<std::string> AllowList =
|
||||
getAllowListFilenames(CI.getFrontendOpts().ObjCMTAllowListPath);
|
||||
return std::make_unique<ObjCMigrateASTConsumer>(
|
||||
CI.getFrontendOpts().OutputFile, ObjCMTAction, Remapper,
|
||||
CI.getFileManager(), PPRec, CI.getPreprocessor(),
|
||||
/*isOutputFile=*/true, WhiteList);
|
||||
/*isOutputFile=*/true, AllowList);
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
|
|
@ -3388,7 +3388,7 @@ static void RenderARCMigrateToolOptions(const Driver &D, const ArgList &Args,
|
|||
Args.AddLastArg(CmdArgs, options::OPT_objcmt_returns_innerpointer_property);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_objcmt_ns_nonatomic_iosonly);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_designated_init);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_objcmt_whitelist_dir_path);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_objcmt_allowlist_dir_path);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: rm -rf %t
|
||||
// RUN: %clang_cc1 -objcmt-migrate-readwrite-property -objcmt-migrate-instancetype -objcmt-white-list-dir-path=%S/Inputs %s -triple x86_64-apple-darwin11 -migrate -o %t.remap
|
||||
// RUN: %clang_cc1 -objcmt-migrate-readwrite-property -objcmt-migrate-instancetype -objcmt-allowlist-dir-path=%S/Inputs %s -triple x86_64-apple-darwin11 -migrate -o %t.remap
|
||||
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %S/header1.h.result %s.result
|
||||
|
||||
@interface NSObject
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: rm -rf %t
|
||||
// RUN: %clang_cc1 -objcmt-migrate-readwrite-property -objcmt-migrate-instancetype -objcmt-white-list-dir-path=%S/Inputs %s -triple x86_64-apple-darwin11 -migrate -o %t.remap
|
||||
// RUN: %clang_cc1 -objcmt-migrate-readwrite-property -objcmt-migrate-instancetype -objcmt-allowlist-dir-path=%S/Inputs %s -triple x86_64-apple-darwin11 -migrate -o %t.remap
|
||||
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %S/header1.h.result %s.result
|
||||
|
||||
@interface NSObject
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: rm -rf %t
|
||||
// RUN: %clang_cc1 -objcmt-migrate-readwrite-property -objcmt-migrate-instancetype -objcmt-migrate-ns-macros %s -triple x86_64-apple-darwin11 -migrate -o %t.remap
|
||||
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %S/header1.h.result %S/header2.h.result
|
||||
// RUN: %clang_cc1 -objcmt-migrate-readwrite-property -objcmt-migrate-instancetype -objcmt-migrate-ns-macros -objcmt-white-list-dir-path=%S/Inputs %s -triple x86_64-apple-darwin11 -migrate -o %t.remap
|
||||
// RUN: %clang_cc1 -objcmt-migrate-readwrite-property -objcmt-migrate-instancetype -objcmt-migrate-ns-macros -objcmt-allowlist-dir-path=%S/Inputs %s -triple x86_64-apple-darwin11 -migrate -o %t.remap
|
||||
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %S/header1.h.result
|
||||
|
||||
@interface NSObject
|
|
@ -73,7 +73,7 @@
|
|||
- (A*) test2 { return 0; } // broken-warning {{conflicting return type in implementation of 'test2': 'B *' vs 'A *'}}
|
||||
@end
|
||||
|
||||
// The particular case of overriding with an id return is white-listed.
|
||||
// The particular case of overriding with an id return is permitted.
|
||||
@interface Test4 {}
|
||||
- (id) test1;
|
||||
- (A*) test2;
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
- (A*) test2 { return 0; } // expected-warning {{conflicting return type in implementation of 'test2': 'B *' vs 'A *'}}
|
||||
@end
|
||||
|
||||
// The particular case of overriding with an id return is white-listed.
|
||||
// The particular case of overriding with an id return is permitted.
|
||||
@interface Test4 {}
|
||||
- (id) test1;
|
||||
- (A*) test2;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
@end
|
||||
|
||||
@implementation B
|
||||
- (id)obj {return self;} // 'id' overrides are white-listed?
|
||||
- (id)obj {return self;} // 'id' overrides are permitted?
|
||||
- (A*)a { return self;} // expected-warning {{conflicting return type in implementation of 'a'}}
|
||||
- (void)takesA: (B*)a // expected-warning {{conflicting parameter types in implementation of 'takesA:'}}
|
||||
{}
|
||||
|
|
Loading…
Reference in New Issue