The error message from the AMD SDK helped to find the cause.
As described in a forum posting, the casted type must have the same memory location annotation as the source variable.
In this example:
segment_list_t* casted_wo_data = (segment_list_t*)wo_data;
have to be replaced with:
global segment_list_t* casted_wo_data = (global segment_list_t*)wo_data;