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

Re: [PATCH v3] builtin/revert.c: refactor using an enum for cmd-action

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 12, 2024, 00:40 UTC
Message-ID
<xmqqttnjcrk6.fsf@gitster.g>
In-Reply-To
<20240111200627.64199-1-mi.al.lohmann@gmail.com>
Michael Lohmann <mi.al.lohmann@gmail.com> writes:
Show 14 quoted lines
> -	if (cmd == 'c')
> +	case ACTION_CONTINUE:
>  		return sequencer_continue(the_repository, opts);
> -	if (cmd == 'a')
> +	case ACTION_ABORT:
>  		return sequencer_rollback(the_repository, opts);
> -	if (cmd == 's')
> +	case ACTION_SKIP:
>  		return sequencer_skip(the_repository, opts);
> -	return sequencer_pick_revisions(the_repository, opts);
> +	case ACTION_START:
> +		return sequencer_pick_revisions(the_repository, opts);
> +	}
>  }
This change broke the build when merged to 'seen' like so ...
builtin/revert.c: In function 'run_sequencer':
builtin/revert.c:242:1: error: control reaches end of non-void function [-Werror=return-typ ]
  242 | }
      | ^
 
... so I'm discarding
it out of my tree and redoing today's integration cycle.

Different compilers are smart in different ways, and we shouldn't overly rely on the fact that some compilers may be happy by seeing a switch that has all the enum values and notice that one of the return will be triggered in its case arms.

Previous: Junio C HamanoNext: Jeff King
Message 7 of 11 in “builtin/revert.c: refactor using an enum for cmd-action”
  1. builtin/revert.c: refactor using an enum for cmd-actionMichael Lohmann, Jan 11, 2024
  2. Phillip WoodJan 11, 2024
  3. builtin/revert.c: refactor using an enum for cmd-actionMichael Lohmann, Jan 11, 2024
  4. Junio C HamanoJan 11, 2024
  5. builtin/revert.c: refactor using an enum for cmd-actionMichael Lohmann, Jan 11, 2024
  6. Junio C HamanoJan 11, 2024
  7. Junio C HamanoJan 12, 2024
  8. Jeff KingJan 12, 2024
  9. Junio C HamanoJan 12, 2024
  10. Michael LohmannJan 12, 2024
  11. Junio C HamanoJan 11, 2024

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.