https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109806
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That ICE is because layout_class_type calls c_build_bitfield_integer_type with width of 0 and that type is then seen by ranger for some reason: #7 0x0000000000c4eee1 in layout_class_type (t=<record_type 0x7fffea2ee348 timespec>, virtuals_p=0x7fffffffd4c8) at ../../gcc/cp/class.cc:6858 6853 tree ftype = TREE_TYPE (field); 6854 width = tree_to_uhwi (DECL_SIZE (field)); 6855 if (width != TYPE_PRECISION (ftype)) 6856 { 6857 TREE_TYPE (field) 6858 = c_build_bitfield_integer_type (width, 6859 TYPE_UNSIGNED (ftype)); 6860 TREE_TYPE (field) 6861 = cp_build_qualified_type (TREE_TYPE (field), 6862 cp_type_quals (ftype)); I think unnamed bitfields are just padding and shouldn't have this called.