From 5a56ac30d04e8f0431a08980885662a47a6308aa Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 23 Jul 2008 22:18:43 +0000 Subject: [PATCH] Added UnaryOperator::isPrefix(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53963 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/Expr.h | 4 ++++ lib/AST/Expr.cpp | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index 51b8588d5f..692a0ea85f 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -481,6 +481,10 @@ public: /// isPostfix - Return true if this is a postfix operation, like x++. static bool isPostfix(Opcode Op); + /// isPostfix - Return true if this is a prefix operation, like --x. + static bool isPrefix(Opcode Op); + + bool isPrefix() const { return isPrefix(Opc); } bool isPostfix() const { return isPostfix(Opc); } bool isIncrementOp() const {return Opc==PreInc || Opc==PostInc; } bool isIncrementDecrementOp() const { return Opc>=PostInc && Opc<=PreDec; } diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp index de0c740fd2..6c7d170d03 100644 --- a/lib/AST/Expr.cpp +++ b/lib/AST/Expr.cpp @@ -61,6 +61,16 @@ bool UnaryOperator::isPostfix(Opcode Op) { } } +bool UnaryOperator::isPrefix(Opcode Op) { + switch (Op) { + case PreInc: + case PreDec: + return true; + default: + return false; + } +} + /// getOpcodeStr - Turn an Opcode enum value into the punctuation char it /// corresponds to, e.g. "sizeof" or "[pre]++". const char *UnaryOperator::getOpcodeStr(Opcode Op) {