Mercurial > projects > ldc
comparison dmd/template.c @ 1610:4f63d530861f
Merge DMD r276: bugzilla 2229 ICE(template.c) instantiating an invalid...
bugzilla 2229 ICE(template.c) instantiating an invalid variadic template
with more than one argument.
---
dmd/template.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:21 -0300 |
parents | 1d0220dd613a |
children | 3da302cc4966 |
comparison
equal
deleted
inserted
replaced
1609:1d0220dd613a | 1610:4f63d530861f |
---|---|
812 dedargs->zero(); | 812 dedargs->zero(); |
813 } | 813 } |
814 else | 814 else |
815 n = nargsi; | 815 n = nargsi; |
816 | 816 |
817 memcpy(dedargs->data, targsi->data, n * sizeof(*dedargs->data)); | 817 /* Test case for nargsi instead of n: |
818 * string foo(T...)() { return ""; } | |
819 * void main() { foo!(int, char)(); } | |
820 */ | |
821 //memcpy(dedargs->data, targsi->data, n * sizeof(*dedargs->data)); | |
822 memcpy(dedargs->data, targsi->data, nargsi * sizeof(*dedargs->data)); | |
818 | 823 |
819 for (size_t i = 0; i < n; i++) | 824 for (size_t i = 0; i < n; i++) |
820 { assert(i < parameters->dim); | 825 { assert(i < parameters->dim); |
821 TemplateParameter *tp = (TemplateParameter *)parameters->data[i]; | 826 TemplateParameter *tp = (TemplateParameter *)parameters->data[i]; |
822 MATCH m; | 827 MATCH m; |