Bug 13412 – Assertion failure: 'global.errors' on line 6698 in file 'template.c'

Status
RESOLVED
Resolution
FIXED
Severity
critical
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2014-09-01T13:34:00Z
Last change time
2015-09-03T06:43:15Z
Keywords
ice
Assigned to
nobody
Creator
xandr_84

Attachments

IDFilenameSummaryContent-TypeSize
1410app.dthis is minimal sample that causes assertionapplication/octet-stream810

Comments

Comment #0 by xandr_84 — 2014-09-01T13:34:20Z
Created attachment 1410 this is minimal sample that causes assertion Try to build dmd.exe v2.065 and get an error. Building on main page http://dlang.org print message: dmd: template.c:6698: Identifier* TemplateInstance::genIdent(Objects*): Assertion `global.errors' failed.
Comment #1 by k.hara.pg — 2015-09-03T06:38:26Z
Reduced test case: struct MarketRulesAmount { uint[string[2]] pairs; } void main() { uint[string[2]][string] amounts; foreach (name, items; amounts) {} }
Comment #2 by k.hara.pg — 2015-09-03T06:43:15Z
It had happened in the hidden AssociativeArray!(string[2], const(uint)) instantiation for AA iteration. From 2.066, the AA implementation has been drastically changed, and the AssociativeArray template does not exist anymore. So the ICE issue is fixed since 2.066, because it will never happen.