Skip to content

Zero-length static array is null, unlike in dmd #831

Open
@SFrijters

Description

@SFrijters

LDC treats zero-length arrays differently from dmd:

void test(int[] data)
in { assert(data, "data must be non-null."); }
body { }

void main() {
import std.stdio;
int[1] data1;
writeln(data1); // [0]
test(data1); // Passes
int[0] data0;
writeln(data0); // []
test(data0); // Passes with dmd 2.066.1, asserts with ldc2 0.15.1
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions