summaryrefslogtreecommitdiff
path: root/include/clang/Basic/PlistSupport.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Basic/PlistSupport.h')
-rw-r--r--include/clang/Basic/PlistSupport.h25
1 files changed, 18 insertions, 7 deletions
diff --git a/include/clang/Basic/PlistSupport.h b/include/clang/Basic/PlistSupport.h
index be92bbfde1853..e41c24737798f 100644
--- a/include/clang/Basic/PlistSupport.h
+++ b/include/clang/Basic/PlistSupport.h
@@ -25,24 +25,35 @@ namespace markup {
using FIDMap = llvm::DenseMap<FileID, unsigned>;
-inline void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
- const SourceManager &SM, SourceLocation L) {
- FileID FID = SM.getFileID(SM.getExpansionLoc(L));
+inline unsigned AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
+ FileID FID) {
FIDMap::iterator I = FIDs.find(FID);
if (I != FIDs.end())
- return;
- FIDs[FID] = V.size();
+ return I->second;
+ unsigned NewValue = V.size();
+ FIDs[FID] = NewValue;
V.push_back(FID);
+ return NewValue;
}
-inline unsigned GetFID(const FIDMap &FIDs, const SourceManager &SM,
- SourceLocation L) {
+inline unsigned AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
+ const SourceManager &SM, SourceLocation L) {
FileID FID = SM.getFileID(SM.getExpansionLoc(L));
+ return AddFID(FIDs, V, FID);
+}
+
+inline unsigned GetFID(const FIDMap &FIDs, FileID FID) {
FIDMap::const_iterator I = FIDs.find(FID);
assert(I != FIDs.end());
return I->second;
}
+inline unsigned GetFID(const FIDMap &FIDs, const SourceManager &SM,
+ SourceLocation L) {
+ FileID FID = SM.getFileID(SM.getExpansionLoc(L));
+ return GetFID(FIDs, FID);
+}
+
inline raw_ostream &Indent(raw_ostream &o, const unsigned indent) {
for (unsigned i = 0; i < indent; ++i)
o << ' ';