Skip to content

Latest nightly compiler reports dead_code warnings for structs with private fields #3740

@asomers

Description

@asomers
Contributor

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

Activity

my4ng

my4ng commented on Jun 13, 2024

@my4ng
Contributor

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.

tgross35

tgross35 commented on Aug 29, 2024

@tgross35
Contributor

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

added a commit that references this issue on Jun 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @asomers@tgross35@my4ng

        Issue actions

          Latest nightly compiler reports dead_code warnings for structs with private fields · Issue #3740 · rust-lang/libc