D.gnu - [Issue 1683] New: Issue with variadic functions
- d-bugmail puremagic.com (49/49) Nov 21 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1683
- d-bugmail puremagic.com (10/10) Nov 21 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1683
- d-bugmail puremagic.com (9/9) Nov 22 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1683
http://d.puremagic.com/issues/show_bug.cgi?id=1683 Summary: Issue with variadic functions Product: DGCC aka GDC Version: 0.24 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: glue layer AssignedTo: dvdfrdmn users.sf.net ReportedBy: mariusmuja gmail.com GDC fails to compile the following code: -------------- import std.stdio; void test(TypeInfo[] arguments, void* argptr) { writefln("test(TypeInfo[] arguments, void* argptr)"); } void test(...) { writefln("test(..)"); } void test2(...) { test(_arguments, _argptr); } void main() { test2(1,2,3); } -------------- with the error message: -------------- test_args.d:15: function test_args.test called with argument types: (TypeInfo[],char*) matches both: test_args.test(TypeInfo[],void*) and: test_args.test(...) ---------------- With DMD the above code compiles and the test_args.test(TypeInfo[],void*) function is called. This issue prevents the usage under GDC of several functions from the tango library, such as: Layout(T).sprint (T[] result, T[] formatStr, ...) and Layout(T).sprint (T[] result, T[] formatStr, TypeInfo[] arguments, ArgList args) --
Nov 21 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1683 It works OK if you use the portable version of varargs: import std.stdio; import std.stdarg; void test(TypeInfo[] arguments, va_list argptr) { writefln("test(TypeInfo[] arguments, va_list argptr)"); } --
Nov 21 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1683 mariusmuja gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID Yes, it does. --
Nov 22 2007