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().