Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Uoti Urpala <uoti.urpala@pp1.inet.fi>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH] lavfi: get rid of FF_INTERNAL_FIELDS
Date: Sat, 04 Feb 2023 13:09:36 +0200
Message-ID: <a5b3ea48cb7182df106ca374bc497a35f22ecfd5.camel@pp1.inet.fi> (raw)
In-Reply-To: <Y90eEgTfOCLQGVi2@phare.normalesup.org>

On Fri, 2023-02-03 at 15:45 +0100, Nicolas George wrote:
> Andreas Rheinhardt (12023-02-01):
> > "One special guarantee is made in order to simplify the use of unions:
> > if a union contains several structures that share a common initial
> > sequence (see below), and if the union object currently contains one of
> > these structures, it is permitted to inspect the common initial part of
> > any of them anywhere that a declaration of the completed type of the
> > union is visible. Two structures share a common initial sequence if
> > corresponding members have compatible types (and, for bit-fields, the
> > same widths) for a sequence of one or more initial members."
> > 
> > But there just is no union between the FF_INTERNAL_FIELDS
> > !defined(FF_INTERNAL_FIELDS) structures in the whole codebase.
> 
> It is not necessary that there is one: it is enough that there could be
> one in another compilation unit, the code that handles these structures
> does not know what exists in the rest of the code base. This guarantee
> was made FOR unions, but it does not REQUIRE unions, it applies to
> anything that is semantically equivalent to a union.

This is not valid reasoning. Consider code such as

int f(struct s1 *p1, struct s2 *p2) {
    p1->abc = 0;
    p2->abc = 42;
    return p1->abc;
}

where the field abc belongs to a shared initial sequence in s1 and s2.
If there is no common union visible when this code is compiled, it
seems valid for the compiler to hardcode this to return 0, even if it
may be called with p1 and p2 pointing to the same address. LTO may
generate the equivalent of this code when compiling a combination of
assignments and reads from files using different definitions for a
struct.

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2023-02-04 11:09 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-30 12:29 Anton Khirnov
2023-01-30 12:32 ` Paul B Mahol
2023-01-30 12:40 ` Nicolas George
2023-01-31 13:50   ` Anton Khirnov
2023-01-31 14:03     ` Nicolas George
2023-01-31 14:14       ` Paul B Mahol
2023-01-31 14:32         ` Nicolas George
2023-01-31 14:50           ` Paul B Mahol
2023-01-31 14:18       ` Anton Khirnov
2023-01-31 14:31         ` Nicolas George
2023-01-31 15:24           ` Anton Khirnov
2023-01-31 16:13             ` Nicolas George
2023-01-31 16:34               ` Nicolas George
2023-01-31 21:02                 ` Andreas Rheinhardt
2023-01-31 21:16                   ` Nicolas George
2023-02-01  0:31                     ` Andreas Rheinhardt
2023-02-01  7:47                       ` Nicolas George
2023-02-01 13:48                         ` Andreas Rheinhardt
2023-02-03 14:45                           ` Nicolas George
2023-02-04 11:09                             ` Uoti Urpala [this message]
2023-02-04 15:27                             ` Andreas Rheinhardt

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=a5b3ea48cb7182df106ca374bc497a35f22ecfd5.camel@pp1.inet.fi \
    --to=uoti.urpala@pp1.inet.fi \
    --cc=ffmpeg-devel@ffmpeg.org \
    /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

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git