diff options
Diffstat (limited to 'ld/pdb.c')
-rw-r--r-- | ld/pdb.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -3297,6 +3297,26 @@ handle_type (uint8_t *data, struct type_entry **map, uint32_t type_num, /* Does not reference any types, nothing to be done. */ break; + case LF_VFTABLE: + { + struct lf_vftable *vft = (struct lf_vftable *) data; + + if (size < offsetof (struct lf_vftable, names)) + { + einfo (_("%P: warning: truncated CodeView type record" + " LF_VFTABLE\n")); + return false; + } + + if (!remap_type (&vft->type, map, type_num, num_types)) + return false; + + if (!remap_type (&vft->base_vftable, map, type_num, num_types)) + return false; + + break; + } + case LF_STRING_ID: { struct lf_string_id *str = (struct lf_string_id *) data; |