|
clang 24.0.0git
|
#include "clang/Frontend/DiagnosticRenderer.h"#include "clang/Basic/Diagnostic.h"#include "clang/Basic/DiagnosticOptions.h"#include "clang/Basic/LLVM.h"#include "clang/Basic/SourceLocation.h"#include "clang/Basic/SourceManager.h"#include "clang/Edit/Commit.h"#include "clang/Edit/EditedSource.h"#include "clang/Edit/EditsReceiver.h"#include "clang/Lex/Lexer.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/StringRef.h"#include "llvm/Support/raw_ostream.h"#include <algorithm>#include <cassert>#include <iterator>#include <utility>Go to the source code of this file.
Functions | |
| static void | mergeFixits (ArrayRef< FixItHint > FixItHints, const SourceManager &SM, const LangOptions &LangOpts, SmallVectorImpl< FixItHint > &MergedFixits) |
| static SourceLocation | retrieveMacroLocation (SourceLocation Loc, FileID MacroFileID, FileID CaretFileID, const SmallVectorImpl< FileID > &CommonArgExpansions, bool IsBegin, const SourceManager *SM, bool &IsTokenRange) |
A recursive function to trace all possible backtrace locations to match the CaretLocFileID. | |
| static void | getMacroArgExpansionFileIDs (SourceLocation Loc, SmallVectorImpl< FileID > &IDs, bool IsBegin, const SourceManager *SM) |
| Walk up the chain of macro expansions and collect the FileIDs identifying the expansions. | |
| static void | computeCommonMacroArgExpansionFileIDs (SourceLocation Begin, SourceLocation End, const SourceManager *SM, SmallVectorImpl< FileID > &CommonArgExpansions) |
| Collect the expansions of the begin and end locations and compute the set intersection. | |
| static void | mapDiagnosticRanges (FullSourceLoc CaretLoc, ArrayRef< CharSourceRange > Ranges, SmallVectorImpl< CharSourceRange > &SpellingRanges) |
| static bool | rangesInsideSameMacroArgExpansion (FullSourceLoc Loc, ArrayRef< CharSourceRange > Ranges) |
| A helper function to check if the current ranges are all inside the same macro argument expansion as Loc. | |
|
static |
Collect the expansions of the begin and end locations and compute the set intersection.
Produces a sorted vector of FileIDs in CommonArgExpansions.
Definition at line 348 of file DiagnosticRenderer.cpp.
References getMacroArgExpansionFileIDs().
Referenced by mapDiagnosticRanges().
|
static |
Walk up the chain of macro expansions and collect the FileIDs identifying the expansions.
Definition at line 332 of file DiagnosticRenderer.cpp.
References clang::SourceManager::getFileID(), clang::SourceManager::getImmediateExpansionRange(), clang::SourceManager::getImmediateSpellingLoc(), clang::SourceManager::isMacroArgExpansion(), and clang::SourceLocation::isMacroID().
Referenced by computeCommonMacroArgExpansionFileIDs().
|
static |
Definition at line 373 of file DiagnosticRenderer.cpp.
References computeCommonMacroArgExpansionFileIDs(), clang::CharSourceRange::getBegin(), clang::FullSourceLoc::getFileID(), clang::SourceManager::getFileID(), clang::SourceManager::getImmediateExpansionRange(), clang::FullSourceLoc::getManager(), clang::SourceManager::getSpellingLoc(), clang::SourceLocation::isInvalid(), clang::SourceLocation::isMacroID(), and retrieveMacroLocation().
Referenced by rangesInsideSameMacroArgExpansion().
|
static |
Definition at line 78 of file DiagnosticRenderer.cpp.
References clang::edit::EditedSource::applyRewrites(), clang::edit::EditedSource::commit(), clang::edit::Commit::insert(), clang::edit::Commit::insertFromRange(), clang::edit::Commit::remove(), and clang::edit::Commit::replace().
Referenced by clang::DiagnosticRenderer::emitDiagnostic().
|
static |
A helper function to check if the current ranges are all inside the same macro argument expansion as Loc.
Definition at line 478 of file DiagnosticRenderer.cpp.
References clang::SourceLocation::getLocWithOffset(), clang::FullSourceLoc::getManager(), clang::SourceManager::isMacroArgExpansion(), clang::SourceLocation::isMacroID(), and mapDiagnosticRanges().
|
static |
A recursive function to trace all possible backtrace locations to match the CaretLocFileID.
Definition at line 278 of file DiagnosticRenderer.cpp.
References clang::CharSourceRange::getBegin(), clang::CharSourceRange::getEnd(), clang::SourceManager::getFileID(), clang::SourceManager::getImmediateExpansionRange(), clang::SourceManager::getImmediateSpellingLoc(), clang::SourceManager::isMacroArgExpansion(), clang::SourceLocation::isMacroID(), clang::CharSourceRange::isTokenRange(), clang::SourceLocation::isValid(), and retrieveMacroLocation().
Referenced by mapDiagnosticRanges(), and retrieveMacroLocation().