head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.2
	netbsd-11-0-RC3:1.1.1.2
	netbsd-11-0-RC2:1.1.1.2
	netbsd-11-0-RC1:1.1.1.2
	perseant-exfatfs-base-20250801:1.1.1.2
	netbsd-11:1.1.1.2.0.10
	netbsd-11-base:1.1.1.2
	netbsd-10-1-RELEASE:1.1.1.2
	perseant-exfatfs-base-20240630:1.1.1.2
	perseant-exfatfs:1.1.1.2.0.8
	perseant-exfatfs-base:1.1.1.2
	netbsd-9-4-RELEASE:1.1.1.1
	netbsd-10-0-RELEASE:1.1.1.2
	netbsd-10-0-RC6:1.1.1.2
	netbsd-10-0-RC5:1.1.1.2
	netbsd-10-0-RC4:1.1.1.2
	netbsd-10-0-RC3:1.1.1.2
	netbsd-10-0-RC2:1.1.1.2
	netbsd-10-0-RC1:1.1.1.2
	netbsd-10:1.1.1.2.0.6
	netbsd-10-base:1.1.1.2
	netbsd-9-3-RELEASE:1.1.1.1
	cjep_sun2x:1.1.1.2.0.4
	cjep_sun2x-base:1.1.1.2
	cjep_staticlib_x-base1:1.1.1.2
	netbsd-9-2-RELEASE:1.1.1.1
	cjep_staticlib_x:1.1.1.2.0.2
	cjep_staticlib_x-base:1.1.1.2
	netbsd-9-1-RELEASE:1.1.1.1
	phil-wifi-20200421:1.1.1.2
	phil-wifi-20200411:1.1.1.2
	phil-wifi-20200406:1.1.1.2
	netbsd-9-0-RELEASE:1.1.1.1
	netbsd-9-0-RC2:1.1.1.1
	netbsd-9-0-RC1:1.1.1.1
	netbsd-9:1.1.1.1.0.6
	netbsd-9-base:1.1.1.1
	phil-wifi-20190609:1.1.1.1
	pgoyette-compat-merge-20190127:1.1.1.1
	pgoyette-compat-20190127:1.1.1.1
	pgoyette-compat-20190118:1.1.1.1
	pgoyette-compat-1226:1.1.1.1
	pgoyette-compat-1126:1.1.1.1
	pgoyette-compat-1020:1.1.1.1
	pgoyette-compat-0930:1.1.1.1
	pgoyette-compat-0906:1.1.1.1
	pgoyette-compat-0728:1.1.1.1
	clang-337282:1.1.1.1
	phil-wifi:1.1.1.1.0.4
	phil-wifi-base:1.1.1.1
	pgoyette-compat-0625:1.1.1.1
	pgoyette-compat-0521:1.1.1.1
	pgoyette-compat-0502:1.1.1.1
	pgoyette-compat-0422:1.1.1.1
	pgoyette-compat-0415:1.1.1.1
	pgoyette-compat-0407:1.1.1.1
	pgoyette-compat-0330:1.1.1.1
	pgoyette-compat-0322:1.1.1.1
	pgoyette-compat-0315:1.1.1.1
	pgoyette-compat:1.1.1.1.0.2
	pgoyette-compat-base:1.1.1.1
	clang-319952:1.1.1.1
	clang-309604:1.1.1.1
	LLVM:1.1.1;
locks; strict;
comment	@// @;


1.1
date	2017.08.01.19.34.23;	author joerg;	state Exp;
branches
	1.1.1.1;
next	;
commitid	pMuDy65V0VicSx1A;

1.1.1.1
date	2017.08.01.19.34.23;	author joerg;	state Exp;
branches
	1.1.1.1.4.1;
next	1.1.1.2;
commitid	pMuDy65V0VicSx1A;

1.1.1.2
date	2019.11.13.22.21.51;	author joerg;	state dead;
branches;
next	;
commitid	QD8YATxuNG34YJKB;

1.1.1.1.4.1
date	2020.04.13.07.49.17;	author martin;	state dead;
branches;
next	;
commitid	X01YhRUPVUDaec4C;


desc
@@


1.1
log
@Initial revision
@
text
@// RUN: c-index-test -test-load-source all %s -fno-delayed-template-parsing | FileCheck %s
template<typename MyBase>
struct Derived:  MyBase::InnerIterator
{
    Derived() : MyBase::InnerIterator() {}
// CHECK:  TypeRef=MyBase:2:19 Extent=[5:17 - 5:23]
};

template<typename MyBase>
struct Derived2:  MyBase::Deeper::InnerIterator
{
    Derived2() : MyBase::Deeper::InnerIterator() {}
// CHECK:  TypeRef=MyBase:9:19 Extent=[12:18 - 12:24]
};

