diff -r d871f0eb88fb -r aad0f3e5df33 stage3/datatype_functions.cc --- a/stage3/datatype_functions.cc Fri Feb 17 19:47:23 2012 +0000 +++ b/stage3/datatype_functions.cc Fri Feb 17 19:47:58 2012 +0000 @@ -193,7 +193,10 @@ void copy_candidate_datatype_list(symbol_c *from, symbol_c *to) { if ((NULL == from) || (NULL == to)) return; - std::copy(from->candidate_datatypes.begin(), from->candidate_datatypes.end(), to->candidate_datatypes.begin()); + for(unsigned int i = 0; i < from->candidate_datatypes.size(); i++) + to->candidate_datatypes.push_back(from->candidate_datatypes[i]); + /* for some reason, the following alternative implementation results in a segmentation fault! I am not going to bother with this for now! */ +// std::copy(from->candidate_datatypes.begin(), from->candidate_datatypes.end(), to->candidate_datatypes.begin()); }