https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100999
Bug ID: 100999
Summary: d: foreach over a tuple doesn't work on 16-bit targets
Product: gcc
Version: 10.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: d
Assignee: ibuclaw at gdcproject dot org
Reporter: ibuclaw at gdcproject dot org
Target Milestone: ---
There is an error if the index type isn't an int or long type. This triggers
on 16-bit targets where the index would be size_t for looping over an array.
---
alias AliasSeq(TList...) = TList;
alias size_t = ushort;
void foo(int a, int b, int c)
{
// OK
foreach (size_t i, e; [0, 1, 2, 3]) { }
// Errors
static foreach (size_t i, e; [0, 1, 2, 3]) { }
foreach (size_t i, e; AliasSeq!(0, 1, 2, 3)) { }
static foreach (size_t i, e; AliasSeq!(0, 1, 2, 3)) { }
}