summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.test/compilable/vtemplates.d
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gdc.test/compilable/vtemplates.d')
-rw-r--r--gcc/testsuite/gdc.test/compilable/vtemplates.d28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/gdc.test/compilable/vtemplates.d b/gcc/testsuite/gdc.test/compilable/vtemplates.d
new file mode 100644
index 00000000000..578d6c08c7a
--- /dev/null
+++ b/gcc/testsuite/gdc.test/compilable/vtemplates.d
@@ -0,0 +1,28 @@
+/* REQUIRED_ARGS: -vtemplates
+TEST_OUTPUT:
+---
+compilable/vtemplates.d(10): vtemplate: 4 (3 distinct) instantiation(s) of template `foo(int I)()` found
+compilable/vtemplates.d(11): vtemplate: 5 (2 distinct) instantiation(s) of template `goo1(int I)()` found
+compilable/vtemplates.d(12): vtemplate: 3 (2 distinct) instantiation(s) of template `goo2(int I)()` found
+---
+*/
+
+void foo(int I)() { }
+void goo1(int I)() { }
+void goo2(int I)() { goo1!(I); }
+
+void test()
+{
+ foo!(1)();
+ foo!(1)();
+ foo!(2)();
+ foo!(3)();
+
+ goo1!(1)();
+ goo1!(1)();
+ goo1!(2)();
+
+ goo2!(1)();
+ goo2!(2)();
+ goo2!(2)();
+}