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

D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 6451 - [64bit] ICE(expression.c:4434): SymbolExp::SymbolExp(Loc, TOK, int, Declaration*, int): Assertion `var' failed.
Summary: [64bit] ICE(expression.c:4434): SymbolExp::SymbolExp(Loc, TOK, int, Declarati...
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D2
Hardware: x86_64 Linux
: P2 normal
Assignee: No Owner
URL:
Keywords: ice-on-invalid-code, patch
Depends on:
Blocks:
Reported: 2011年08月07日 12:08 UTC by Robert Clipsham
Modified: 2015年06月09日 05:11 UTC (History)
2 users (show)

See Also:


Attachments
Add an attachment (proposed patch, testcase, etc.)

Note You need to log in before you can comment on or make changes to this issue.
Description Robert Clipsham 2011年08月07日 12:08:53 UTC
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 Robert Clipsham 2011年08月07日 12:09:56 UTC
Note that if you add the import as suggested by the error, the ICE goes away.
Comment 2 Don 2012年01月27日 23:56:12 UTC
Works on Windows 32 bit. I assume this is 64 bit only, where varargs are done differently.
Comment 3 Robert Clipsham 2012年01月28日 03:09:08 UTC
Definitely a 64bit issue, works on OS X 32, not on OS X 64 (same assertion) using dmd 2.057.
Comment 4 Robert Clipsham 2012年01月29日 05:15:11 UTC
https://github.com/D-Programming-Language/dmd/pull/655 
Comment 5 github-bugzilla 2012年01月29日 11:22:13 UTC
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


AltStyle によって変換されたページ (->オリジナル) /