http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60718
--- Comment #4 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- in this example, we have __class_poly_list_Node_type_p is alias_set 3 which is used for the list_type::head, next fields and __class_poly_list_Node_type is alias set 8 which is used for the parameter new_node of append_node but the invocation at MAIN__ supplies a __class_poly_list_Node_type_p node. I am not sure, but I think these should be either the same type or at least have the same alias set.