- switch (type)
- {
- default:
- abort ();
- break;
-
- case ps_done:
- /* The pragma was not recognised. */
- break;
-
-#ifdef HANDLE_PRAGMA_PACK
- case ps_pack:
- if (state == ps_right)
- {
- maximum_field_alignment = align * 8;
-#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
- default_alignment = maximum_field_alignment;
-#endif
- ret_val = 1;
- }
- else
- warning ("malformed `#pragma pack'");
- break;
-#endif /* HANDLE_PRAGMA_PACK */
-
-#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
- case ps_push:
- if (state == ps_right)
- ret_val = push_alignment (align, id);
- else
- warning ("malformed '#pragma pack(push[,id],<n>)'");
- break;
-
- case ps_pop:
- if (state == ps_right)
- ret_val = pop_alignment (id);
- else
- warning ("malformed '#pragma pack(pop[,id])'");
- break;
-#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
-
-#ifdef HANDLE_PRAGMA_WEAK
- case ps_weak:
- if (HANDLE_PRAGMA_WEAK)
- {
- if (state == ps_name)
- ret_val = add_weak (name, NULL);
- else if (state == ps_value)
- ret_val = add_weak (name, value);
- else
- warning ("malformed `#pragma weak'");
- }
- else
- ret_val = 1; /* Ignore the pragma. */
- break;
-#endif /* HANDLE_PRAGMA_WEAK */
+ if (c_lex (&x) != CPP_COMMA)
+ BAD2 ("malformed '#pragma pack(%s[, id], <n>)' - ignored", op);