1 // RUN: rm -rf %t 2 // RUN: mkdir %t 3 // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng -target x86_64-apple-darwin10 std=c++11 %s > %t/out 4 // RUN: FileCheck %s < %t/out 5 6 // Ensure that XML we generate is not invalid. 7 // RUN: FileCheck %s -check-prefix=WRONG < %t/out 8 // WRONG-NOT: CommentXMLInvalid 9 // rdar://12378714 10 11 /** 12 * \brief Aaa 13 */ 14 template<typename T> struct A { 15 /** 16 * \brief Bbb 17 */ 18 A(); 19 /** 20 * \brief Ccc 21 */ 22 ~A(); 23 /** 24 * \brief Ddd 25 */ fA26 void f() { } 27 }; 28 // CHECK: <Declaration>template <typename T> struct A {}</Declaration> 29 // CHECK: <Declaration>A<T>()</Declaration> 30 // CHECK: <Declaration>~A<T>()</Declaration> 31 32 /** 33 * \Brief Eee 34 */ 35 template <typename T> struct D : A<T> { 36 /** 37 * \brief 38 */ 39 using A<T>::f; 40 41 void f(); 42 }; 43 // CHECK: <Declaration>template <typename T> struct D : A<T> {}</Declaration> 44 // CHECK: <Declaration>using A<T>::f</Declaration> 45 46 struct Base { 47 int foo; 48 }; 49 /** 50 * \brief 51 */ 52 template<typename T> struct E : Base { 53 /** 54 * \brief 55 */ 56 using Base::foo; 57 }; 58 // CHECK: <Declaration>template <typename T> struct E : Base {}</Declaration> 59 // CHECK: <Declaration>using Base::foo</Declaration> 60 61 /// \tparam 62 /// \param AAA Blah blah 63 template<typename T> 64 void func_template_1(T AAA); 65 // CHECK: <Declaration>template <typename T> void func_template_1(T AAA)</Declaration> 66 67 template<template<template<typename CCC> class DDD, class BBB> class AAA> 68 void func_template_2(); 69 // FIXME: There is not Declaration field in the generated output. 70 71 namespace rdar16128173 { 72 // CHECK: <Declaration>template <class PtrTy> class OpaquePtr {}</Declaration> 73 74 /// \brief Wrapper for void* pointer. 75 /// \tparam PtrTy Either a pointer type like 'T*' or a type that behaves like 76 /// a pointer. 77 template <class PtrTy> 78 class OpaquePtr {}; 79 80 // CHECK: <Declaration>typedef OpaquePtr<int> DeclGroupPtrTy</Declaration> 81 typedef OpaquePtr<int> DeclGroupPtrTy; 82 83 DeclGroupPtrTy blah; 84 } 85