void erase(const FileEntry *Entry) { std::string FullPath(GetFullPath(Entry->getName())); // Lowercase string because Windows filesystem is case insensitive. FullPath = StringRef(FullPath).lower(); UniqueFiles.erase(FullPath); }
static void rename(llvm::StringMap<cl::Option *> &map, const char *from, const char *to) { auto i = map.find(from); if (i != map.end()) { cl::Option *opt = i->getValue(); map.erase(i); opt->setArgStr(to); map[to] = opt; } }
// Register a marker. void addMarker(StringRef MarkerName, SourceLocation Pos) { auto InsertResult = Markers.insert( {MarkerName, Marker{Pos, SourceLocation(), SourceLocation()}}); Marker &M = InsertResult.first->second; if (!InsertResult.second) { // Marker was redefined. M.RedefLoc = Pos; } else { // First definition: build any deferred directives. auto Deferred = DeferredDirectives.find(MarkerName); if (Deferred != DeferredDirectives.end()) { for (auto &UD : Deferred->second) { if (M.UseLoc.isInvalid()) M.UseLoc = UD.DirectivePos; attachDirective(Diags, UD, Pos); } DeferredDirectives.erase(Deferred); } } }