ASSERT_TRUE (cast_reg->descendent_of_p (x_reg));
}
+/* Verify that bit_range_region works as expected. */
+
+static void
+test_bit_range_regions ()
+{
+ tree x = build_global_decl ("x", integer_type_node);
+ region_model_manager mgr;
+ const region *x_reg = mgr.get_region_for_global (x);
+ const region *byte0
+ = mgr.get_bit_range (x_reg, char_type_node, bit_range (0, 8));
+ const region *byte1
+ = mgr.get_bit_range (x_reg, char_type_node, bit_range (8, 8));
+ ASSERT_TRUE (byte0->descendent_of_p (x_reg));
+ ASSERT_TRUE (byte1->descendent_of_p (x_reg));
+ ASSERT_NE (byte0, byte1);
+}
+
/* Verify that simple assignments work as expected. */
static void
test_binop_svalue_folding ();
test_sub_svalue_folding ();
test_descendent_of_p ();
+ test_bit_range_regions ();
test_assignment ();
test_compound_assignment ();
test_stack_frames ();
inchash::hash hstate;
hstate.add_ptr (m_parent);
hstate.add_ptr (m_type);
- hstate.add (&m_bits, sizeof (m_bits));
+ hstate.add_wide_int (m_bits.m_start_bit_offset);
+ hstate.add_wide_int (m_bits.m_size_in_bits);
return hstate.end ();
}
--- /dev/null
+/* { dg-additional-options "-O" } */
+
+void
+test_1 (void)
+{
+ int __attribute__((__vector_size__ (16))) x;
+ for (unsigned i = 0; i < 4;)
+ if (x[i]) /* { dg-warning "use of uninitialized value" } */
+ __builtin_abort ();
+}