From e97e108d0bf494ccb2b6979a57210df452a522a5 Mon Sep 17 00:00:00 2001 From: grischka Date: Thu, 19 Aug 2021 19:01:23 +0200 Subject: [PATCH] tccpe: #pragma pack(push) - support this form --- tccpp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tccpp.c b/tccpp.c index 897ef151..6b828c9d 100644 --- a/tccpp.c +++ b/tccpp.c @@ -1725,6 +1725,7 @@ static void pragma_parse(TCCState *s1) /* This may be: #pragma pack(1) // set #pragma pack() // reset to default + #pragma pack(push) // push current #pragma pack(push,1) // push & set #pragma pack(pop) // restore previous */ next(); @@ -1743,8 +1744,10 @@ static void pragma_parse(TCCState *s1) next(); if (s1->pack_stack_ptr >= s1->pack_stack + PACK_STACK_SIZE - 1) goto stk_error; - s1->pack_stack_ptr++; - skip(','); + val = *s1->pack_stack_ptr++; + if (tok != ',') + goto pack_set; + next(); } if (tok != TOK_CINT) goto pragma_err; @@ -1753,6 +1756,7 @@ static void pragma_parse(TCCState *s1) goto pragma_err; next(); } + pack_set: *s1->pack_stack_ptr = val; } if (tok != ')')