Danh Doan <congdanhqx@xxxxxxxxx> writes: > On 2019-11-06 11:23:00 +0900, Junio C Hamano wrote: >> > @@ -1454,7 +1454,7 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx) >> > num_chunks); >> > ctx->progress = start_delayed_progress( >> > progress_title.buf, >> > - num_chunks * ctx->commits.nr); >> > + (uint64_t)num_chunks * ctx->commits.nr); >> >> Hmph, do we need this? I understand that the second parameter to >> the callee is u64, so the caller needs to come up with u64 without >> overflow, but doesn't that automatically get promoted? > > Neither num_chunks nor ctx->commits.nr is promoted because both of > them are int. The result of `num_chunks * ctx->commits.nr' will be int > and will be promoted to u64 to pass to caller. Ah, yes. Thanks. The commit title is about "integer multiplication", but can the same issue arise with addition and subtraction as well, by the way?