aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2014-04-06 15:56:26 +0800
committerTeddy <ted.sybil@gmail.com>2014-04-06 15:56:26 +0800
commit6d4fff31616fdc96da20898d39d7cba95a9cda0a (patch)
treeed7876a8043d8893875680283fbe109251ac8d3c
parent8f8927e3f240ea6710337b1351ea8adee9eef2db (diff)
bugfix: global incomplete type should not be allowed
-rw-r--r--semantics.c2
-rw-r--r--semantics.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/semantics.c b/semantics.c
index 39ca0c1..1d9e329 100644
--- a/semantics.c
+++ b/semantics.c
@@ -596,7 +596,7 @@ CVar_t semantics_decl(CNode *p, CScope_t scope) {
{
/* TODO: initializer checking */
CVar_t var = semantics_declr(p->chd, type, scope, 0);
- if (scope->lvl && !type_is_complete(var->type))
+ if (!type_is_complete(var->type))
{
sprintf(err_buff, "storage size of '%s' isn’t known", var->name);
ERROR(var->ast);
diff --git a/semantics.h b/semantics.h
index aed73de..df7f36a 100644
--- a/semantics.h
+++ b/semantics.h
@@ -7,7 +7,7 @@ struct CTable;
typedef struct CTable *CTable_t;
struct CType;
-typedef struct CVar{
+typedef struct CVar {
const char *name;
struct CVar *next; /* next in the linked list */
struct CType *type;