summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2016-03-04 07:17:48 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2016-03-04 07:17:48 +0000
commit2682f9e5de2d14d64972ba25c9fc769c93b53c1d (patch)
tree470eed994139b65134aa508c09a7798031d2f619
parent9c9986738633640d9ac1e38d6c54948a9245c3c1 (diff)
downloadbcm5719-llvm-2682f9e5de2d14d64972ba25c9fc769c93b53c1d.tar.gz
bcm5719-llvm-2682f9e5de2d14d64972ba25c9fc769c93b53c1d.zip
[index] Include parameter types in the USRs for C functions marked with 'overloadable' attribute.
llvm-svn: 262694
-rw-r--r--clang/lib/Index/USRGeneration.cpp3
-rw-r--r--clang/test/Index/Core/index-source.m5
2 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Index/USRGeneration.cpp b/clang/lib/Index/USRGeneration.cpp
index 85478265c06..cb30090adc0 100644
--- a/clang/lib/Index/USRGeneration.cpp
+++ b/clang/lib/Index/USRGeneration.cpp
@@ -218,7 +218,8 @@ void USRGenerator::VisitFunctionDecl(const FunctionDecl *D) {
D->getDeclName().print(Out, Policy);
ASTContext &Ctx = *Context;
- if (!Ctx.getLangOpts().CPlusPlus || D->isExternC())
+ if ((!Ctx.getLangOpts().CPlusPlus || D->isExternC()) &&
+ !D->hasAttr<OverloadableAttr>())
return;
if (const TemplateArgumentList *
diff --git a/clang/test/Index/Core/index-source.m b/clang/test/Index/Core/index-source.m
index d57879c8988..d1326624630 100644
--- a/clang/test/Index/Core/index-source.m
+++ b/clang/test/Index/Core/index-source.m
@@ -43,3 +43,8 @@ void goo(Base *b) {
// CHECK-NOT: ObjectType
-(ObjectType)getit;
@end
+
+// CHECK: [[@LINE+1]]:6 | function/C | over_func | c:@F@over_func#I# | __Z9over_funci | Decl | rel: 0
+void over_func(int x) __attribute__((overloadable));
+// CHECK: [[@LINE+1]]:6 | function/C | over_func | c:@F@over_func#f# | __Z9over_funcf | Decl | rel: 0
+void over_func(float x) __attribute__((overloadable));
OpenPOWER on IntegriCloud