[cfe-commits] r46462 - /cfe/trunk/Driver/RewriteTest.cpp

Steve Naroff snaroff at apple.com
Mon Jan 28 13:34:52 PST 2008


Author: snaroff
Date: Mon Jan 28 15:34:52 2008
New Revision: 46462

URL: http://llvm.org/viewvc/llvm-project?rev=46462&view=rev
Log:

Add -Wno-rewrite-macros to silence the following warning when using -rewrite-test:

xx.m:10:3: warning: rewriting sub-expression within a macro (may not be correct)


Modified:
    cfe/trunk/Driver/RewriteTest.cpp

Modified: cfe/trunk/Driver/RewriteTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/RewriteTest.cpp?rev=46462&r1=46461&r2=46462&view=diff

==============================================================================
--- cfe/trunk/Driver/RewriteTest.cpp (original)
+++ cfe/trunk/Driver/RewriteTest.cpp Mon Jan 28 15:34:52 2008
@@ -22,14 +22,21 @@
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/CommandLine.h"
 #include <sstream>
 using namespace clang;
 using llvm::utostr;
 
+static llvm::cl::opt<bool>
+SilenceRewriteMacroWarning("Wno-rewrite-macros", llvm::cl::init(false),
+                           llvm::cl::desc("Silence ObjC rewriting warnings"));
+
 namespace {
   class RewriteTest : public ASTConsumer {
     Rewriter Rewrite;
     Diagnostic &Diags;
+	unsigned RewriteFailedDiag;
+	
     ASTContext *Context;
     SourceManager *SM;
     unsigned MainFileID;
@@ -89,7 +96,7 @@
       CurMethodDecl = 0;
       SuperStructDecl = 0;
       BcLabelCount = 0;
-      
+	  
       // Get the ID and start/end of the main file.
       MainFileID = SM->getMainFileID();
       const llvm::MemoryBuffer *MainBuf = SM->getBuffer(MainFileID);
@@ -157,7 +164,11 @@
     // Top Level Driver code.
     virtual void HandleTopLevelDecl(Decl *D);
     void HandleDeclInMainFile(Decl *D);
-    RewriteTest(bool isHeader, Diagnostic &D) : Diags(D) {IsHeader = isHeader;}
+    RewriteTest(bool isHeader, Diagnostic &D) : Diags(D) {
+	  IsHeader = isHeader;
+      RewriteFailedDiag = Diags.getCustomDiagID(Diagnostic::Warning, 
+               "rewriting sub-expression within a macro (may not be correct)");
+	}
     ~RewriteTest();
 
     // Syntactic Rewriting.
@@ -697,10 +708,10 @@
                                        IV->getLocation());
     if (Rewrite.ReplaceStmt(IV, Replacement)) {
       // replacement failed.
-      unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Warning, 
-                     "rewriting sub-expression within a macro (may not be correct)");
       SourceRange Range = IV->getSourceRange();
-      Diags.Report(Context->getFullLoc(IV->getLocation()), DiagID, 0, 0, &Range, 1);
+	  if (!SilenceRewriteMacroWarning)
+        Diags.Report(Context->getFullLoc(IV->getLocation()), RewriteFailedDiag, 
+	                                     0, 0, &Range, 1);
     }
     delete IV;
     return Replacement;
@@ -723,10 +734,10 @@
           ParenExpr *PE = new ParenExpr(SourceLocation(), SourceLocation(), castExpr);
           if (Rewrite.ReplaceStmt(IV->getBase(), PE)) {
             // replacement failed.
-            unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Warning, 
-                           "rewriting sub-expression within a macro (may not be correct)");
             SourceRange Range = IV->getBase()->getSourceRange();
-            Diags.Report(Context->getFullLoc(IV->getBase()->getLocStart()), DiagID, 0, 0, &Range, 1);
+	        if (!SilenceRewriteMacroWarning)
+              Diags.Report(Context->getFullLoc(IV->getBase()->getLocStart()), 
+						   RewriteFailedDiag, 0, 0, &Range, 1);
           }
           delete IV->getBase();
           return PE;
@@ -1239,10 +1250,10 @@
                                         SourceLocation(), SourceLocation());
   if (Rewrite.ReplaceStmt(Exp, Replacement)) {
     // replacement failed.
-    unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Warning, 
-                     "rewriting sub-expression within a macro (may not be correct)");
     SourceRange Range = Exp->getSourceRange();
-    Diags.Report(Context->getFullLoc(Exp->getAtLoc()), DiagID, 0, 0, &Range, 1);
+    if (!SilenceRewriteMacroWarning)
+      Diags.Report(Context->getFullLoc(Exp->getAtLoc()), RewriteFailedDiag,
+	                                   0, 0, &Range, 1);
   }
   
   // Replace this subexpr in the parent.
@@ -1263,10 +1274,10 @@
                                                  &SelExprs[0], SelExprs.size());
   if (Rewrite.ReplaceStmt(Exp, SelExp)) {
     // replacement failed.
-    unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Warning, 
-                     "rewriting sub-expression within a macro (may not be correct)");
     SourceRange Range = Exp->getSourceRange();
-    Diags.Report(Context->getFullLoc(Exp->getAtLoc()), DiagID, 0, 0, &Range, 1);
+    if (!SilenceRewriteMacroWarning)
+      Diags.Report(Context->getFullLoc(Exp->getAtLoc()), RewriteFailedDiag,
+	                                   0, 0, &Range, 1);
   }
   delete Exp;
   return SelExp;
@@ -1595,10 +1606,10 @@
   CastExpr *cast = new CastExpr(Exp->getType(), call, SourceLocation());
   if (Rewrite.ReplaceStmt(Exp, cast)) {
     // replacement failed.
-    unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Warning, 
-                     "rewriting sub-expression within a macro (may not be correct)");
     SourceRange Range = Exp->getSourceRange();
-    Diags.Report(Context->getFullLoc(Exp->getAtLoc()), DiagID, 0, 0, &Range, 1);
+    if (!SilenceRewriteMacroWarning)
+      Diags.Report(Context->getFullLoc(Exp->getAtLoc()), RewriteFailedDiag,
+	                                   0, 0, &Range, 1);
   }
   delete Exp;
   return cast;
@@ -1975,10 +1986,10 @@
   // Now do the actual rewrite.
   if (Rewrite.ReplaceStmt(Exp, ReplacingStmt)) {
     // replacement failed.
-    unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Warning, 
-                     "rewriting sub-expression within a macro (may not be correct)");
     SourceRange Range = Exp->getSourceRange();
-    Diags.Report(Context->getFullLoc(Exp->getLocStart()), DiagID, 0, 0, &Range, 1);
+    if (!SilenceRewriteMacroWarning)
+      Diags.Report(Context->getFullLoc(Exp->getLocStart()), RewriteFailedDiag,
+	                                   0, 0, &Range, 1);
   }
   
   delete Exp;
@@ -2002,10 +2013,10 @@
                                                     ProtoExprs.size());
   if (Rewrite.ReplaceStmt(Exp, ProtoExp)) {
     // replacement failed.
-    unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Warning, 
-                     "rewriting sub-expression within a macro (may not be correct)");
     SourceRange Range = Exp->getSourceRange();
-    Diags.Report(Context->getFullLoc(Exp->getAtLoc()), DiagID, 0, 0, &Range, 1);
+    if (!SilenceRewriteMacroWarning)
+      Diags.Report(Context->getFullLoc(Exp->getAtLoc()), RewriteFailedDiag,
+	                                   0, 0, &Range, 1);
   }
   delete Exp;
   return ProtoExp;





More information about the cfe-commits mailing list