clang API Documentation

Typedefs | Functions
VerifyDiagnosticConsumer.cpp File Reference
#include "clang/Frontend/VerifyDiagnosticConsumer.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/FileManager.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/TextDiagnosticBuffer.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/Preprocessor.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/Support/Regex.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for VerifyDiagnosticConsumer.cpp:

Go to the source code of this file.

Typedefs

typedef
VerifyDiagnosticConsumer::Directive 
Directive
typedef
VerifyDiagnosticConsumer::DirectiveList 
DirectiveList
typedef
VerifyDiagnosticConsumer::ExpectedData 
ExpectedData
typedef
TextDiagnosticBuffer::DiagList 
DiagList
typedef
TextDiagnosticBuffer::const_iterator 
const_diag_iterator

Functions

static bool ParseDirective (StringRef S, ExpectedData *ED, SourceManager &SM, Preprocessor *PP, SourceLocation Pos, VerifyDiagnosticConsumer::DirectiveStatus &Status)
static bool findDirectives (SourceManager &SM, FileID FID, const LangOptions &LangOpts)
 Lex the specified source file to determine whether it contains any expected-* directives. As a Lexer is used rather than a full-blown Preprocessor, directives inside skipped #if blocks will still be found.
static unsigned PrintUnexpected (DiagnosticsEngine &Diags, SourceManager *SourceMgr, const_diag_iterator diag_begin, const_diag_iterator diag_end, const char *Kind)
 Takes a list of diagnostics that have been generated but not matched by an expected-* directive and produces a diagnostic to the user from this.
static unsigned PrintExpected (DiagnosticsEngine &Diags, SourceManager &SourceMgr, std::vector< Directive * > &DL, const char *Kind)
 Takes a list of diagnostics that were expected to have been generated but were not and produces a diagnostic to the user from this.
static bool IsFromSameFile (SourceManager &SM, SourceLocation DirectiveLoc, SourceLocation DiagnosticLoc)
 Determine whether two source locations come from the same file.
static unsigned CheckLists (DiagnosticsEngine &Diags, SourceManager &SourceMgr, const char *Label, DirectiveList &Left, const_diag_iterator d2_begin, const_diag_iterator d2_end)
static unsigned CheckResults (DiagnosticsEngine &Diags, SourceManager &SourceMgr, const TextDiagnosticBuffer &Buffer, ExpectedData &ED)

Typedef Documentation

Definition at line 155 of file VerifyDiagnosticConsumer.cpp.

Definition at line 154 of file VerifyDiagnosticConsumer.cpp.

Definition at line 26 of file VerifyDiagnosticConsumer.cpp.

Definition at line 27 of file VerifyDiagnosticConsumer.cpp.

Definition at line 28 of file VerifyDiagnosticConsumer.cpp.


Function Documentation

static unsigned CheckLists ( DiagnosticsEngine Diags,
SourceManager SourceMgr,
const char *  Label,
DirectiveList Left,
const_diag_iterator  d2_begin,
const_diag_iterator  d2_end 
) [static]
static unsigned CheckResults ( DiagnosticsEngine Diags,
SourceManager SourceMgr,
const TextDiagnosticBuffer Buffer,
ExpectedData ED 
) [static]
static bool findDirectives ( SourceManager SM,
FileID  FID,
const LangOptions LangOpts 
) [static]

Lex the specified source file to determine whether it contains any expected-* directives. As a Lexer is used rather than a full-blown Preprocessor, directives inside skipped #if blocks will still be found.

Returns:
true if any directives were found.

Definition at line 581 of file VerifyDiagnosticConsumer.cpp.

References clang::comments::tok::eof, clang::SourceManager::getBuffer(), clang::Token::getLocation(), clang::Lexer::getSpelling(), clang::VerifyDiagnosticConsumer::HasNoDirectives, clang::Token::is(), clang::FileID::isInvalid(), clang::Token::isNot(), clang::Lexer::LexFromRawLexer(), ParseDirective(), clang::Lexer::SetCommentRetentionState(), and clang::Token::setKind().

Referenced by clang::VerifyDiagnosticConsumer::UpdateParsedFileStatus().

static bool IsFromSameFile ( SourceManager SM,
SourceLocation  DirectiveLoc,
SourceLocation  DiagnosticLoc 
) [static]
static bool ParseDirective ( StringRef  S,
ExpectedData ED,
SourceManager SM,
Preprocessor PP,
SourceLocation  Pos,
VerifyDiagnosticConsumer::DirectiveStatus Status 
) [static]
static unsigned PrintExpected ( DiagnosticsEngine Diags,
SourceManager SourceMgr,
std::vector< Directive * > &  DL,
const char *  Kind 
) [static]
static unsigned PrintUnexpected ( DiagnosticsEngine Diags,
SourceManager SourceMgr,
const_diag_iterator  diag_begin,
const_diag_iterator  diag_end,
const char *  Kind 
) [static]

Takes a list of diagnostics that have been generated but not matched by an expected-* directive and produces a diagnostic to the user from this.

Definition at line 616 of file VerifyDiagnosticConsumer.cpp.

References clang::SourceManager::getFileEntryForID(), clang::SourceManager::getFileID(), clang::SourceManager::getPresumedLineNumber(), clang::DiagnosticsEngine::Report(), clang::DiagnosticBuilder::setForceEmit(), and SourceMgr.

Referenced by CheckLists().