{"record":{"id":"e8fa075e9ab3afeb","repo":"dotnet/runtime","slug":"demo-array-size-must-be-specified-e8fa07","errorCode":null,"errorMessage":"demo array size must be specified\n","messagePattern":"demo array size must be specified\n","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/coreclr/gc/vxsort/standalone/simple_bench/demo.cpp","lineNumber":137,"sourceCode":"\n    introsort::sort(begin, end, vector_size);\n\n    gettimeofday(&t1, 0);\n    long elapsed = (t1.tv_sec - t0.tv_sec) * 1000000 + t1.tv_usec - t0.tv_usec;\n\n    // Ensure sorted\n    prev = START - (1 << SHIFT);\n    for (auto & element : vtemp) {\n        assert(element == prev + (1 << SHIFT));\n        prev = element;\n    }\n\n    return elapsed;\n}\n\nint main(int argc, char** argv) {\n    if (argc != 2) {\n        fprintf(stderr, \"demo array size must be specified\\n\");\n        return -1;\n    }\n\n#if defined(TARGET_AMD64)\n    InitSupportedInstructionSet(1 << (int)InstructionSet::AVX2);\n#elif defined(TARGET_ARM64)\n    InitSupportedInstructionSet(1 << (int)InstructionSet::NEON);\n#endif\n\n    const size_t vector_size = atoi(argv[1]);\n    auto v = generate_random_garbage(vector_size);\n\n    long elapsed;\n\n    // Run once to ensure any global setup is done\n    elapsed = demo_vxsort(&v, vector_size);\n    elapsed = demo_insertsort(&v, vector_size);\n","sourceCodeStart":119,"sourceCodeEnd":155,"githubUrl":"https://github.com/dotnet/runtime/blob/60108ba66eb7d1d12f595480091b4ad80a24b172/src/coreclr/gc/vxsort/standalone/simple_bench/demo.cpp#L119-L155","documentation":"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.","triggerScenarios":"Running simple_bench with no argument or with more than one argument: `./demo` or `./demo 1000 extra`.","commonSituations":"Running the binary without reading usage; a wrapper script passing the wrong number of args.","solutions":["Pass exactly one argument — the array size: `./demo 1000000`.","Update wrapper scripts to pass a single integer."],"exampleFix":"// before\n./demo\n// after\n./demo 1000000","handlingStrategy":"validation","validationCode":"if (argc != 2) {\n    fprintf(stderr, \"Usage: %s <array_size>\\n\", argv[0]);\n    return -1;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check argc before dereferencing argv[1].","Print a usage line naming the program (argv[0]) on misuse."],"tags":["dotnet","coreclr","vxsort","cpp","cli-args"],"backgroundTag":null,"analyzedSha":"60108ba66eb7d1d12f595480091b4ad80a24b172","analyzedAt":"2026-08-10T18:54:11.478Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}