$NetBSD$

bitfields cannot be updated via an lvalue cast assigment.

--- gcc/p/module.c.orig	2002-04-26 20:25:38.000000000 +0000
+++ gcc/p/module.c	2007-12-01 12:37:20.000000000 +0000
@@ -2548,7 +2548,7 @@ itab_check_gpi_checksum (interface_name,
   itab->gpi_checksum = gpi_checksum;
   /* @@ misuse of TREE_LIST and TREE_TYPE(1) */
   t = build_tree_list (itab->module_name, itab->interface_name);
-  TREE_CODE (t) = INTERFACE_NAME_NODE;
+  TREE_SET_CODE (t, INTERFACE_NAME_NODE);
   TREE_TYPE (t) = (tree) itab;
   itab->interface_name_node = t;
   return 1;
@@ -2636,7 +2636,7 @@ load_node ()
           free (id);
           /* @@ misuse of TREE_LIST */
           t = build_tree_list (m, i);
-          TREE_CODE (t) = INTERFACE_NAME_NODE;
+          TREE_SET_CODE (t, INTERFACE_NAME_NODE);
           assert (mark_node_loaded (t, uid) == t);
           LOAD_ANY (gpi_checksum);
           get_interface_table (i, m, 1);
@@ -3718,7 +3718,7 @@ gpi_open (interface_name, name, source, 
                         {
                           tree new_import = build_tree_list (NULL_TREE, interface);
                           /* @@ misuse of TREE_LIST and TREE_TYPE(2) */
-                          TREE_CODE (new_import) = INTERFACE_NAME_NODE;
+                          TREE_SET_CODE (new_import, INTERFACE_NAME_NODE);
                           TREE_TYPE (new_import) = (tree) checksum;
                           import_list = chainon (import_list, new_import);
                         }
