Version 6.1.0.2, tag libreoffice-6.1.0.2
[LibreOffice.git] / compilerplugins / clang / sallogareas.hxx
blob9cb035069e10cb500cc2901ee0587a8d9d5e68ea
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 SALLOGAREAS_H
13 #define SALLOGAREAS_H
15 #include <set>
17 #include "plugin.hxx"
19 namespace loplugin
22 class SalLogAreas
23 : public RecursiveASTVisitor< SalLogAreas >
24 , public Plugin
26 public:
27 explicit SalLogAreas( const InstantiationData& data );
28 virtual void run() override;
29 bool VisitFunctionDecl( const FunctionDecl* function );
30 bool VisitCallExpr( const CallExpr* call );
31 private:
32 void checkArea( StringRef area, SourceLocation location );
33 void checkAreaSyntax(StringRef area, SourceLocation location);
34 void readLogAreas();
35 const FunctionDecl* inFunction;
36 SourceLocation lastSalDetailLogStreamMacro;
37 std::set< std::string > logAreas;
38 #if 0
39 std::string firstSeenLogArea;
40 SourceLocation firstSeenLocation;
41 #endif
44 } // namespace
46 #endif // SALLOGAREAS_H
48 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */