comp.lang.ada
 help / color / mirror / Atom feed
From: Dave Thompson <david.thompson1@worldnet.att.net>
Subject: Re: Type safety on wikipedia
Date: Mon, 06 Feb 2006 05:02:15 GMT
Date: 2006-02-06T05:02:15+00:00	[thread overview]
Message-ID: <fildu1p2q1glsq3kmmpaesumabg0p5gjc0@4ax.com> (raw)
In-Reply-To: 1138322309.525464.253320@z14g2000cwz.googlegroups.com

On 26 Jan 2006 16:38:29 -0800, "jimmaureenrogers@worldnet.att.net"
<jimmaureenrogers@worldnet.att.net> wrote:
<snip>
> The problem is one of attempting to dereference a null access object.
> The above program compiles without error.
> 
The actual problem is a dangling access (pointer) not a null one, as
already noted elsethread.

> When run, I get [CONSTRAINT_ERROR]...
> It appears that Ada's runtime checks detect an erroneous problem. ...

Yes, at least by default.

> In C, while it is an error to de-reference a null pointer, the runtime
> system
> does nothing to detect the problem. C programs continue with really
> nasty
> garbage values.
> 
Yes and no. The C standard leaves it up to the implementation.

On some (increasingly many) systems with virtual memory where it is
easy (enough) to leave page (or even segment) 0 unmapped, it will give
a clear error, usually even a recoverable signal (roughly like the
exception in Ada). On some (other) systems, (virtual) 0 is accessible
(and accessed) but is reserved and initialized with "useful" data,
such as 4 bytes of zero which in the most common read cases (as a
string, char, or int) gives a safe and possibly even useful result.

But you can't portably rely on, or enforce, this; and garbage is
certainly a possibility.


- David.Thompson1 at worldnet.att.net



  parent reply	other threads:[~2006-02-06  5:02 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-26  7:28 Type safety on wikipedia Martin Krischik
2006-01-26 11:58 ` Alex R. Mosteo
2006-01-26 17:10   ` Martin Krischik
2006-01-26 20:24   ` Simon Wright
2006-01-26 20:43     ` Simon Wright
2006-01-27  6:58       ` Martin Krischik
2006-01-26 23:43   ` Bobby D. Bryant
2006-01-27 11:14     ` Alex R. Mosteo
2006-01-27 11:57       ` Martin Krischik
2006-01-27 15:30         ` Larry Kilgallen
2006-01-27 19:04           ` Martin Krischik
2006-01-27 22:06             ` Larry Kilgallen
2006-01-28  7:04               ` Martin Krischik
2006-01-29 21:48               ` Florian Weimer
2006-01-27 12:43       ` Georg Bauhaus
2006-01-26 13:49 ` Rod Chapman
2006-01-26 17:05   ` Martin Krischik
2006-01-26 18:14   ` Martin Krischik
2006-01-26 13:53 ` jimmaureenrogers
2006-01-26 15:18   ` Alex R. Mosteo
2006-01-26 16:49     ` Martin Krischik
2006-01-26 18:19       ` Alex R. Mosteo
2006-01-26 20:38         ` Simon Wright
2006-01-27 11:13           ` Alex R. Mosteo
2006-01-27 19:38             ` Simon Wright
2006-01-27 23:24               ` Randy Brukardt
2006-01-28  6:53               ` Martin Krischik
2006-01-27 18:58           ` Martin Krischik
2006-01-27 19:50             ` Simon Wright
2006-01-28  6:52               ` Martin Krischik
2006-01-26 19:22     ` Dmitry A. Kazakov
2006-01-26 19:07   ` Florian Weimer
2006-01-27  0:38     ` jimmaureenrogers
2006-01-27 18:54       ` Martin Krischik
2006-01-28  1:48         ` Jan Andres
2006-01-28  6:44           ` Martin Krischik
2006-01-31  2:13           ` Randy Brukardt
2006-02-06  5:02       ` Dave Thompson [this message]
2006-02-06  8:29         ` Larry Kilgallen
2006-01-27 11:34     ` Alex R. Mosteo
2006-01-27 12:18       ` Martin Krischik
2006-01-27 15:27       ` Florian Weimer
replies disabled

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