From: Richard Stallman Date: Tue, 22 Jun 1993 06:07:19 +0000 (+0000) Subject: (grokdeclarator): Avoid the use of macros for ..._TYPE X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f537a5c50ff2883952bb0befc2e0a5110fdc7029;p=gcc.git (grokdeclarator): Avoid the use of macros for ..._TYPE nodes in cases where a parameter's type is error_mark_node. From-SVN: r4708 --- diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 5a347e31d7c..08f003e1f0e 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -4457,13 +4457,16 @@ grokdeclarator (declarator, declspecs, decl_context, initialized) When there is a prototype, this is overridden later. */ DECL_ARG_TYPE (decl) = type; - main_type = TYPE_MAIN_VARIANT (type); + main_type = (type == error_mark_node + ? error_mark_node + : TYPE_MAIN_VARIANT (type)); if (main_type == float_type_node) DECL_ARG_TYPE (decl) = double_type_node; /* Don't use TYPE_PRECISION to decide whether to promote, because we should convert short if it's the same size as int, but we should not convert long if it's the same size as int. */ - else if (C_PROMOTING_INTEGER_TYPE_P (main_type)) + else if (TREE_CODE (main_type) != ERROR_MARK + && C_PROMOTING_INTEGER_TYPE_P (main_type)) { if (TYPE_PRECISION (type) == TYPE_PRECISION (integer_type_node) && TREE_UNSIGNED (type))