2003-07-31 05:27:18

by Dave Olien

[permalink] [raw]
Subject: [PATCH] sparse function pointer arguments now accept void pointers


This patch eliminates warnings of the form:

incorrect type in argument 1 (different base types)

from code of the form:

#define VPTR ((void *)1)

void f( int (g)(void))
{
}

int
main(void)
{
f(VPTR);
f(0);
}

--- sparse_original/evaluate.c 2003-07-29 14:13:09.000000000 -0700
+++ sparse_patch/evaluate.c 2003-07-30 18:14:25.000000000 -0700
@@ -647,7 +653,7 @@
t = t->ctype.base_type;
target_as |= t->ctype.as;
}
- if (t->type == SYM_PTR) {
+ if (t->type == SYM_PTR || t->type == SYM_FN) {
struct expression *right = *rp;
struct symbol *s = source;
int source_as;


2003-07-31 06:29:27

by Bernd Eckenfels

[permalink] [raw]
Subject: Re: [PATCH] sparse function pointer arguments now accept void pointers

In article <[email protected]> you wrote:
> This patch eliminates warnings of the form:
...
> - if (t->type == SYM_PTR) {
> + if (t->type == SYM_PTR || t->type == SYM_FN) {

unlikely

Greetings
Bernd
--
eckes privat - http://www.eckes.org/
Project Freefire - http://www.freefire.org/

2003-07-31 16:44:34

by Dave Olien

[permalink] [raw]
Subject: Re: [PATCH] sparse function pointer arguments now accept void pointers


Bernd,

I might have messed up here. But could you give a little more explanation,
to help me understand what you think is wrong with this and why?

Dave

On Thu, Jul 31, 2003 at 08:29:24AM +0200, Bernd Eckenfels wrote:
> In article <[email protected]> you wrote:
> > This patch eliminates warnings of the form:
> ...
> > - if (t->type == SYM_PTR) {
> > + if (t->type == SYM_PTR || t->type == SYM_FN) {
>
> unlikely
>
> Greetings
> Bernd
> --
> eckes privat - http://www.eckes.org/
> Project Freefire - http://www.freefire.org/
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/