From: Christopher Li <sparse-55XgFHCVCFZAfugRpC6u6w@public.gmane.org>
To: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Matt Fleming
<matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Linux-Sparse
<linux-sparse-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"fengguang.wu"
<fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: Re: [efi:next 2/3] arch/x86/boot/compressed/eboot.c:26:16: sparse: incorrect type in return expression (different modifiers)
Date: Wed, 19 Nov 2014 00:09:37 +0800 [thread overview]
Message-ID: <CANeU7Q=tQOotWvG+LcrWBqgDYMANaB71Gr_nv15jS9_0EiUetg@mail.gmail.com> (raw)
In-Reply-To: <CAKv+Gu-c4qk-Snkc6Vs=LKwCnxVTMeBmgGjWT4qxapi-nTYX+w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Tue, Nov 18, 2014 at 12:24 AM, Ard Biesheuvel
<ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote:
>
> No, the test case looks correct now. You may want to add a conflicting
> definition, for completeness, as that is an important case for sparse
> to verify.
> So you could just add
>
> static void *pure1(void); // conflicting declaration
Just to confirm. If function declare as non pure then second time
declare as pure, that is a conflict error. That is very different from other
C attributes. C allow function declare attribute incrementally.
If what you said is true, then pure attribute is actually acting like a modifier
which don't fix not other non pure attribute.
> at the bottom, and ensure it is flagged by sparse as an error after
> you make your changes.
I am curios how does GCC behave on this incremental declare of pure
attribute. I just test it. GCC does not warn on the conflicting declare.
GCC seems warn on some thing shouldn't warn on the test case:
function "f2_ok" and "f5" shouldn't been warned. Strange.
validation/pure-function.c:14:1: warning: '__pure__' attribute ignored
[-Wattributes]
static __attribute__((__pure__)) void*(*f2_ok)(void) = pure1;
^
validation/pure-function.c:15:1: warning: '__pure__' attribute ignored
[-Wattributes]
static __attribute__((__pure__)) void*(*f3_error)(void) = non_pure1;
^
validation/pure-function.c:29:1: warning: '__pure__' attribute ignored
[-Wattributes]
static __attribute__((__pure__)) int(*f5)(void) = pure2;
^
validation/pure-function.c:30:1: warning: '__pure__' attribute ignored
[-Wattributes]
static __attribute__((__pure__)) int(*f6_error)(void) = non_pure2;
Chris
next prev parent reply other threads:[~2014-11-18 16:09 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201411120724.PdeIjimc%fengguang.wu@intel.com>
[not found] ` <201411120724.PdeIjimc%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-12 10:31 ` [efi:next 2/3] arch/x86/boot/compressed/eboot.c:26:16: sparse: incorrect type in return expression (different modifiers) Ard Biesheuvel
[not found] ` <1415799312.14686.332.camel@mfleming-mobl1.ger.corp.intel.com>
[not found] ` <1415799312.14686.332.camel-ZqTwcBeJ+wsBof6jY8KHXm7IUlhRatedral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-12 15:22 ` Christopher Li
[not found] ` <CANeU7Qn8J2dn4V5Mx1WzUM9q+m=K66yUuEkN39bH_djRoBzqNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-12 15:34 ` Ard Biesheuvel
[not found] ` <CAKv+Gu-L2EoqioZamh9arLSkXzQF4y=FDykk0YK1XvNkRGC-xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-16 10:13 ` Christopher Li
2014-11-16 17:58 ` Ard Biesheuvel
[not found] ` <CAKv+Gu8DB6tCrpTqiCSWDGU4cRO1u3hqO9-K-cON5ODDMgsx1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-17 0:38 ` Christopher Li
2014-11-17 15:35 ` Christopher Li
[not found] ` <CANeU7QkZKv+c1y-_9DsvV-EqKnmm+NjUEGxhZBqSF_5AJ+XT1g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-17 16:24 ` Ard Biesheuvel
[not found] ` <CAKv+Gu-c4qk-Snkc6Vs=LKwCnxVTMeBmgGjWT4qxapi-nTYX+w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-18 16:09 ` Christopher Li [this message]
2014-11-18 16:38 ` Ard Biesheuvel
[not found] ` <CAKv+Gu_2uwTdDT=7ghM6e2-=TpH652Q-JOOwF6oFsGFLxeKueg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-19 2:53 ` Christopher Li
[not found] ` <CANeU7Q=uCR6P41F72J0X6c2=fgU5eefPj1NrzfnoYRtCuzYxYg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-19 11:31 ` Ard Biesheuvel
2014-11-16 18:22 ` Josh Triplett
2014-11-17 0:59 ` Christopher Li
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='CANeU7Q=tQOotWvG+LcrWBqgDYMANaB71Gr_nv15jS9_0EiUetg@mail.gmail.com' \
--to=sparse-55xgfhcvcfzafugrpc6u6w@public.gmane.org \
--cc=ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sparse-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.