};
typedef SmallVector<PropData, 2> PropsTy;
- typedef std::map<unsigned, PropsTy> AtPropDeclsTy;
+ typedef std::map<SourceLocation, PropsTy> AtPropDeclsTy;
AtPropDeclsTy AtProps;
llvm::DenseMap<IdentifierInfo *, PropActionKind> ActionOnProp;
static void collectProperties(ObjCContainerDecl *D, AtPropDeclsTy &AtProps,
AtPropDeclsTy *PrevAtProps = nullptr) {
for (auto *Prop : D->instance_properties()) {
- if (Prop->getAtLoc().isInvalid())
+ SourceLocation Loc = Prop->getAtLoc();
+ if (Loc.isInvalid())
continue;
- unsigned RawLoc = Prop->getAtLoc().getRawEncoding();
if (PrevAtProps)
- if (PrevAtProps->find(RawLoc) != PrevAtProps->end())
+ if (PrevAtProps->find(Loc) != PrevAtProps->end())
continue;
- PropsTy &props = AtProps[RawLoc];
+ PropsTy &props = AtProps[Loc];
props.push_back(Prop);
}
}
ObjCIvarDecl *ivarD = implD->getPropertyIvarDecl();
if (!ivarD || ivarD->isInvalidDecl())
continue;
- unsigned rawAtLoc = propD->getAtLoc().getRawEncoding();
- AtPropDeclsTy::iterator findAtLoc = AtProps.find(rawAtLoc);
+ AtPropDeclsTy::iterator findAtLoc = AtProps.find(propD->getAtLoc());
if (findAtLoc == AtProps.end())
continue;
for (AtPropDeclsTy::iterator
I = AtProps.begin(), E = AtProps.end(); I != E; ++I) {
- SourceLocation atLoc = SourceLocation::getFromRawEncoding(I->first);
+ SourceLocation atLoc = I->first;
PropsTy &props = I->second;
if (!getPropertyType(props)->isObjCRetainableType())
continue;
bool ShowLineMarkers; ///< Show #line markers.
bool UseLineDirectives; ///< Use of line directives or line markers.
/// Tracks where inclusions that change the file are found.
- std::map<unsigned, IncludedFile> FileIncludes;
+ std::map<SourceLocation, IncludedFile> FileIncludes;
/// Tracks where inclusions that import modules are found.
- std::map<unsigned, const Module *> ModuleIncludes;
+ std::map<SourceLocation, const Module *> ModuleIncludes;
/// Tracks where inclusions that enter modules (in a module build) are found.
- std::map<unsigned, const Module *> ModuleEntryIncludes;
+ std::map<SourceLocation, const Module *> ModuleEntryIncludes;
/// Tracks where #if and #elif directives get evaluated and whether to true.
- std::map<unsigned, bool> IfConditions;
+ std::map<SourceLocation, bool> IfConditions;
/// Used transitively for building up the FileIncludes mapping over the
/// various \c PPCallbacks callbacks.
SourceLocation LastInclusionLocation;
void detectMainFileEOL();
void handleModuleBegin(Token &Tok) {
assert(Tok.getKind() == tok::annot_module_begin);
- ModuleEntryIncludes.insert({Tok.getLocation().getRawEncoding(),
- (Module *)Tok.getAnnotationValue()});
+ ModuleEntryIncludes.insert(
+ {Tok.getLocation(), (Module *)Tok.getAnnotationValue()});
}
private:
void FileChanged(SourceLocation Loc, FileChangeReason Reason,
return;
FileID Id = FullSourceLoc(Loc, SM).getFileID();
auto P = FileIncludes.insert(
- std::make_pair(LastInclusionLocation.getRawEncoding(),
+ std::make_pair(LastInclusionLocation,
IncludedFile(Id, NewFileType, PP.GetCurDirLookup())));
(void)P;
assert(P.second && "Unexpected revisitation of the same include directive");
const Module *Imported,
SrcMgr::CharacteristicKind FileType){
if (Imported) {
- auto P = ModuleIncludes.insert(
- std::make_pair(HashLoc.getRawEncoding(), Imported));
+ auto P = ModuleIncludes.insert(std::make_pair(HashLoc, Imported));
(void)P;
assert(P.second && "Unexpected revisitation of the same include directive");
} else
void InclusionRewriter::If(SourceLocation Loc, SourceRange ConditionRange,
ConditionValueKind ConditionValue) {
- auto P = IfConditions.insert(
- std::make_pair(Loc.getRawEncoding(), ConditionValue == CVK_True));
+ auto P = IfConditions.insert(std::make_pair(Loc, ConditionValue == CVK_True));
(void)P;
assert(P.second && "Unexpected revisitation of the same if directive");
}
void InclusionRewriter::Elif(SourceLocation Loc, SourceRange ConditionRange,
ConditionValueKind ConditionValue,
SourceLocation IfLoc) {
- auto P = IfConditions.insert(
- std::make_pair(Loc.getRawEncoding(), ConditionValue == CVK_True));
+ auto P = IfConditions.insert(std::make_pair(Loc, ConditionValue == CVK_True));
(void)P;
assert(P.second && "Unexpected revisitation of the same elif directive");
}
/// an inclusion directive) in the map of inclusion information, FileChanges.
const InclusionRewriter::IncludedFile *
InclusionRewriter::FindIncludeAtLocation(SourceLocation Loc) const {
- const auto I = FileIncludes.find(Loc.getRawEncoding());
+ const auto I = FileIncludes.find(Loc);
if (I != FileIncludes.end())
return &I->second;
return nullptr;
/// an inclusion directive) in the map of module inclusion information.
const Module *
InclusionRewriter::FindModuleAtLocation(SourceLocation Loc) const {
- const auto I = ModuleIncludes.find(Loc.getRawEncoding());
+ const auto I = ModuleIncludes.find(Loc);
if (I != ModuleIncludes.end())
return I->second;
return nullptr;
/// an inclusion directive) in the map of module entry information.
const Module *
InclusionRewriter::FindEnteredModule(SourceLocation Loc) const {
- const auto I = ModuleEntryIncludes.find(Loc.getRawEncoding());
+ const auto I = ModuleEntryIncludes.find(Loc);
if (I != ModuleEntryIncludes.end())
return I->second;
return nullptr;
}
bool InclusionRewriter::IsIfAtLocationTrue(SourceLocation Loc) const {
- const auto I = IfConditions.find(Loc.getRawEncoding());
+ const auto I = IfConditions.find(Loc);
if (I != IfConditions.end())
return I->second;
return false;