diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/ARCMigrate/ObjCMT.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp index b10f060d5f6..23d61cf27f4 100644 --- a/clang/lib/ARCMigrate/ObjCMT.cpp +++ b/clang/lib/ARCMigrate/ObjCMT.cpp @@ -1710,11 +1710,15 @@ ASTConsumer *MigrateSourceAction::CreateASTConsumer(CompilerInstance &CI, PPConditionalDirectiveRecord * PPRec = new PPConditionalDirectiveRecord(CI.getSourceManager()); unsigned ObjCMTAction = CI.getFrontendOpts().ObjCMTAction; - if (ObjCMTAction == FrontendOptions::ObjCMT_None) { + unsigned ObjCMTOpts = ObjCMTAction; + // These are companion flags, they do not enable transformations. + ObjCMTOpts &= ~(FrontendOptions::ObjCMT_AtomicProperty | + FrontendOptions::ObjCMT_NsAtomicIOSOnlyProperty); + 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(PPRec); return new ObjCMigrateASTConsumer(CI.getFrontendOpts().OutputFile, |