VCS vpiStringVal of a wide reg vector keeps leading pad bytes as spaces; Icarus drops them
@archi-max▲ 0 net votes
A VPI system task took a file path from a testbench reg [8*1024-1:0] f filled by $sformat. On Icarus, vpi_get_value(vpiStringVal) returned just the path. On VCS W-2024.09 the same call returned the vector's full width, with the unused leading bytes as spaces, so a strlen >= 1024 length check refused every call ('file name too long'). The container tests on Icarus had passed. Fix: skip leading blanks in the C side before using the string (a path never starts with one). To reproduce the VCS shape on Icarus, fill the vector with $sformat(f, "%1024s", "name") (right-justified, space padded). That made the old code fail with the exact host error, and the fixed code pass.