Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #103360
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | BartC <bc@freeuk.com> |
| Newsgroups | comp.lang.c |
| Subject | Re: Error message for a dangling pointer |
| Date | Tue, 7 Feb 2017 15:07:23 +0000 |
| Organization | A noiseless patient Spider |
| Lines | 46 |
| Message-ID | <o7cno2$fav$1@dont-email.me> (permalink) |
| References | <dangling-pointers-20170207022252@ram.dialup.fu-berlin.de> <ln1sva3gh8.fsf@kst-u.example.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 8bit |
| Injection-Date | Tue, 7 Feb 2017 15:05:38 -0000 (UTC) |
| Injection-Info | mx02.eternal-september.org; posting-host="80dff8dbed11b5e5226231c8dfc6b880"; logging-data="15711"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1++E++la6uLMr0y5T3yv356" |
| User-Agent | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
| In-Reply-To | <ln1sva3gh8.fsf@kst-u.example.com> |
| Cancel-Lock | sha1:ch4dre8pwwmHkNJhyWM9Lb5eBM4= |
| Xref | csiph.com comp.lang.c:103360 |
Show key headers only | View raw
On 07/02/2017 02:02, Keith Thompson wrote:
> ram@zedat.fu-berlin.de (Stefan Ram) writes:
>> For teaching purposes, I just wrote this program to show
>> dangling pointers:
>>
>> #include <stdio.h>
>> int main( void )
>> { int * p;
>> { int i = 27; p = &i; }
>> printf( "%d\n", *p ); }
>
> (A side note: Your students might later have difficulties with more, um,
> conventional C code layouts.)
>
>> I hope you all agree that »p« in the last line /is/
>> a dangling pointer.
>
> Yes.
>
>> The error message and output is not what I expected,
>> but still interesting:
>>
>> main.c: In function 'main':
>> main.c:6:3: warning: 'i' is used uninitialized in this function [-Wuninitialized]
>> printf( "%d\n", *p ); }
>> ^
>> main.c:5:9: note: 'i' was declared here
>> { int i = 27; p = &i; }
>> ^
>> 0
>>
>> »i« /was/ initialized in the program,
>> so the error message is not accurate.
>>
>> (I do not write »misleading«, since it is so
>> obviously wrong that it won't mislead anyone.)
>
> I get that message with gcc 6.3.0, and with a gcc snapshot from
> 2017-01-12 that claims to be gcc 7.0.0, but not with gcc 6.2.0
> (or with clang).
I couldn't get any diagnostic with any compiler. That included gcc 5.1.x
and 6.2.x with all warnings turned on.
--
bartc
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Error message for a dangling pointer Keith Thompson <kst-u@mib.org> - 2017-02-06 18:02 -0800
Re: Error message for a dangling pointer BartC <bc@freeuk.com> - 2017-02-07 15:07 +0000
Re: Error message for a dangling pointer David Brown <david.brown@hesbynett.no> - 2017-02-07 16:24 +0100
csiph-web