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
6 // Ensure that XML we generate is not invalid.
7 // RUN: FileCheck %s -check-prefix=WRONG < %t/out
8 // WRONG-NOT: CommentXMLInvalid
14 template<typename T
> struct A
{
28 // CHECK: <Declaration>template <typename T> struct A {}</Declaration>
29 // CHECK: <Declaration>A<T>()</Declaration>
30 // CHECK: <Declaration>~A<T>()</Declaration>
35 template <typename T
> struct D
: A
<T
> {
43 // CHECK: <Declaration>template <typename T> struct D : A<T> {}</Declaration>
44 // CHECK: <Declaration>using A<T>::f</Declaration>
52 template<typename T
> struct E
: Base
{
58 // CHECK: <Declaration>template <typename T> struct E : Base {}</Declaration>
59 // CHECK: <Declaration>using Base::foo</Declaration>
62 /// \param AAA Blah blah
64 void func_template_1(T AAA
);
65 // CHECK: <Declaration>template <typename T> void func_template_1(T AAA)</Declaration>
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.
71 namespace rdar16128173
{
72 // CHECK: <Declaration>template <class PtrTy> class OpaquePtr {}</Declaration>
74 /// \brief Wrapper for void* pointer.
75 /// \tparam PtrTy Either a pointer type like 'T*' or a type that behaves like
77 template <class PtrTy
>
80 // CHECK: <Declaration>typedef OpaquePtr<int> DeclGroupPtrTy</Declaration>
81 typedef OpaquePtr
<int> DeclGroupPtrTy
;