Hi,
Pavel Roskin <[EMAIL PROTECTED]> schrieb am 13.06.2007 07:22:02:
> Hello Thomas,
>
> On Mon, 2007-06-11 at 13:59 +0200, Thomas Schmid wrote:
> > Following code
> >
> > typedef unsigned char plcbit;
> > typedef unsigned char USINT;
> >
> > USINT usVar1;
> >
> > leads to a symbol "usVar1" with base_type->ident named "plcbit".
> > Is this behaviour expected?
>
> What happens is the base types like uchar_ctype, which are supposed to
> be initialized once and never changed again, are actually initialized by
> the first typedef, so they are sort of "imprinted" with the new name.
> And the code is:
>
> if (is_typedef) {
> if (base_type && !base_type->ident)
> base_type->ident = ident;
> } else if (base_type && base_type->type == SYM_FN) {
>
If I get it right, every typedef pointing to a base type should lead into
a new base type to get its right ident?
> I don't know what base_type->ident needs to be updated at all. At least
> SYM_BASETYPE should be exempt from this retroactive update.
Any idea how to fix this?
Best regards,
Thomas Schmid
-
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html