]> granicus.if.org Git - clang/commitdiff
[objcmt] -objcmt-atomic-property & -objcmt-ns-nonatomic-iosonly are companion flags.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 14 Nov 2013 16:33:20 +0000 (16:33 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 14 Nov 2013 16:33:20 +0000 (16:33 +0000)
Ignore them when determining if some transformation was enabled.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194709 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ARCMigrate/ObjCMT.cpp

index b10f060d5f6d8ff2cec32cbd971146238c48665a..23d61cf27f4c22600d77e4b1f4a50f4b559ac832 100644 (file)
@@ -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,