Data dat;
dat.a = 1;
dat.b = “foobar”;
do_thing(&dat);
I seems like the compiler should be able to treat “dat” as an “maybe uninit” type until after “dat.b” gets assigned.