From cdd1d546a7a5fe05add1277585f40c4fe6cd6bfd Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 6 Jan 2010 15:18:21 -0300 Subject: [PATCH] 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(-) --- dmd/template.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dmd/template.c b/dmd/template.c index 6a5d12bf..029a546a 100644 --- a/dmd/template.c +++ b/dmd/template.c @@ -814,7 +814,12 @@ MATCH TemplateDeclaration::deduceFunctionTemplateMatch(Loc loc, Objects *targsi, else n = nargsi; - memcpy(dedargs->data, targsi->data, n * sizeof(*dedargs->data)); + /* Test case for nargsi instead of n: + * string foo(T...)() { return ""; } + * void main() { foo!(int, char)(); } + */ + //memcpy(dedargs->data, targsi->data, n * sizeof(*dedargs->data)); + memcpy(dedargs->data, targsi->data, nargsi * sizeof(*dedargs->data)); for (size_t i = 0; i < n; i++) { assert(i < parameters->dim);