Bug 6451 – [64bit] ICE(expression.c:4434): SymbolExp::SymbolExp(Loc, TOK, int, Declaration*, int): Assertion `var' failed.

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2011-08-07T12:08:00Z
Last change time
2015-06-09T05:11:45Z
Keywords
ice-on-invalid-code, patch
Assigned to
nobody
Creator
robert

Comments

Comment #0 by robert — 2011-08-07T12:08:53Z
The following code: ---- void error(...){} ---- Causes dmd 2.054 to ICE with the following errors: ---- Log.d(1): Error: '__va_argsave_t' is not defined, perhaps you need to import core.vararg; ? Log.d(1): Error: function Log.error must import core.vararg to use variadic functions dmd: expression.c:4434: SymbolExp::SymbolExp(Loc, TOK, int, Declaration*, int): Assertion `var' failed. Aborted ---- On linux x86_64.
Comment #1 by robert — 2011-08-07T12:09:56Z
Note that if you add the import as suggested by the error, the ICE goes away.
Comment #2 by clugdbug — 2012-01-27T23:56:12Z
Works on Windows 32 bit. I assume this is 64 bit only, where varargs are done differently.
Comment #3 by robert — 2012-01-28T03:09:08Z
Definitely a 64bit issue, works on OS X 32, not on OS X 64 (same assertion) using dmd 2.057.
Comment #4 by robert — 2012-01-29T05:15:11Z
Comment #5 by github-bugzilla — 2012-01-29T11:22:13Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/28c551f3c3675f5b2ade26fe23f513f73085c4a2 Fix bug 6451 - [64bit] ICE(expression.c:4434): SymbolExp::SymbolExp(Loc, TOK, int, Declaration*, int): Assertion `var' failed. https://github.com/D-Programming-Language/dmd/commit/425a97c9e9fa20985ed8767109aacc61517c017e Merge pull request #655 from mrmonday/bug6451 Fix bug 6451
Comment #6 by github-bugzilla — 2012-01-29T11:27:45Z