tccpe: #pragma pack(push) - support this form

This commit is contained in:
grischka 2021-08-19 19:01:23 +02:00
parent c7a57bf1fa
commit e97e108d0b

View File

@ -1725,6 +1725,7 @@ static void pragma_parse(TCCState *s1)
/* This may be: /* This may be:
#pragma pack(1) // set #pragma pack(1) // set
#pragma pack() // reset to default #pragma pack() // reset to default
#pragma pack(push) // push current
#pragma pack(push,1) // push & set #pragma pack(push,1) // push & set
#pragma pack(pop) // restore previous */ #pragma pack(pop) // restore previous */
next(); next();
@ -1743,8 +1744,10 @@ static void pragma_parse(TCCState *s1)
next(); next();
if (s1->pack_stack_ptr >= s1->pack_stack + PACK_STACK_SIZE - 1) if (s1->pack_stack_ptr >= s1->pack_stack + PACK_STACK_SIZE - 1)
goto stk_error; goto stk_error;
s1->pack_stack_ptr++; val = *s1->pack_stack_ptr++;
skip(','); if (tok != ',')
goto pack_set;
next();
} }
if (tok != TOK_CINT) if (tok != TOK_CINT)
goto pragma_err; goto pragma_err;
@ -1753,6 +1756,7 @@ static void pragma_parse(TCCState *s1)
goto pragma_err; goto pragma_err;
next(); next();
} }
pack_set:
*s1->pack_stack_ptr = val; *s1->pack_stack_ptr = val;
} }
if (tok != ')') if (tok != ')')