Page MenuHomePhabricator

Fix the behavior of clang's -w flag.

Authored by jyknight on Oct 12 2018, 8:41 AM.



It is intended to disable _all_ warnings, even those upgraded to
errors via -Werror=warningname or `#pragma clang diagnostic error'

Diff Detail


Event Timeline

jyknight created this revision.Oct 12 2018, 8:41 AM
rsmith accepted this revision.Jan 24 2019, 1:48 PM
rsmith marked an inline comment as done.
rsmith added inline comments.
460–463 ↗(On Diff #169413)

I think this would be clearer if phrased the other way around:

[...] disables all messages that are not Error/Fatal by default, and also any diagnostics that are Error/Fatal by default but that have been downgraded to Warning severity by any of the mechanisms available: -Wno-error or #pragma diagnostic

466 ↗(On Diff #169413)

I think this change will also cause -w to disable all remarks. Was that your intent?

This revision is now accepted and ready to land.Jan 24 2019, 1:48 PM
jyknight updated this revision to Diff 183966.Jan 28 2019, 2:56 PM
jyknight marked 2 inline comments as done.

Fix to not disable remarks, reword comment, adjust implementation-of-module.m test-case.

460–463 ↗(On Diff #169413)


466 ↗(On Diff #169413)

No, that seems like a bug.

Remarks have their own completely-separate set of command-line options; I don't think -R should interact with -w. I've added a conditional here, and a test case ensuring that.

This revision was automatically updated to reflect the committed changes.