git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/13] more unused parameter cleanups

From
Jeff King <peff@peff.net>
Date
Mar 21, 2019, 09:44 UTC
Message-ID
<20190321094414.GA2894@sigill.intra.peff.net>
In-Reply-To
<87woksd322.fsf@evledraar.gmail.com>
On Thu, Mar 21, 2019 at 09:50:13AM +0100, Ævar Arnfjörð Bjarmason wrote:
Show 8 quoted lines
> LGTM from skimming it, FWIW this is now what we need to compile cleanly
> with -Wextra:
> 
>     make DEVELOPER=1 DEVOPTS="extra-all" CFLAGS="-Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare -Wno-empty-body" all
> 
> For some such as -Wempty-body we'd really need to contort ourselves to
> get it passing anywhere near cleanly (all of those have existing "/*
> this is intentional! */" comments).

I think we could probably define a NOOP_BODY macro or function and use that instead. But it may not be worth the trouble. I'd have to see how painful that would be, and whether it might find any cases that actually look like real bugs.

For -Wunused-parameter I am working towards being able to actually enable that everywhere. It is not _too_ bad to annotate the instances which must be there, and my digging with it has uncovered several real bugs. Right now I'm in the "drop useless parameters" phase, which I expect will take one or two more rounds.

Then I'll start on the "annotate unused ones we must keep" series, which culminates in actually flipping on the switch with DEVELOPER (or rather, stopping flipping it off).

You can see my progress on the jk/unused-4-mark branch of https://github.com/peff/git (I think the contents are good, but the commit messages and organization need some cleanup).

Show 5 quoted lines
> I wonder if for the rest of these it's worth re-picking up this old
> suggestions of yours about #pragma:
> https://public-inbox.org/git/20170126143252.ne533mcv3n2ksbai@sigill.intra.peff.net/
> 
> I.e. for us to define our own macro for these cases & use it.

The push/pop ones may be of use (which both clang and gcc seem to support), since that would let us localize the effects. I think in many cases there's usually a more readable solution, though (e.g., you'd want to annotate specific parameters as unused with single word, not a 3-line push-diag/declare-param/pop-diag mess).

-Peff
Previous: Ævar Arnfjörð Bjarmason
Message 19 of 19 in “more unused parameter cleanups”
  1. 0/13 more unused parameter cleanupsJeff King, Mar 20, 2019
  2. 01/13 revision: drop some unused "revs" parametersJeff King, Mar 20, 2019
  3. 02/13 log: drop unused rev_info from early outputJeff King, Mar 20, 2019
  4. 03/13 log: drop unused "len" from show_tagger()Jeff King, Mar 20, 2019
  5. 04/13 update-index: drop unused prefix_length parameter from do_reupdate()Jeff King, Mar 20, 2019
  6. 05/13 test-date: drop unused "now" parameter from parse_dates()Jeff King, Mar 20, 2019
  7. 06/13 unpack-trees: drop name_entry from traverse_by_cache_tree()Jeff King, Mar 20, 2019
  8. 07/13 unpack-trees: drop unused error_type parametersJeff King, Mar 20, 2019
  9. 08/13 report_path_error(): drop unused prefix parameterJeff King, Mar 20, 2019
  10. 09/13 fetch_pack(): drop unused parametersJeff King, Mar 20, 2019
  11. 10/13 parse-options: drop unused ctx parameter from show_gitcomp()Jeff King, Mar 20, 2019
  12. 11/13 pretty: drop unused "type" parameter in needs_rfc2047_encoding()Jeff King, Mar 20, 2019
  13. 12/13 pretty: drop unused strbuf from parse_padding_placeholder()Jeff King, Mar 20, 2019
  14. 13/13 parse_opt_ref_sorting: always use with NONEG flagJeff King, Mar 20, 2019
  15. Martin ÅgrenMar 20, 2019
  16. Jeff KingMar 20, 2019
  17. Junio C HamanoMar 20, 2019
  18. Ævar Arnfjörð BjarmasonMar 21, 2019
  19. Jeff KingMar 21, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.