dotnet/runtime · error

demo array size must be specified

Error message

demo array size must be specified

What it means

Printed by the vxsort simple_bench demo's main() at src/coreclr/gc/vxsort/standalone/simple_bench/demo.cpp:137 when argc != 2 — the array size argument was not supplied or extra arguments were given. The program then returns -1.

Source

Thrown at src/coreclr/gc/vxsort/standalone/simple_bench/demo.cpp:137

    introsort::sort(begin, end, vector_size);

    gettimeofday(&t1, 0);
    long elapsed = (t1.tv_sec - t0.tv_sec) * 1000000 + t1.tv_usec - t0.tv_usec;

    // Ensure sorted
    prev = START - (1 << SHIFT);
    for (auto & element : vtemp) {
        assert(element == prev + (1 << SHIFT));
        prev = element;
    }

    return elapsed;
}

int main(int argc, char** argv) {
    if (argc != 2) {
        fprintf(stderr, "demo array size must be specified\n");
        return -1;
    }

#if defined(TARGET_AMD64)
    InitSupportedInstructionSet(1 << (int)InstructionSet::AVX2);
#elif defined(TARGET_ARM64)
    InitSupportedInstructionSet(1 << (int)InstructionSet::NEON);
#endif

    const size_t vector_size = atoi(argv[1]);
    auto v = generate_random_garbage(vector_size);

    long elapsed;

    // Run once to ensure any global setup is done
    elapsed = demo_vxsort(&v, vector_size);
    elapsed = demo_insertsort(&v, vector_size);

View on GitHub (pinned to 60108ba66e)

Solutions

  1. Pass exactly one argument — the array size: `./demo 1000000`.
  2. Update wrapper scripts to pass a single integer.

Example fix

// before
./demo
// after
./demo 1000000
Defensive patterns

Strategy: validation

Validate before calling

if (argc != 2) {
    fprintf(stderr, "Usage: %s <array_size>\n", argv[0]);
    return -1;
}

Prevention

When it happens

Trigger: Running simple_bench with no argument or with more than one argument: `./demo` or `./demo 1000 extra`.

Common situations: Running the binary without reading usage; a wrapper script passing the wrong number of args.

Related errors


AI-assisted analysis of dotnet/runtime@60108ba66e (2026-08-10). Data as JSON: /api/errors/e8fa075e9ab3afeb. Report an issue: GitHub.