void main_sink_b(wchar_t * data);void main(){wchar_t * data;data=NULL;{wchar_t mystring[]=L"mystring";data=wcsdup(mystring);}main_sink_b(data);}void main_sink_c(wchar_t * data);void main_sink_b(wchar_t * data){main_sink_c(data);}void main_sink_d(wchar_t * data);void main_sink_c(wchar_t * data){main_sink_d(data);}void main_sink_d(wchar_t * data){delete [] data;}
static void main(){wchar_t * data;data=NULL;{wchar_t mystring[]=L"mystring";data=wcsdup(mystring);}main_sink_b(data);}void main_sink_b(wchar_t * data){main_sink_c(data);}void main_sink_c(wchar_t * data){main_sink_d(data);}void main_sink_d(wchar_t * data){free(data);}