+2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
+       handle barriers in a bb by checking that it points to a NULL bb.
+       * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
+       (emit_barrier_after, emit_barrier): Ditto.
+
 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
 
        * doc/extend.texi (Attribute Syntax): Clarify details of
 
        }
 
       for (x = BB_HEAD (bb); x != NEXT_INSN (BB_END (bb)); x = NEXT_INSN (x))
-       if (BLOCK_FOR_INSN (x) != bb)
+       /* We may have a barrier inside a basic block before dead code
+          elimination.  They always have a NULL BLOCK_FOR_INSN.  */
+       if (BLOCK_FOR_INSN (x) != bb
+           && !(BARRIER_P (x) && BLOCK_FOR_INSN (x) == NULL))
          {
            debug_rtx (x);
            if (! BLOCK_FOR_INSN (x))
 
   rtx insn = rtx_alloc (BARRIER);
 
   INSN_UID (insn) = cur_insn_uid++;
+  BLOCK_FOR_INSN (insn) = NULL;
 
   add_insn_before (insn, before);
   return insn;
   rtx insn = rtx_alloc (BARRIER);
 
   INSN_UID (insn) = cur_insn_uid++;
+  BLOCK_FOR_INSN (insn) = NULL;
 
   add_insn_after (insn, after);
   return insn;
 {
   rtx barrier = rtx_alloc (BARRIER);
   INSN_UID (barrier) = cur_insn_uid++;
+  BLOCK_FOR_INSN (barrier) = NULL;
   add_insn (barrier);
   return barrier;
 }