Unified · Split
| @@ -1725,6 +1725,7 @@ static void pragma_parse(TCCState *s1) · 1724 unmodified lines | ||
| 1725 | 1725 | /* This may be: |
| 1726 | 1726 | #pragma pack(1) // set |
| 1727 | 1727 | #pragma pack() // reset to default |
| 1728 | + #pragma pack(push) // push current | |
| 1728 | 1729 | #pragma pack(push,1) // push & set |
| 1729 | 1730 | #pragma pack(pop) // restore previous */ |
| 1730 | 1731 | next(); |
| @@ -1743,8 +1744,10 @@ static void pragma_parse(TCCState *s1) · 12 unmodified lines | ||
| 1743 | 1744 | next(); |
| 1744 | 1745 | if (s1->pack_stack_ptr >= s1->pack_stack + PACK_STACK_SIZE - 1) |
| 1745 | 1746 | goto stk_error; |
| 1746 | − s1->pack_stack_ptr++; | |
| 1747 | − skip(','); | |
| 1747 | + val = *s1->pack_stack_ptr++; | |
| 1748 | + if (tok != ',') | |
| 1749 | + goto pack_set; | |
| 1750 | + next(); | |
| 1748 | 1751 | } |
| 1749 | 1752 | if (tok != TOK_CINT) |
| 1750 | 1753 | goto pragma_err; |
| @@ -1753,6 +1756,7 @@ static void pragma_parse(TCCState *s1) · 2 unmodified lines | ||
| 1753 | 1756 | goto pragma_err; |
| 1754 | 1757 | next(); |
| 1755 | 1758 | } |
| 1759 | + pack_set: | |
| 1756 | 1760 | *s1->pack_stack_ptr = val; |
| 1757 | 1761 | } |
| 1758 | 1762 | if (tok != ')') |