Commit f537a5c5 by Richard Stallman

(grokdeclarator): Avoid the use of macros for ..._TYPE

nodes in cases where a parameter's type is error_mark_node.

From-SVN: r4708
parent a0466a68
......@@ -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))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment