Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #103365

Re: Error message for a dangling pointer

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>

Show all headers | View raw


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


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