schmidt%crimee.ics.uci.edu@PARIS.ICS.UCI.EDU ("Douglas C. Schmidt") (01/19/89)
Hi, G++ 1.32 fails when presented with strange input like this: ---------------------------------------- typedef int *win_error_function(int, int); int win_errorhandler(win_error_function); ---------------------------------------- The following patches fix this problem: ---------------------------------------- *** cplus-decl.c.~1~ Tue Jan 17 23:07:21 1989 --- cplus-decl.c Thu Jan 19 02:40:53 1989 *************** *** 4245,4256 **** if (TREE_CODE (type) == FUNCTION_TYPE) { ! error ("parameter `%s' invalidly declared function type", IDENTIFIER_POINTER (declarator)); type = build_pointer_type (type); } else if (TREE_CODE (type) == MEMBER_TYPE) { ! error ("parameter `%s' invalidly declared member type", IDENTIFIER_POINTER (declarator)); type = build_pointer_type (type); } --- 4245,4262 ---- if (TREE_CODE (type) == FUNCTION_TYPE) { ! if (declarator == NULL_TREE) ! error ("formal parameter invalidly declared function type"); ! else ! error ("parameter `%s' invalidly declared function type", IDENTIFIER_POINTER (declarator)); type = build_pointer_type (type); } else if (TREE_CODE (type) == MEMBER_TYPE) { ! if (declarator == NULL_TREE) ! error ("formal parameter invalidly declared member type"); ! else ! error ("parameter `%s' invalidly declared member type", IDENTIFIER_POINTER (declarator)); type = build_pointer_type (type); }