rem: funcr = 0;
context: int icalrestriction_check_component(icalproperty_method method,				    icalcomponent* comp){    icalproperty_kind kind;    icalcomponent_kind comp_kind;    icalrestriction_kind restr;    icalrestriction_property_record *prop_record;    icalrestriction_component_record *comp_record;    char* funcr = 0;    icalproperty *prop;    int count;    int compare;    int valid = 1;    comp_kind = icalcomponent_isa(comp);    /* Check all of the properties in this component */    for(kind = ICAL_ANY_PROPERTY+1; kind != ICAL_NO_PROPERTY; kind++){	count = icalcomponent_count_properties(comp, kind);		prop_record = icalrestriction_get_property_restriction(method, 							 comp_kind,							 kind);	restr = prop_record->restriction;	if(restr == ICAL_RESTRICTION_ONEEXCLUSIVE ||	    restr == ICAL_RESTRICTION_ONEMUTUAL) {	    /* First treat is as a 0/1 restriction */	    restr = ICAL_RESTRICTION_ZEROORONE;	    compare = icalrestriction_compare(restr,count);	} else {	    compare = icalrestriction_compare(restr,count);	}	assert(compare != -1);	if (compare == 0){	    char temp[TMP_BUF_SIZE];	    	    snprintf(temp, TMP_BUF_SIZE,"Failed iTIP restrictions for %s property. Expected %s instances of the property and got %d",		    icalenum_property_kind_to_string(kind),		    restr_string_map[restr], count);	    	    icalcomponent_add_property		(comp,		 icalproperty_vanew_xlicerror(		     temp,		     icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_INVALIDITIP),		     0));   	} 	prop = icalcomponent_get_first_property(comp, kind);	if (prop != 0 && prop_record->function !=0  ){	    funcr =  prop_record->function(prop_record,comp,prop);	}	if(funcr !=0){	    icalcomponent_add_property		(comp,		 icalproperty_vanew_xlicerror(		     funcr,		     icalparameter_new_xlicerrortype(			 ICAL_XLICERRORTYPE_INVALIDITIP),		     0));   	    compare = 0;	    funcr = 0;	}	valid = valid && compare;    }    return valid;}