rust-lang/libc

Latest nightly compiler reports dead_code warnings for structs with private fields

asomers opened this issue · 2 comments

Sometime in the last week the rustc nightly compiler got more aggressive about reporting dead_code warnings. It now warns whenever a struct contains a private field but no constructor. That catches many structs in libc, which are intended to be initialized with std::mem::zeroed(). IMHO this is a rustc bug. This ought to be a separate lint so it can be silenced without silencing all dead_code warnings.

Here's an example build failure:
https://cirrus-ci.com/task/6392171014651904?logs=test#L17

I don't think the change is going to get reverted or changed IMO. One workaround would be to add allow(dead_code) to all affected structs, but that can easily hide potential problems. Another is to change all the private fields to public, and I think this was the suggestion in the upstream issue.

With rust-lang/rust#128404, I think this has been resolved.