Bug 12464 – DMD/Phobos cannot auto-implement D variadic methods

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2014-03-25T07:29:00Z
Last change time
2014-04-24T15:16:55Z
Keywords
pull, rejects-valid
Assigned to
andrej.mitrovich
Creator
Marco.Leise

Comments

Comment #0 by Marco.Leise — 2014-03-25T07:29:58Z
Affects at least 2.064.2 and 2.065. This code: --------------------------- import std.stream; import std.typecons; BlackHole!OutputStream dout; --------------------------- fails on 2.064.2 with: --------------------------- /opt/dmd-2.064/import/std/typecons.d(2225): Error: '__va_argsave_t' is not defined, perhaps you need to import core.vararg; ? /opt/dmd-2.064/import/std/typecons.d(2225): Error: function std.typecons.AutoImplement!(OutputStream, generateEmptyFunction, isAbstractFunction).AutoImplement.printf must import core.vararg to use variadic functions /opt/dmd-2.064/import/std/typecons.d(2233): Error: '__va_argsave_t' is not defined, perhaps you need to import core.vararg; ? /opt/dmd-2.064/import/std/typecons.d(2233): Error: function std.typecons.AutoImplement!(OutputStream, generateEmptyFunction, isAbstractFunction).AutoImplement.writef must import core.vararg to use variadic functions /opt/dmd-2.064/import/std/typecons.d(2241): Error: '__va_argsave_t' is not defined, perhaps you need to import core.vararg; ? /opt/dmd-2.064/import/std/typecons.d(2241): Error: function std.typecons.AutoImplement!(OutputStream, generateEmptyFunction, isAbstractFunction).AutoImplement.writefln must import core.vararg to use variadic functions --------------------------- and on 2.065 with: --------------------------- /opt/dmd-2.065/import/std/typecons.d-mixin-2074(2258): Error: '__va_argsave_t' is not defined, perhaps you need to import core.vararg; ? /opt/dmd-2.065/import/std/typecons.d-mixin-2074(2258): Error: function std.typecons.AutoImplement!(OutputStream, generateEmptyFunction, isAbstractFunction).AutoImplement.printf must import core.vararg to use variadic functions /opt/dmd-2.065/import/std/typecons.d-mixin-2074(2266): Error: '__va_argsave_t' is not defined, perhaps you need to import core.vararg; ? /opt/dmd-2.065/import/std/typecons.d-mixin-2074(2266): Error: function std.typecons.AutoImplement!(OutputStream, generateEmptyFunction, isAbstractFunction).AutoImplement.writef must import core.vararg to use variadic functions /opt/dmd-2.065/import/std/typecons.d-mixin-2074(2274): Error: '__va_argsave_t' is not defined, perhaps you need to import core.vararg; ? /opt/dmd-2.065/import/std/typecons.d-mixin-2074(2274): Error: function std.typecons.AutoImplement!(OutputStream, generateEmptyFunction, isAbstractFunction).AutoImplement.writefln must import core.vararg to use variadic functions --------------------------- It compiles with GDC and LDC though.
Comment #1 by andrej.mitrovich — 2014-04-21T20:56:33Z
Works in git-head. Maybe fixed by a pull for another issue?
Comment #2 by github-bugzilla — 2014-04-24T15:16:55Z
Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/31f968ee53155429aa0485e991735917efcc4b82 Fix Issue 12464 - Inject imports to core.vararg on Posix when wrapping C-style variadic functions via AutoImplement. https://github.com/D-Programming-Language/phobos/commit/02884e61723ab55ab17d6f7f83c7c362728ff516 Merge pull request #2094 from AndrejMitrovic/Fix12464 Issue 12464 - Inject imports to core.vararg on Posix when wrapping C-style variadic functions via AutoImplement.