comp.lang.ada
 help / color / mirror / Atom feed
From: Ole-Hjalmar Kristensen <oleh@vlinux.voxelvision.no>
Subject: Re: Ada's Slide To Oblivion ...
Date: Fri, 08 Feb 2002 12:23:48 GMT
Date: 2002-02-08T12:23:48+00:00	[thread overview]
Message-ID: <7vlme4w4ax.fsf@vlinux.voxelvision.no> (raw)
In-Reply-To: 3C63AB8A.F52337D8@cfmu.eurocontrol.be

Ian Wild <ian@cfmu.eurocontrol.be> writes:

> David Brown wrote:
> > 
> > Hyman Rosen <hyrosen@mail.com> wrote:
> > > Ray Blaak wrote:
> > >> You most certainly can:
> > >>        typedef void (*FUNC)();
> > >>        int i = 0;
> > >>        FUNC f = (FUNC) &i;
> > >>
> > >> That this crashes with access violations on a sane OS is a good thing, but
> > >> nothing in the language is preventing the code/data conversions.
> > >
> > > False. The typecast '(FUNC)&i' is not legal standard C or C++.
> > > It's not even a case of undefined results - it's just illegal.
> > > Some compilers permit it as an extension, though.
> > 
> > Legality aside, I have yet to find a compiler that doesn't accept this.
> 
> I'll agree that most compilers will accept it, but it's not
> C and quite often doesn't do what you're expecting.
> 
> > In fact, I have code that does this very thing, it creates a small
> > amount of data that happens to be instructions, casts it to a function
> > pointer and calls it.
> 
> On, say, a high end PDP-11, or a 68000, or an 8086 (but not its
> progeny!), code space and data space are physically separate.  There
> are wires that come out of the processor to say which space to use.  On
> such a system there's NO WAY to write to code space, and it's not
> impossible that

??? This is pure fantasy. How do you think the code got into the code
space in the first place? 


> 
>   static int x [500];
>   int main () {
>     if ((void*)&main == (void*)&x)
>        printf ("Yes\n");
>     return 0;
>   }
> 
> will print "Yes".  You can fill your array x with
> all manner of carefully chosen data, but any attempt
> to call it will jump to the corresponding address
> in /code space/, which here will re-start the program.



  reply	other threads:[~2002-02-08 12:23 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-30 23:09 Ada's Slide To Oblivion Volkert
2002-01-30 23:57 ` Marin David Condic
2002-01-31  3:04   ` Richard Riehle
2002-01-31  3:05     ` Eric Merritt
2002-01-31 16:26       ` Richard Riehle
2002-01-31 16:41         ` Larry Kilgallen
2002-02-02 15:51           ` Zach Swanson
2002-02-02 19:18             ` Richard Riehle
2002-02-04  4:43         ` Richard Riehle
2002-01-31 14:37     ` Marin David Condic
2002-01-31 15:14   ` Ted Dennison
2002-01-31 17:16     ` Marin David Condic
2002-01-31 18:32       ` Steve O'Neill
2002-01-31 18:27     ` Warren W. Gay VE3WWG
2002-01-31 19:22       ` Marin David Condic
2002-01-31 20:40       ` Christopher A. Bohn
2002-01-31 21:08         ` Marin David Condic
2002-02-01 14:22           ` [off-topic - to lighten the air] Wes Groleau
2002-02-01  2:31         ` Ada's Slide To Oblivion Richard Riehle
2002-02-04 16:51           ` Jerry Petrey
2002-02-04 17:49             ` Richard Riehle
2002-02-04 18:24               ` Marin David Condic
2002-02-05  9:04                 ` DPH
2002-02-05 14:46                   ` Marin David Condic
2002-02-05 16:37                 ` Wes Groleau
2002-02-05 17:22                   ` Marin David Condic
2002-02-05 18:42                   ` Preben Randhol
2002-02-06 21:37                     ` Warren W. Gay VE3WWG
2002-02-07 11:30                       ` Georg Bauhaus
2002-02-05 13:48               ` Georg Bauhaus
2002-02-06  7:07             ` Anders Wirzenius
2002-02-01  2:26       ` Richard Riehle
2002-02-01 14:27         ` A. Nonny Mouse
2002-02-01 17:18         ` Dale Pontius
2002-02-06  2:37           ` Nick Roberts
2002-02-06  7:31             ` Ole-Hjalmar Kristensen
2002-02-06 21:27               ` Nick Roberts
2002-02-06 22:03                 ` Ian S. Nelson
2002-02-07  1:44                 ` Philip Cummins
2002-02-07 13:56                 ` Ian Wild
2002-02-07 17:25                   ` Ray Blaak
2002-02-07 19:20                     ` Hyman Rosen
2002-02-07 21:36                       ` David Brown
2002-02-08 10:36                         ` Ian Wild
2002-02-08 12:23                           ` Ole-Hjalmar Kristensen [this message]
2002-02-08 12:51                             ` Ian Wild
2002-02-08 14:28                               ` Marin David Condic
2002-02-08 15:52                               ` Ole-Hjalmar Kristensen
2002-02-08 13:08                             ` Nick Roberts
2002-02-08 21:28                               ` Matthew Woodcraft
2002-02-08 21:45                               ` Nick Roberts
2002-02-08 22:44                                 ` Darren New
2002-02-09  0:39                           ` David Brown
2002-02-18  3:54                 ` David Thompson
2002-02-06 14:59             ` Ian S. Nelson
2002-01-31 18:28     ` Warren W. Gay VE3WWG
2002-01-31  2:37 ` Jim Rogers
2002-01-31 15:02   ` Marin David Condic
2002-01-31 18:28     ` Steve O'Neill
2002-01-31 19:41       ` Larry Kilgallen
2002-01-31 19:53         ` martin.m.dowie
2002-01-31 20:06         ` Marin David Condic
2002-01-31 21:06         ` Steve O'Neill
2002-01-31 22:28           ` Marin David Condic
2002-01-31 19:42       ` Marin David Condic
2002-01-31 18:41     ` Warren W. Gay VE3WWG
2002-01-31 19:52       ` Marin David Condic
2002-02-01 18:31         ` Warren W. Gay VE3WWG
2002-02-01 12:28     ` David Gillon
2002-02-01 21:02       ` Marin David Condic
2002-02-02  4:05         ` Adrian Hoe
2002-02-02 12:51           ` Jeffrey Creem
2002-02-04 15:58           ` Marin David Condic
2002-02-02  4:02       ` Adrian Hoe
2002-02-02 17:35         ` tmoran
2002-02-01  1:42 ` Randy Brukardt
2002-02-01 16:56   ` Nick Roberts
  -- strict thread matches above, loose matches on Subject: below --
2002-02-06  7:02 Christoph Grein
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox