[PATCH] rewrite type_difference()
commit2d709c36c9d0598fbd4ea39f6153a35162115994
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 10 Jul 2007 21:54:27 +0000 (10 17:54 -0400)
committerJosh Triplett <josh@freedesktop.org>
Sat, 14 Jul 2007 19:16:53 +0000 (14 12:16 -0700)
treefe7e14c42ad8b08ce92e6a0d5013796162148307
parentd8a87b633cf12650272f964e855ef8e2605b34de
[PATCH] rewrite type_difference()

a) qualifiers should not be ignored beyond the top layer
b) qualifiers *should* be ignored in top layer of function arguments
c) change prototype - pass ctype * instead of symbol * and pass
"what to add to modifiers in that ctype" instead of "what to ignore".

We are still not quite done (there are incomplete types, there
are array size comparisons, there is lifting of signedness logics
into compatible_assignment_types()), but it's a much better approximation.

BTW, it's already good enough for kernel ARRAY_SIZE(), which
has become a major source of noise lately...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
[Josh: prototype fix]
Signed-off-by: Josh Triplett <josh@freedesktop.org>
evaluate.c
expand.c
symbol.h