bump product version to 5.0.4.1
[LibreOffice.git] / compilerplugins / clang / store / postfixincrementfix.hxx
blob60dc93bb79f632194d999657920a52b4d1d22699
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * Based on LLVM/Clang.
7 * This file is distributed under the University of Illinois Open Source
8 * License. See LICENSE.TXT for details.
12 #ifndef POSTFIXINCREMENTFIX_H
13 #define POSTFIXINCREMENTFIX_H
15 #include "plugin.hxx"
17 namespace loplugin
20 class PostfixIncrementFix
21 : public RecursiveASTVisitor< PostfixIncrementFix >
22 , public RewritePlugin
24 public:
25 explicit PostfixIncrementFix( const InstantiationData& data );
26 virtual void run() override;
27 bool VisitCXXOperatorCallExpr( const CXXOperatorCallExpr* op );
28 private:
29 void fixPostfixOperator( const CXXOperatorCallExpr* op );
30 void fixPostfixOperators( const Stmt* stmt );
31 bool canChangePostfixToPrefix( const Stmt* stmt, const CXXOperatorCallExpr* op );
32 bool shouldDoChange( const Expr* op );
35 } // namespace
37 #endif // POSTFIXINCREMENTFIX_H
39 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */