- 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;
- 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);
- else
- warning ("incomplete '#pragma pack(push,<n>)'");
- break;
-
- case ps_pop:
- if (state == ps_right)
- ret_val = pop_alignment ();
- else
- warning ("missing closing parenthesis in '#pragma pack(pop)'");
- 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;
+ decl = identifier_global_value (name);
+ if (decl && TREE_CODE_CLASS (TREE_CODE (decl)) == 'd')
+ {
+ apply_pragma_weak (decl, value);
+ if (value)
+ assemble_alias (decl, value);
+ }
+ else
+ pending_weaks = tree_cons (name, value, pending_weaks);
+}
+#else
+void
+maybe_apply_pragma_weak (decl)
+ tree decl ATTRIBUTE_UNUSED;
+{
+}