aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-pragma.c
diff options
context:
space:
mode:
authorMumit Khan <khan@xraylith.wisc.edu>1999-06-09 02:16:12 +0000
committerJeff Law <law@gcc.gnu.org>1999-06-08 20:16:12 -0600
commit3cc0b5517abf97ac8b44adcfeca642410d99b441 (patch)
tree409dc9e147cd73c81e6558344513d4a13f345618 /gcc/c-pragma.c
parentef890d35d409ef65eeddb1101386f66fca36d52e (diff)
downloadgcc-3cc0b5517abf97ac8b44adcfeca642410d99b441.zip
gcc-3cc0b5517abf97ac8b44adcfeca642410d99b441.tar.gz
gcc-3cc0b5517abf97ac8b44adcfeca642410d99b441.tar.bz2
c-pragma.c (handle_pragma_token): Handle `#pragma pack()' correctly.
* c-pragma.c (handle_pragma_token): Handle `#pragma pack()' correctly. From-SVN: r27432
Diffstat (limited to 'gcc/c-pragma.c')
-rw-r--r--gcc/c-pragma.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/c-pragma.c b/gcc/c-pragma.c
index eedd0a1..de9cfb8 100644
--- a/gcc/c-pragma.c
+++ b/gcc/c-pragma.c
@@ -383,8 +383,17 @@ handle_pragma_token (string, token)
case ps_left:
if (token == NULL_TREE)
- state = (strcmp (string, ")") ? ps_bad : ps_right);
-
+ {
+ /* #pragma pack () resets packing rules to their
+ defaults. */
+ if (strcmp (string, ")") == 0)
+ {
+ align = 0;
+ state = ps_right;
+ }
+ else
+ state = ps_bad;
+ }
else if (TREE_CODE (token) == INTEGER_CST)
goto handle_align;