[cfe-commits] r41462 - /cfe/trunk/include/clang/AST/StmtVisitor.h

Chris Lattner sabre at nondot.org
Sun Aug 26 15:08:30 PDT 2007


Author: lattner
Date: Sun Aug 26 17:08:29 2007
New Revision: 41462

URL: http://llvm.org/viewvc/llvm-project?rev=41462&view=rev
Log:
If a visitor doesn't define VisitBinMulAssign, fallback to VisitCompoundAssignOperator
instead of VisitBinaryOperator.

Modified:
    cfe/trunk/include/clang/AST/StmtVisitor.h

Modified: cfe/trunk/include/clang/AST/StmtVisitor.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/StmtVisitor.h?rev=41462&r1=41461&r2=41462&view=diff

==============================================================================
--- cfe/trunk/include/clang/AST/StmtVisitor.h (original)
+++ cfe/trunk/include/clang/AST/StmtVisitor.h Sun Aug 26 17:08:29 2007
@@ -129,13 +129,20 @@
   BINOP_FALLBACK(LAnd)  BINOP_FALLBACK(LOr)
 
   BINOP_FALLBACK(Assign)
-  BINOP_FALLBACK(MulAssign) BINOP_FALLBACK(DivAssign) BINOP_FALLBACK(RemAssign)
-  BINOP_FALLBACK(AddAssign) BINOP_FALLBACK(SubAssign) BINOP_FALLBACK(ShlAssign)
-  BINOP_FALLBACK(ShrAssign) BINOP_FALLBACK(AndAssign) BINOP_FALLBACK(OrAssign)
-  BINOP_FALLBACK(XorAssign)
-  
   BINOP_FALLBACK(Comma)
 #undef BINOP_FALLBACK
+
+  // If the implementation doesn't implement compound assignment operator
+  // methods, fall back on VisitCompoundAssignOperator.
+#define CAO_FALLBACK(NAME) \
+  RetTy VisitBin ## NAME(CompoundAssignOperator *S) { \
+    DISPATCH(CompoundAssignOperator, CompoundAssignOperator); \
+  }
+  CAO_FALLBACK(MulAssign) CAO_FALLBACK(DivAssign) CAO_FALLBACK(RemAssign)
+  CAO_FALLBACK(AddAssign) CAO_FALLBACK(SubAssign) CAO_FALLBACK(ShlAssign)
+  CAO_FALLBACK(ShrAssign) CAO_FALLBACK(AndAssign) CAO_FALLBACK(OrAssign)
+  CAO_FALLBACK(XorAssign)
+#undef CAO_FALLBACK
   
   // If the implementation doesn't implement unary operator methods, fall back
   // on VisitUnaryOperator.





More information about the cfe-commits mailing list