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;