git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Fix some sparse warnings

From
Philip Oakley <philipoakley@iee.org>
Date
Jul 16, 2013, 20:53 UTC
Message-ID
<6BDA2E3E7318418BBB2C19B475B2B118@PhilipOakley>
In-Reply-To
<20130716062122.GA4964@sigill.intra.peff.net>
From: "Jeff King" <peff@peff.net>
Sent: Tuesday, July 16, 2013 7:21 AM
Show 31 quoted lines
> On Tue, Jul 16, 2013 at 07:57:20AM +0200, Johannes Sixt wrote:
>
>> Am 7/15/2013 19:31, schrieb Ramsay Jones:
>> > Sparse issues three "Using plain integer as NULL pointer" warnings.
>> > Each warning relates to the use of an '{0}' initialiser expression
>> > in the declaration of an 'struct object_info'.
>>
>> I question the value of this warning. Initialization with '= {0}' is
>> a
>> well-established idiom, and sparse should know about it. Also, plain
>> 0
>> *is* a null pointer constant.
>
> I agree with you. It's not a bug, and I think sparse is being overly
> picky here; it is missing the forest for the trees in interpreting the
> idiom.
>
> Still, it may be worth tweaking in the name of eliminating compiler
> noise, since it does not cost us very much to do so (and I believe we
> have done so in the past, too).
>
> We could also ask people with sparse to turn off the "use NULL instead
> of 0" warning, but I think it _is_ a useful warning elsewhere (even
> though it is never a bug, it violates our style guidelines and may be
> an
> indication of a bug). It would be nice if sparse learned to ignore the
> warning in this particular idiom, but I am not going to hold my breath
> for that.
>
> -Peff
> --

On the subject of warnings and null pointers, yesterday's Code Project news linked to a blog on the problems of unexpected optimization bugs, such as dereferencing a null pointer. "Finding Undefined Behavior Bugs by Finding Dead Code" http://blog.regehr.org/archives/970 which links to the draft of an interesting paper [http://pdos.csail.mit.edu/~xi/papers/stack-sosp13.pdf]

Does anyone run the "new static checker called 'Stack' that precisely identifies unstable code"? [though the paper's conclusion says 'All Stack source code will be publicly available.' which suggests it's not yet available]

Or use the ‘-fno-delete-null-pointer-checks’ referred to in the blog comments (see also index : kernel/git/torvalds/linux.git "Add '-fno-delete-null-pointer-checks' to gcc CFLAGS" https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a3ca86aea507904148870946d599e07a340b39bf

You're probably already aware of these aspects but I thought it worth mentioning for the wider readership.

regards
Philip
Previous: Jeff KingNext: Stefan Beller
Message 4 of 12 in “Fix some sparse warnings”
  1. Fix some sparse warningsRamsay Jones, Jul 15, 2013
  2. Johannes SixtJul 16, 2013
  3. Jeff KingJul 16, 2013
  4. Philip OakleyJul 16, 2013
  5. Stefan BellerJul 16, 2013
  6. Philip OakleyJul 16, 2013
  7. Johannes SixtJul 17, 2013
  8. Stefan BellerJul 17, 2013
  9. parse_object_buffer: Correct freeing the buffer.Stefan Beller, Jul 17, 2013
  10. Stefan BellerJul 17, 2013
  11. Junio C HamanoJul 17, 2013
  12. Ramsay JonesJul 18, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.