This is an archive of the discontinued LLVM Phabricator instance.

Get rid of Data and RawData in CVRecord
ClosedPublic

Authored by zturner on Sep 9 2016, 3:20 PM.

Details

Summary

To make this work, we had to make restrict the usage of CVRecord to mean "record with length-specified prefix". This means CVRecord can no longer be used for field list members since they don't describe their own length and don't contain a prefix. So a new type is introduced called CVMemberTypeRecord, and then all the associated fallout is dealt with. Mostly this means changing all visitors to use separate methods for visiting CVRecords vs CVMemberTypeRecords, there's just a lot of it.

Diff Detail

Repository
rL LLVM

Event Timeline

zturner updated this revision to Diff 70917.Sep 9 2016, 3:20 PM
zturner retitled this revision from to Get rid of Data and RawData in CVRecord.
zturner updated this object.
zturner added a reviewer: rnk.
zturner added a subscriber: llvm-commits.
rnk added inline comments.Sep 14 2016, 11:07 AM
include/llvm/DebugInfo/CodeView/TypeRecord.h
33 ↗(On Diff #70917)

How about CVMemberRecord? It's consistent with MEMBER_RECORD vs TYPE_RECORD and visitKnownMember and visitKnownType.

zturner updated this revision to Diff 71426.Sep 14 2016, 2:00 PM
zturner marked an inline comment as done.
rnk accepted this revision.Sep 14 2016, 2:22 PM
rnk edited edge metadata.

lgtm

This revision is now accepted and ready to land.Sep 14 2016, 2:22 PM
This revision was automatically updated to reflect the committed changes.