diff options
author | Giuliano Procida <gprocida@google.com> | 2023-09-08 14:33:48 +0100 |
---|---|---|
committer | Giuliano Procida <gprocida@google.com> | 2023-09-12 09:31:53 +0100 |
commit | 7bb30801bfd8df4881202cc0b03fb0e785668f7f (patch) | |
tree | 8dd219adea1de225b00f676918e46fea8e5b82a0 /stg.proto | |
parent | 2f299880d283b02400a0f37147098246403f242e (diff) | |
download | stg-7bb30801bfd8df4881202cc0b03fb0e785668f7f.tar.gz |
make Methods be exclusively virtual methods
These are the only kinds of methods that are tied to a class (via a
vtable). The others have independent existences as symbols.
Model changes:
`Method` node
* `kind` is removed
* `vtable_offset` is now non-optional
Format changes:
`method` node
* `kind` is removed along with all reader / writer support
* `vtable_offset` is now non-optional, so an absent field implies a 0
offset
* "stable" IDs will differ
Note that the format version has not been bumped as there are no known
C++ STG ABIs in the wild.
PiperOrigin-RevId: 563736222
Change-Id: I37bb5a4e67f3d417492f0273ff5e6b4dff506bb4
Diffstat (limited to 'stg.proto')
-rw-r--r-- | stg.proto | 12 |
1 files changed, 2 insertions, 10 deletions
@@ -143,19 +143,11 @@ message BaseClass { } message Method { - enum Kind { - KIND_UNSPECIFIED = 0; - NON_VIRTUAL = 1; - STATIC = 2; - VIRTUAL = 3; - } - fixed32 id = 1; string mangled_name = 2; string name = 3; - Kind kind = 4; - optional uint64 vtable_offset = 5; - fixed32 type_id = 6; + uint64 vtable_offset = 4; + fixed32 type_id = 5; } message Member { |