linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pavel Roskin <proski@gnu.org>
To: Kamil Dudka <kdudka@redhat.com>
Cc: Josh Triplett <josh@joshtriplett.org>,
	Christopher Li <sparse@chrisli.org>,
	linux-sparse@vger.kernel.org
Subject: Re: Sparse crash when mixing int and enum in ternary operator
Date: Wed, 10 Mar 2010 15:27:21 -0500	[thread overview]
Message-ID: <1268252841.20800.42.camel@mj> (raw)
In-Reply-To: <201003101705.36304.kdudka@redhat.com>

On Wed, 2010-03-10 at 17:05 +0100, Kamil Dudka wrote:
> On Wed March 10 2010 02:09:22 Pavel Roskin wrote:
> > I wonder is the quirk handling could be skipped for EXPR_SELECT, but I'm
> > fine with it if it's harmless.
> 
> That's more likely question for sparse developers.  I have no test-case which 
> goes through the EXPR_SELECT path, so that I can't test it actually.

It looks like EXPR_CONDITIONAL is replaces with EXPR_SELECT for some
expressions, which affects code generation.  It's the same thing in
terms of syntax.  So it's fine that both are handled together.

> > When would expr or type be NULL?
> 
> Also no test-case here, but it's still better to skip the optional analysis 
> than let it crash on invalid dereference.

That makes sense for certain kinds of software, where crash is too
costly, but in case of sparse, I'd rather see it crash than ignore a
condition that may indicate an error elsewhere (perhaps both in sparse
and in the code it checks).

I thing using assert() would be a better approach.  It's already used in
sparse.

I checked the whole kernel using assert in place of the NULL checks, and
there have been no crashes.

> > We could check type in warn_for_enum_conversions().
> 
> Sure, I've just improved it.  Thanks for the hint!  Also the order of that 
> patches has been reversed, so that they are less chatty.

Maybe you could add a test case for the first patch?  What warnings does
it remove?  What is "="?  Is it assignment or initialization or both?
How about comparisons?  A better description would be nice.

-- 
Regards,
Pavel Roskin

  reply	other threads:[~2010-03-10 20:27 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-09  1:24 Sparse crash when mixing int and enum in ternary operator Pavel Roskin
2010-03-09  5:43 ` Christopher Li
2010-03-09 13:46   ` Kamil Dudka
2010-03-09 18:26     ` Pavel Roskin
2010-03-09 18:35     ` Pavel Roskin
2010-03-09 19:06       ` Kamil Dudka
2010-03-09 19:15         ` Josh Triplett
2010-03-09 20:11           ` Pavel Roskin
2010-03-09 20:29             ` Kamil Dudka
2010-03-09 23:30               ` Kamil Dudka
2010-03-10  1:09                 ` Pavel Roskin
2010-03-10 16:05                   ` Kamil Dudka
2010-03-10 20:27                     ` Pavel Roskin [this message]
2010-03-10 20:44                       ` Kamil Dudka
2010-03-10 21:03                       ` Kamil Dudka
2010-03-10 21:56                     ` Christopher Li
2010-03-13 17:22                       ` Kamil Dudka
2010-03-21 15:27                         ` Kamil Dudka
2010-03-24 10:07                           ` Christopher Li
2010-03-24 10:51                             ` Kamil Dudka
2010-03-27  9:16                             ` Kamil Dudka
2010-03-27  9:29                               ` Josh Triplett
2010-03-27  9:53                                 ` [PATCH] eliminate insane conversions from int to enum Kamil Dudka
2010-03-29 18:11                                   ` Christopher Li
2010-03-29 18:05                                 ` Sparse crash when mixing int and enum in ternary operator Christopher Li
2010-03-29 18:17                                   ` Kamil Dudka
2010-03-29 18:48                                     ` Christopher Li
2010-03-29 19:23                                       ` Kamil Dudka
2010-03-30  5:29                                         ` Pavel Roskin
2010-03-29 21:26                                   ` Josh Triplett

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1268252841.20800.42.camel@mj \
    --to=proski@gnu.org \
    --cc=josh@joshtriplett.org \
    --cc=kdudka@redhat.com \
    --cc=linux-sparse@vger.kernel.org \
    --cc=sparse@chrisli.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).