Skip to content

Commit

Permalink
fixes #123
Browse files Browse the repository at this point in the history
  • Loading branch information
thradams committed Dec 21, 2024
1 parent f1ce238 commit ca9f561
Show file tree
Hide file tree
Showing 5 changed files with 275 additions and 302 deletions.
21 changes: 3 additions & 18 deletions src/file.c
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
#pragma safety enable



struct X { int i; void* _Opt p; };
void* _Owner _Opt calloc(int i, int sz);
void free(void* _Owner _Opt p);

int main()
struct X
{
struct X* _Owner _Opt p = calloc(1, 1);
static_state(p, "null | not-null ");
if (p)
{
static_state(p->i, "zero");
static_state(p->p, "null");
}
free(p);
}
alignas(16) float a[4];
};
5 changes: 2 additions & 3 deletions src/lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -32027,7 +32027,7 @@ struct specifier_qualifier_list* _Owner _Opt specifier_qualifier_list(struct par
struct specifier_qualifier_list* _Owner _Opt p_specifier_qualifier_list = NULL;
try
{
if (!first_of_type_specifier(ctx) && !first_of_type_qualifier(ctx))
if (!first_of_type_specifier_qualifier(ctx))
{
compiler_diagnostic_message(C_ERROR_MISSING_ENUM_TAG_NAME, ctx, ctx->current, NULL, "type specifier or qualifier expected");
throw;
Expand All @@ -32051,8 +32051,7 @@ struct specifier_qualifier_list* _Owner _Opt specifier_qualifier_list(struct par
p_specifier_qualifier_list->first_token = ctx->current;

while (ctx->current != NULL &&
(first_of_type_specifier(ctx) ||
first_of_type_qualifier(ctx)))
(first_of_type_specifier_qualifier(ctx)))
{

if (ctx->current->flags & TK_FLAG_IDENTIFIER_IS_TYPEDEF)
Expand Down
5 changes: 2 additions & 3 deletions src/parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -4070,7 +4070,7 @@ struct specifier_qualifier_list* _Owner _Opt specifier_qualifier_list(struct par
struct specifier_qualifier_list* _Owner _Opt p_specifier_qualifier_list = NULL;
try
{
if (!first_of_type_specifier(ctx) && !first_of_type_qualifier(ctx))
if (!first_of_type_specifier_qualifier(ctx))
{
compiler_diagnostic_message(C_ERROR_MISSING_ENUM_TAG_NAME, ctx, ctx->current, NULL, "type specifier or qualifier expected");
throw;
Expand All @@ -4094,8 +4094,7 @@ struct specifier_qualifier_list* _Owner _Opt specifier_qualifier_list(struct par
p_specifier_qualifier_list->first_token = ctx->current;

while (ctx->current != NULL &&
(first_of_type_specifier(ctx) ||
first_of_type_qualifier(ctx)))
(first_of_type_specifier_qualifier(ctx)))
{

if (ctx->current->flags & TK_FLAG_IDENTIFIER_IS_TYPEDEF)
Expand Down
Loading

0 comments on commit ca9f561

Please sign in to comment.