if (ELF_ST_TYPE(sym->st_info) == STT_REGISTER) 
if (ELF_ST_TYPE(sym->st_info) == STT_SPARC_REGISTER) 
handle_modversions(struct module *mod, struct elf_info *info,		   Elf_Sym *sym, const char *symname){	unsigned int crc;	switch (sym->st_shndx) {	case SHN_COMMON:		fprintf(stderr, "*** Warning: \"%s\" [%s] is COMMON symbol\n",			symname, mod->name);		break;	case SHN_ABS:		/* CRC'd symbol */		if (memcmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) {			crc = (unsigned int) sym->st_value;			add_exported_symbol(symname + strlen(CRC_PFX),					    mod, &crc);		}		break;	case SHN_UNDEF:		/* undefined symbol */		if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL &&		    ELF_ST_BIND(sym->st_info) != STB_WEAK)			break;		/* ignore global offset table */		if (strcmp(symname, "_GLOBAL_OFFSET_TABLE_") == 0)			break;		/* ignore __this_module, it will be resolved shortly */		if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)			break;#ifdef STT_REGISTER		if (info->hdr->e_machine == EM_SPARC ||		    info->hdr->e_machine == EM_SPARCV9) {			/* Ignore register directives. */			if (ELF_ST_TYPE(sym->st_info) == STT_REGISTER)				break;		}#endif				if (memcmp(symname, MODULE_SYMBOL_PREFIX,			   strlen(MODULE_SYMBOL_PREFIX)) == 0)			mod->unres = alloc_symbol(symname +						  strlen(MODULE_SYMBOL_PREFIX),						  ELF_ST_BIND(sym->st_info) == STB_WEAK,						  mod->unres);		break;	default:		/* All exported symbols */		if (memcmp(symname, KSYMTAB_PFX, strlen(KSYMTAB_PFX)) == 0) {			add_exported_symbol(symname + strlen(KSYMTAB_PFX),					    mod, NULL);		}		if (strcmp(symname, MODULE_SYMBOL_PREFIX "init_module") == 0)			mod->has_init = 1;		if (strcmp(symname, MODULE_SYMBOL_PREFIX "cleanup_module") == 0)			mod->has_cleanup = 1;		break;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8d5290149ee1c6a4cea5f5146d64e2a0d48f4988/modpost.c/buggy/scripts/mod/modpost.c