Author: akirtzidis
Date: Mon Mar 18 18:54:50 2013
New Revision: 177359
URL: http://llvm.org/viewvc/llvm-project?rev=177359&view=rev
Log:
[libclang] Modify clang_getCursorType to be able to handle a function template
decl.
Modified:
cfe/trunk/test/Index/print-type.cpp
cfe/trunk/tools/libclang/CXType.cpp
Modified: cfe/trunk/test/Index/print-type.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-type.cpp?rev=177359&r1=177358&r2=177359&view=diff
==============================================================================
--- cfe/trunk/test/Index/print-type.cpp (original)
+++ cfe/trunk/test/Index/print-type.cpp Mon Mar 18 18:54:50 2013
@@ -23,6 +23,9 @@ struct Bar {
}
}
+template <typename T>
+T tbar(int);
+
// RUN: c-index-test -test-print-type %s | FileCheck %s
// CHECK: Namespace=outer:1:11 (Definition) [type=] [typekind=Invalid]
[isPOD=0]
// CHECK: ClassTemplate=Foo:4:8 (Definition) [type=] [typekind=Invalid]
[isPOD=0]
@@ -54,3 +57,5 @@ struct Bar {
// CHECK: DeclRefExpr=z:15:35 [type=FooType] [typekind=Typedef]
[canonicaltype=int] [canonicaltypekind=Int] [isPOD=1]
// CHECK: TypedefDecl=OtherType:19:18 (Definition) [type=OtherType]
[typekind=Typedef] [canonicaltype=double] [canonicaltypekind=Double] [isPOD=1]
// CHECK: TypedefDecl=ArrayType:20:15 (Definition) [type=ArrayType]
[typekind=Typedef] [canonicaltype=int [5]] [canonicaltypekind=ConstantArray]
[isPOD=1]
+// CHECK: FunctionTemplate=tbar:27:3 [type=T (int)] [typekind=FunctionProto]
[canonicaltype=type-parameter-0-0 (int)] [canonicaltypekind=FunctionProto]
[resulttype=T] [resulttypekind=Unexposed] [isPOD=0]
+// CHECK: TemplateTypeParameter=T:26:20 (Definition) [type=T]
[typekind=Unexposed] [canonicaltype=type-parameter-0-0]
[canonicaltypekind=Unexposed] [isPOD=0]
Modified: cfe/trunk/tools/libclang/CXType.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CXType.cpp?rev=177359&r1=177358&r2=177359&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CXType.cpp (original)
+++ cfe/trunk/tools/libclang/CXType.cpp Mon Mar 18 18:54:50 2013
@@ -155,6 +155,8 @@ CXType clang_getCursorType(CXCursor C) {
return MakeCXType(PD->getType(), TU);
if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
return MakeCXType(FD->getType(), TU);
+ if (const FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(D))
+ return MakeCXType(FTD->getTemplatedDecl()->getType(), TU);
return MakeCXType(QualType(), TU);
}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits