Don't use designated initializer for struct w/ const fields due to gcc.
clang allows it; gcc is probably in the wrong here. Instead of setting
the struct as a whole with a designated initializer, and keeping
const semantics, cast and mutate to set the const fields the first
time.