Constify argument of Preprocessor::getMacroInfoHistory and propagate to

callers, removing unneeded const_cast

llvm-svn: 172372
This commit is contained in:
Dmitri Gribenko 2013-01-14 00:36:42 +00:00
parent 97e3df087d
commit 049a4ffcb8
6 changed files with 10 additions and 9 deletions

View File

@ -307,7 +307,7 @@ class Preprocessor : public RefCountedBase<Preprocessor> {
/// Macros - For each IdentifierInfo that was associated with a macro, we
/// keep a mapping to the history of all macro definitions and #undefs in
/// the reverse order (the latest one is in the head of the list).
llvm::DenseMap<IdentifierInfo*, MacroInfo*> Macros;
llvm::DenseMap<const IdentifierInfo*, MacroInfo*> Macros;
friend class ASTReader;
/// \brief Macros that we want to warn because they are not used at the end
@ -520,7 +520,7 @@ public:
/// representing the most recent macro definition. One can iterate over all
/// previous macro definitions from it. This method should only be called for
/// identifiers that hadMacroDefinition().
MacroInfo *getMacroInfoHistory(IdentifierInfo *II) const;
MacroInfo *getMacroInfoHistory(const IdentifierInfo *II) const;
/// \brief Specify a macro for this identifier.
void setMacroInfo(IdentifierInfo *II, MacroInfo *MI);
@ -537,7 +537,7 @@ public:
/// history table. Currently defined macros have
/// IdentifierInfo::hasMacroDefinition() set and an empty
/// MacroInfo::getUndefLoc() at the head of the list.
typedef llvm::DenseMap<IdentifierInfo*,
typedef llvm::DenseMap<const IdentifierInfo *,
MacroInfo*>::const_iterator macro_iterator;
macro_iterator macro_begin(bool IncludeExternalMacros = true) const;
macro_iterator macro_end(bool IncludeExternalMacros = true) const;

View File

@ -661,7 +661,7 @@ public:
CodeCompletionString *Pattern;
/// \brief When Kind == RK_Macro, the identifier that refers to a macro.
IdentifierInfo *Macro;
const IdentifierInfo *Macro;
};
/// \brief The priority of this particular code-completion result.
@ -728,7 +728,8 @@ public:
}
/// \brief Build a result that refers to a macro.
CodeCompletionResult(IdentifierInfo *Macro, unsigned Priority = CCP_Macro)
CodeCompletionResult(const IdentifierInfo *Macro,
unsigned Priority = CCP_Macro)
: Declaration(0), Macro(Macro), Priority(Priority), StartParameter(0),
Kind(RK_Macro), CursorKind(CXCursor_MacroDefinition),
Availability(CXAvailability_Available), Hidden(false),

View File

@ -565,7 +565,7 @@ static void PrintPreprocessedTokens(Preprocessor &PP, Token &Tok,
}
}
typedef std::pair<IdentifierInfo*, MacroInfo*> id_macro_pair;
typedef std::pair<const IdentifierInfo *, MacroInfo *> id_macro_pair;
static int MacroIDCompare(const void* a, const void* b) {
const id_macro_pair *LHS = static_cast<const id_macro_pair*>(a);
const id_macro_pair *RHS = static_cast<const id_macro_pair*>(b);

View File

@ -32,7 +32,7 @@
#include <ctime>
using namespace clang;
MacroInfo *Preprocessor::getMacroInfoHistory(IdentifierInfo *II) const {
MacroInfo *Preprocessor::getMacroInfoHistory(const IdentifierInfo *II) const {
assert(II->hadMacroDefinition() && "Identifier has not been not a macro!");
macro_iterator Pos = Macros.find(II);

View File

@ -6233,7 +6233,7 @@ MacroInfo *cxindex::getMacroInfo(const IdentifierInfo &II,
ASTUnit *Unit = static_cast<ASTUnit *>(TU->TUData);
Preprocessor &PP = Unit->getPreprocessor();
MacroInfo *MI = PP.getMacroInfoHistory(const_cast<IdentifierInfo*>(&II));
MacroInfo *MI = PP.getMacroInfoHistory(&II);
while (MI) {
if (MacroDefLoc == MI->getDefinitionLoc())
return MI;

View File

@ -1056,7 +1056,7 @@ CXCompletionString clang_getCursorCompletionString(CXCursor cursor) {
const MacroDefinition *definition = getCursorMacroDefinition(cursor);
const IdentifierInfo *MacroInfo = definition->getName();
ASTUnit *unit = getCursorASTUnit(cursor);
CodeCompletionResult Result(const_cast<IdentifierInfo *>(MacroInfo));
CodeCompletionResult Result(MacroInfo);
CodeCompletionString *String
= Result.CreateCodeCompletionString(unit->getASTContext(),
unit->getPreprocessor(),