/// 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; }
}
}
+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) {