From fe3f726fd695860d1534cd7819632e0fbf3bc944 Mon Sep 17 00:00:00 2001 From: acqn Date: Sat, 8 Aug 2020 07:04:29 +0800 Subject: [PATCH] Improved incomplete enum typed diagnostics. --- src/cc65/datatype.c | 2 +- src/cc65/declare.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cc65/datatype.c b/src/cc65/datatype.c index 65a0c0cbb..5794bf5a6 100644 --- a/src/cc65/datatype.c +++ b/src/cc65/datatype.c @@ -976,7 +976,7 @@ unsigned TypeOf (const Type* T) case T_ENUM: /* Incomplete enum type */ - Error ("Incomplete enum type"); + Error ("Incomplete type '%s'", GetFullTypeName (T)); return CF_INT; default: diff --git a/src/cc65/declare.c b/src/cc65/declare.c index f6aa9c430..9539a09b6 100644 --- a/src/cc65/declare.c +++ b/src/cc65/declare.c @@ -2543,6 +2543,12 @@ static unsigned ParseInitInternal (Type* T, int *Braces, int AllowFlexibleMember case T_UNION: return ParseStructInit (T, Braces, AllowFlexibleMembers); + case T_ENUM: + /* Incomplete enum type must have already raised errors. + ** Just proceed to consume the value. + */ + return ParseScalarInit (T); + case T_VOID: if (IS_Get (&Standard) == STD_CC65) { /* Special cc65 extension in non-ANSI mode */