Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #103365
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Error message for a dangling pointer |
| Date | 2017-02-07 16:24 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <o7coog$k0c$1@dont-email.me> (permalink) |
| References | <dangling-pointers-20170207022252@ram.dialup.fu-berlin.de> <ln1sva3gh8.fsf@kst-u.example.com> <o7cno2$fav$1@dont-email.me> |
On 07/02/17 16:07, BartC wrote:
> 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.
>
Testing with <https://gcc.godbolt.org/> I get that for gcc 5 onwards
(including 6.2 and 5.1), but not clang.
However, like many warnings you need to have optimisation enabled so
that gcc will do more analysis of the code.
Back to comp.lang.c | Previous | Next — Previous 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