diff options
| author | 2020-08-03 15:06:44 +0000 | |
|---|---|---|
| committer | 2020-08-03 15:06:44 +0000 | |
| commit | b64793999546ed8adebaeebd9d8345d18db8927d (patch) | |
| tree | 4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp | |
| parent | Add support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff) | |
| download | wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip | |
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp')
| -rw-r--r-- | gnu/llvm/tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/gnu/llvm/tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp b/gnu/llvm/tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp deleted file mode 100644 index 375f18f8e09..00000000000 --- a/gnu/llvm/tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp +++ /dev/null @@ -1,88 +0,0 @@ -//===- AnnotateFunctions.cpp ----------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Example clang plugin which adds an annotation to every function in -// translation units that start with #pragma enable_annotate. -// -//===----------------------------------------------------------------------===// - -#include "clang/Frontend/FrontendPluginRegistry.h" -#include "clang/AST/AST.h" -#include "clang/AST/ASTConsumer.h" -#include "clang/Lex/Preprocessor.h" -#include "clang/Lex/LexDiagnostic.h" -using namespace clang; - -namespace { - -static bool EnableAnnotate = false; -static bool HandledDecl = false; - -class AnnotateFunctionsConsumer : public ASTConsumer { -public: - bool HandleTopLevelDecl(DeclGroupRef DG) override { - HandledDecl = true; - if (!EnableAnnotate) - return true; - for (auto D : DG) - if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) - FD->addAttr(AnnotateAttr::CreateImplicit(FD->getASTContext(), - "example_annotation")); - return true; - } -}; - -class AnnotateFunctionsAction : public PluginASTAction { -public: - std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, - llvm::StringRef) override { - return llvm::make_unique<AnnotateFunctionsConsumer>(); - } - - bool ParseArgs(const CompilerInstance &CI, - const std::vector<std::string> &args) override { - return true; - } - - PluginASTAction::ActionType getActionType() override { - return AddBeforeMainAction; - } -}; - -class PragmaAnnotateHandler : public PragmaHandler { -public: - PragmaAnnotateHandler() : PragmaHandler("enable_annotate") { } - - void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer, - Token &PragmaTok) override { - - Token Tok; - PP.LexUnexpandedToken(Tok); - if (Tok.isNot(tok::eod)) - PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; - - if (HandledDecl) { - DiagnosticsEngine &D = PP.getDiagnostics(); - unsigned ID = D.getCustomDiagID( - DiagnosticsEngine::Error, - "#pragma enable_annotate not allowed after declarations"); - D.Report(PragmaTok.getLocation(), ID); - } - - EnableAnnotate = true; - } -}; - -} - -static FrontendPluginRegistry::Add<AnnotateFunctionsAction> -X("annotate-fns", "annotate functions"); - -static PragmaHandlerRegistry::Add<PragmaAnnotateHandler> -Y("enable_annotate","enable annotation"); |
