summaryrefslogtreecommitdiffstats
path: root/clang/lib/Index/USRGeneration.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2018-09-18 15:02:56 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2018-09-18 15:02:56 +0000
commit32e5d8626d006337416ae4a4190bd498e8a5478a (patch)
tree4b582e1928277a1f749a0fe27d0eecec752d4309 /clang/lib/Index/USRGeneration.cpp
parent9f9cdd41ccb90ed75fa8903307214f16e56ed51a (diff)
downloadbcm5719-llvm-32e5d8626d006337416ae4a4190bd498e8a5478a.tar.gz
bcm5719-llvm-32e5d8626d006337416ae4a4190bd498e8a5478a.zip
[index] Enhance indexing for module references
* Create a USR for the occurrences of the 'module' symbol kind * Record module references for each identifier in an import declaration llvm-svn: 342484
Diffstat (limited to 'clang/lib/Index/USRGeneration.cpp')
-rw-r--r--clang/lib/Index/USRGeneration.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/lib/Index/USRGeneration.cpp b/clang/lib/Index/USRGeneration.cpp
index 62ae7108fc6..8194c9508fb 100644
--- a/clang/lib/Index/USRGeneration.cpp
+++ b/clang/lib/Index/USRGeneration.cpp
@@ -1094,3 +1094,29 @@ bool clang::index::generateUSRForMacro(StringRef MacroName, SourceLocation Loc,
Out << MacroName;
return false;
}
+
+bool clang::index::generateFullUSRForModule(const Module *Mod,
+ raw_ostream &OS) {
+ if (!Mod->Parent)
+ return generateFullUSRForTopLevelModuleName(Mod->Name, OS);
+ if (generateFullUSRForModule(Mod->Parent, OS))
+ return true;
+ return generateUSRFragmentForModule(Mod, OS);
+}
+
+bool clang::index::generateFullUSRForTopLevelModuleName(StringRef ModName,
+ raw_ostream &OS) {
+ OS << getUSRSpacePrefix();
+ return generateUSRFragmentForModuleName(ModName, OS);
+}
+
+bool clang::index::generateUSRFragmentForModule(const Module *Mod,
+ raw_ostream &OS) {
+ return generateUSRFragmentForModuleName(Mod->Name, OS);
+}
+
+bool clang::index::generateUSRFragmentForModuleName(StringRef ModName,
+ raw_ostream &OS) {
+ OS << "@M@" << ModName;
+ return false;
+}
OpenPOWER on IntegriCloud