template<typename Q>
struct Templ;

template<typename MyBase>
struct Derived3:  Templ<MyBase>::InnerIterator
{
    Derived3() : Templ<MyBase>::InnerIterator() {}
// CHECK: TemplateRef=Templ:17:8 Extent=[22:18 - 22:23]
// CHECK: TypeRef=MyBase:19:19 Extent=[22:24 - 22:30]
};


struct Outer {
    template <typename Q>
    struct Inner {
        typedef Q Parm;
    };
};

template<typename Q>
struct Derived4:  Outer::Inner<Q>::Parm
{
    Derived4() : Outer::Inner<Q>::Parm() {}
// CHECK: TypeRef=struct Outer:28:8 Extent=[38:18 - 38:23]
// CHECK: TemplateRef=Inner:30:12 Extent=[38:25 - 38:30]
// CHECK: TypeRef=Q:35:19 Extent=[38:31 - 38:32]
};

template<typename Q>
struct Derived5:  Outer::Inner<Q>::Parm::InnerIterator
{
    Derived5() : Outer::Inner<Q>::Parm::InnerIterator() {}
// CHECK: TypeRef=struct Outer:28:8 Extent=[47:18 - 47:23]
// CHECK: TemplateRef=Inner:30:12 Extent=[47:25 - 47:30]
// CHECK: TypeRef=Q:44:19 Extent=[47:31 - 47:32]
};

template<typename Q>
struct Derived6:  Outer::Inner<Q>
{
    Derived6() : Outer::Inner<Q>() {}
// CHECK: TypeRef=struct Outer:28:8 Extent=[56:18 - 56:23]
// CHECK: TemplateRef=Inner:30:12 Extent=[56:25 - 56:30]
// CHECK: TypeRef=Q:53:19 Extent=[56:31 - 56:32]
};

struct Base {};

struct Derived7:  Outer::Inner<Base>::Parm
{
    Derived7() : Outer::Inner<Base>::Parm() {}
// CHECK: TypeRef=struct Outer:28:8 Extent=[66:18 - 66:23]
// CHECK: TemplateRef=Inner:30:12 Extent=[66:25 - 66:30]
// CHECK: TypeRef=struct Base:62:8 Extent=[66:31 - 66:35]
};

struct Derived8:  Outer::Inner<Base>
{
    Derived8() : Outer::Inner<Base>() {}
// CHECK: TypeRef=struct Outer:28:8 Extent=[74:18 - 74:23]
// CHECK: TemplateRef=Inner:30:12 Extent=[74:25 - 74:30]
// CHECK: TypeRef=struct Base:62:8 Extent=[74:31 - 74:35]
};

namespace Namespace {
    template<typename Q> struct Templ;

    struct Outer {
        template <typename Q>
        struct Inner {
            typedef Q Parm;
        };
    };
}

template<typename MyBase>
struct Derived9:  Namespace::Templ<MyBase>::InnerIterator
{
    Derived9() : Namespace::Templ<MyBase>::InnerIterator() {}
// CHECK: NamespaceRef=Namespace:80:11 Extent=[94:18 - 94:27]
// CHECK: TemplateRef=Templ:81:33 Extent=[94:29 - 94:34]
// CHECK: TypeRef=MyBase:91:19 Extent=[94:35 - 94:41]
};

template<typename MyBase>
struct Derived10:  Namespace::Templ<MyBase>
{
    Derived10() : Namespace::Templ<MyBase>() {}
// CHECK: NamespaceRef=Namespace:80:11 Extent=[103:19 - 103:28]
// CHECK: TemplateRef=Templ:81:33 Extent=[103:30 - 103:35]
// CHECK: TypeRef=MyBase:100:19 Extent=[103:36 - 103:42]
};

template<typename MyBase>
struct Derived11:  Namespace::Outer::Inner<MyBase>::Parm
{
    Derived11() : Namespace::Outer::Inner<MyBase>::Parm() {}
// CHECK: NamespaceRef=Namespace:80:11 Extent=[112:19 - 112:28]
// CHECK: TypeRef=struct Namespace::Outer:83:12 Extent=[112:30 - 112:35]
// CHECK: TemplateRef=Inner:85:16 Extent=[112:37 - 112:42]
// CHECK: TypeRef=MyBase:109:19 Extent=[112:43 - 112:49]
};
@


1.1.1.1
log
@Import clang r309604 from branches/release_50
@
text
@@


1.1.1.1.4.1
log
@Mostly merge changes from HEAD upto 20200411
@
text
@@


1.1.1.2
log
@Mark old LLVM instance as dead.
@
text
@@

