if (!sym_string_valid(sym, prop->expr->left.sym->name) || !sym_string_valid(sym, prop->expr->right.sym->name)) 
if (!menu_range_valid_sym(sym, prop->expr->left.sym) || !menu_range_valid_sym(sym, prop->expr->right.sym)) 
void sym_check_prop(struct symbol *sym){	struct property *prop;	struct symbol *sym2;	for (prop = sym->prop; prop; prop = prop->next) {		switch (prop->type) {		case P_DEFAULT:			if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) &&			    prop->expr->type != E_SYMBOL)				prop_warn(prop,				    "default for config symbol '%'"				    " must be a single symbol", sym->name);			break;		case P_SELECT:			sym2 = prop_get_symbol(prop);			if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)				prop_warn(prop,				    "config symbol '%s' uses select, but is "				    "not boolean or tristate", sym->name);			else if (sym2->type == S_UNKNOWN)				prop_warn(prop,				    "'select' used by config symbol '%s' "				    "refer to undefined symbol '%s'",				    sym->name, sym2->name);			else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)				prop_warn(prop,				    "'%s' has wrong type. 'select' only "				    "accept arguments of boolean and "				    "tristate type", sym2->name);			break;		case P_RANGE:			if (sym->type != S_INT && sym->type != S_HEX)				prop_warn(prop, "range is only allowed "				                "for int or hex symbols");			if (!sym_string_valid(sym, prop->expr->left.sym->name) ||			    !sym_string_valid(sym, prop->expr->right.sym->name))				prop_warn(prop, "range is invalid");			break;		default:			;		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4cf3cbe2a9682242cd38897914b1f2a95f1db7e4/menu.c/clean/scripts/kconfig/menu.c