All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "René Scharfe" <l.s.r@web.de>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH v2 2/4] do full type check in BARF_UNLESS_COPYABLE
Date: Sun, 08 Jan 2023 16:28:48 +0900	[thread overview]
Message-ID: <xmqqy1qdxz67.fsf@gitster.g> (raw)
In-Reply-To: <4f161041-b299-f79a-e01b-cc00e2880850@web.de> ("René Scharfe"'s message of "Sun, 1 Jan 2023 22:11:20 +0100")

René Scharfe <l.s.r@web.de> writes:

> Use __builtin_types_compatible_p to perform a full type check if
> possible.  Otherwise fall back to the old size comparison, but add a
> non-evaluated assignment to catch more type mismatches.  It doesn't flag
> copies between arrays with different signedness, but that's as close to
> a full type check as it gets without the builtin, as far as I can see.

This seems to unfortunately break builds for compat/mingw.c

cf. https://github.com/git/git/actions/runs/3865788736/jobs/6589504628#step:4:374

   1848 |                 COPY_ARRAY(&argv2[1], &argv[1], argc);

where the two arrays are "char *const *argv" in the parameter list, and
a local variable

#ifndef _MSC_VER
		const
#endif
		char **argv2;

It seems that (const char **) and (char **) are compatible but the
pointers themselves being const breaks the type compatibility?
Perhaps the latter should be "(optionally const) char *const *argv2"?


  reply	other threads:[~2023-01-08  7:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-30 21:51 [PATCH 0/3] COPY_ARRAY, MOVE_ARRAY, DUP_ARRAY René Scharfe
2022-12-30 21:56 ` [PATCH 1/3] do full type check in COPY_ARRAY and MOVE_ARRAY René Scharfe
2023-01-01  3:03   ` Junio C Hamano
2023-01-01  3:59     ` Junio C Hamano
2023-01-01  7:41       ` René Scharfe
2023-01-01 10:45         ` René Scharfe
2023-01-01 12:11           ` Junio C Hamano
2023-01-01 12:32             ` René Scharfe
2023-01-01 12:46               ` Junio C Hamano
2022-12-30 22:02 ` [PATCH 2/3] add DUP_ARRAY René Scharfe
2022-12-30 22:03 ` [PATCH 3/3] use DUP_ARRAY René Scharfe
2023-01-01 21:05 ` [PATCH v2 0/4] COPY_ARRAY, MOVE_ARRAY, DUP_ARRAY René Scharfe
2023-01-01 21:08   ` [PATCH v2 1/4] factor out BARF_UNLESS_COPYABLE René Scharfe
2023-01-01 21:11   ` [PATCH v2 2/4] do full type check in BARF_UNLESS_COPYABLE René Scharfe
2023-01-08  7:28     ` Junio C Hamano [this message]
2023-01-08 10:10       ` René Scharfe
2023-01-09  4:27         ` Junio C Hamano
2023-01-09 18:08           ` Jeff Hostetler
2023-01-01 21:14   ` [PATCH v2 3/4] add DUP_ARRAY René Scharfe
2023-01-01 21:16   ` [PATCH v2 4/4] use DUP_ARRAY René Scharfe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqy1qdxz67.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=l.s.r@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.