Hi, Pavel Roskin <proski@xxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html