From f537a5c50ff2883952bb0befc2e0a5110fdc7029 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Tue, 22 Jun 1993 06:07:19 +0000 Subject: [PATCH] (grokdeclarator): Avoid the use of macros for ..._TYPE nodes in cases where a parameter's type is error_mark_node. From-SVN: r4708 --- gcc/c-decl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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)) -- 2.30.2