|
clang 22.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 327 of file DiagnosticRenderer.cpp.
References getMacroArgExpansionFileIDs(), and SM.
Referenced by mapDiagnosticRanges().
|
static |
Walk up the chain of macro expansions and collect the FileIDs identifying the expansions.
Definition at line 311 of file DiagnosticRenderer.cpp.
References clang::SourceLocation::isMacroID(), and SM.
Referenced by computeCommonMacroArgExpansionFileIDs().
|
static |
Definition at line 352 of file DiagnosticRenderer.cpp.
References computeCommonMacroArgExpansionFileIDs(), clang::FullSourceLoc::getFileID(), clang::FullSourceLoc::getManager(), clang::SourceLocation::isInvalid(), clang::SourceLocation::isMacroID(), retrieveMacroLocation(), and SM.
Referenced by rangesInsideSameMacroArgExpansion().
|
static |
Definition at line 57 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(), clang::edit::Commit::replace(), and SM.
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 457 of file DiagnosticRenderer.cpp.
References clang::SourceLocation::getLocWithOffset(), clang::FullSourceLoc::getManager(), clang::SourceLocation::isMacroID(), mapDiagnosticRanges(), and SM.
|
static |
A recursive function to trace all possible backtrace locations to match the CaretLocFileID.
Definition at line 257 of file DiagnosticRenderer.cpp.
References clang::CharSourceRange::getBegin(), clang::CharSourceRange::getEnd(), clang::SourceLocation::isMacroID(), clang::CharSourceRange::isTokenRange(), clang::SourceLocation::isValid(), retrieveMacroLocation(), and SM.
Referenced by mapDiagnosticRanges(), and retrieveMacroLocation().