public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Daniel Berlin <dan@dberlin.org>
To: Robert Dewar <dewar@gnat.com>
Cc: kenner@vlsi1.ultra.nyu.edu, <gcc@gcc.gnu.org>
Subject: Re: g++ and aliasing bools
Date: Fri, 25 Jan 2002 08:11:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.44.0201251030510.31319-100000@dberlin.org> (raw)
In-Reply-To: <20020125150537.6A604F28D6@nile.gnat.com>

On Fri, 25 Jan 2002, Robert Dewar wrote:

> I agree with Richard, there are no undecidability problems here, we are
> talking about static proofs that two objects cannot be aliased.

You would be incorrect.
Type based aliasing says "we have some sets of types that we know alias each other, 
if you have one of these types, and we can tell you whether you may 
alias some other set of types".
The language semantics don't necessarily give you enough to be able to 
place all types in the right sets. If it doesn't, you are back to 
undecidability.
In the case of C++, they don't.
Given no C++ ABI restrictions, it's undecidable, because we don't know 
what pieces of vtables, etc, are shared. You cannot determine, based soley 
on what you find in the C++ standard, whether two types alias, for all 
cases.  Thus, you cannot determine properly, using only the C++ standard, 
the alias set a type necessarily belongs to.  Worse, using only the C++ 
standard, you might end up being just plain wrong, and saying two things 
alias that don't, or the other way around.  It's completely implementation 
dependent.
Nothing in the C++ language will let me prove whether or not two objects share a vtable or not.
The question is whether our C++ abi provides enough to enable us to build 
all the sets properly.
The whole issue is whether i'm going to write up a formal proof of whether 
we our C++ ABI lets us do it for some restricted subset, using C 
semantics.
I'm not going to write that up.
It's just too difficult to go about formally proving.

> Either we can prove that, or we assume that they are aliased. The issue of whether
> they are *really* aliased at run time is interesting, but irrelevant.

  reply	other threads:[~2002-01-25 15:38 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-25  7:38 Robert Dewar
2002-01-25  8:11 ` Daniel Berlin [this message]
2002-01-25 14:09   ` Gabriel Dos Reis
  -- strict thread matches above, loose matches on Subject: below --
2002-01-25 14:49 mike stump
2002-01-25 12:23 Robert Dewar
2002-01-25 13:29 ` Joe Buck
2002-01-25 12:06 mike stump
2002-01-25  9:13 Robert Dewar
2002-01-25  8:55 Robert Dewar
2002-01-25  9:21 ` Daniel Berlin
2002-01-25 10:00   ` Daniel Berlin
2002-01-25 10:54     ` Paolo Carlini
2002-01-25 11:37       ` Daniel Berlin
2002-01-25 11:45       ` David Edelsohn
2002-01-25 11:53         ` Joe Buck
2002-01-25 12:09           ` Mark Mitchell
2002-01-25 12:28             ` Paolo Carlini
2002-01-25 13:49               ` Mark Mitchell
2002-01-25 14:19                 ` Joe Buck
2002-01-25 14:21                   ` Mark Mitchell
2002-01-25 15:41                     ` Neil Booth
2002-01-25 16:04                       ` Joe Buck
2002-01-25 17:37                         ` Paolo Carlini
2002-01-25 18:10                         ` Daniel Berlin
2002-01-27  5:11                         ` Mark Mitchell
2002-01-27  5:34                           ` Daniel Berlin
2002-01-28 10:39                             ` Joe Buck
2002-01-28 10:51                               ` Joe Buck
2002-01-28 15:59                               ` Mark Mitchell
2002-01-28 17:11                                 ` Daniel Berlin
2002-01-28 17:28                                   ` Joe Buck
2002-01-28 18:14                                     ` Daniel Berlin
2002-01-28 17:18                                 ` Joe Buck
2002-01-28 18:05                                   ` Mark Mitchell
2002-01-28 18:50                                     ` Joe Buck
2002-01-28 19:33                                       ` Mark Mitchell
2002-01-28 17:40                                         ` Daniel Berlin
2002-01-28 21:55                                           ` Daniel Berlin
2002-01-28 22:02                                         ` Alexandre Oliva
2002-01-28 22:12                                           ` Mark Mitchell
2002-01-25 13:07             ` Joe Buck
2002-01-25 15:43               ` Daniel Berlin
2002-01-25 16:03                 ` Joe Buck
2002-01-25 15:13             ` Daniel Berlin
2002-01-25 12:10           ` Paolo Carlini
2002-01-25 13:16             ` Joe Buck
2002-01-25 15:23             ` Daniel Berlin
2002-01-25 12:05         ` Mark Mitchell
2002-01-25 22:14           ` Daniel Berlin
2002-01-26  3:46             ` Mark Mitchell
2002-01-25  8:35 Robert Dewar
2002-01-25  8:54 ` Daniel Berlin
2002-01-25  8:33 Richard Kenner
2002-01-25  8:32 Robert Dewar
2002-01-25  8:53 ` Daniel Berlin
2002-01-25  9:39 ` Joe Buck
2002-01-25  8:28 Robert Dewar
2002-01-25  8:49 ` Daniel Berlin
2002-01-25  7:51 Robert Dewar
2002-01-25  8:18 ` Daniel Berlin
2002-01-25  8:20   ` Daniel Berlin
2002-01-25  7:30 Richard Kenner
2002-01-25  7:33 ` Daniel Berlin
2002-01-25 15:43   ` Daniel Berlin
2002-01-25  7:30 Richard Kenner
2002-01-25  7:23 Richard Kenner
2002-01-25  7:24 ` Daniel Berlin
2002-01-25  7:05 Richard Kenner
2002-01-25  8:59 ` Paolo Carlini
2002-01-24 16:09 Richard Kenner
2002-01-24 15:30 Richard Kenner
2002-01-25  2:16 ` Gabriel Dos Reis
2002-01-25  3:04   ` Paolo Carlini
2002-01-25  4:17     ` Gabriel Dos Reis
2002-01-25  4:35       ` Paolo Carlini
2002-01-25  6:34         ` Daniel Berlin
2002-01-25  7:17   ` Daniel Berlin
2002-01-25 13:57     ` Gabriel Dos Reis
2002-01-25 14:47       ` Tim Hollebeek
2002-01-23 17:56 Dan Nicolaescu
2002-01-23 18:27 ` Daniel Berlin
2002-01-23 18:48   ` Dan Nicolaescu
2002-01-23 19:16     ` Daniel Berlin
2002-01-24 14:15     ` Mark Mitchell
2002-01-24 14:16       ` Daniel Berlin
2002-01-24 14:27         ` Mark Mitchell
2002-01-24 14:35           ` Daniel Berlin
2002-01-24 15:06             ` Mark Mitchell
2002-01-24 15:08             ` Paolo Carlini
2002-01-24 15:18       ` Dan Nicolaescu
2002-01-24 15:36         ` Mark Mitchell
2002-01-25  2:25           ` Daniel Berlin
2002-01-25 15:48           ` Dan Nicolaescu
2002-01-25 20:22             ` Joe Buck
2002-01-25 23:59               ` Daniel Berlin
2002-01-27 17:04               ` Dan Nicolaescu
2002-01-27 17:59                 ` Paolo Carlini

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=Pine.LNX.4.44.0201251030510.31319-100000@dberlin.org \
    --to=dan@dberlin.org \
    --cc=dewar@gnat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=kenner@vlsi1.ultra.nyu.edu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).