mirror of
https://github.com/mirror/tinycc.git
synced 2025-03-30 12:20:06 +08:00
tccpe: #pragma pack(push) - support this form
This commit is contained in:
parent
c7a57bf1fa
commit
e97e108d0b
8
tccpp.c
8
tccpp.c
@ -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 != ')')
|
||||||
|
Loading…
Reference in New Issue
Block a user