WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
183311
dump-class-layout mishandles duplicates base classes and miscomputes padding
https://bugs.webkit.org/show_bug.cgi?id=183311
Summary
dump-class-layout mishandles duplicates base classes and miscomputes padding
Joseph Pecoraro
Reported
2018-03-03 02:38:10 PST
dump-class-layout mishandles duplicates base classes and miscomputes padding INPUT: (I want to see the layout of Target)
> class VirtualBaseOne { > public: > virtual ~VirtualBaseOne() {} > }; > > class VirtualBaseTwo { > public: > virtual ~VirtualBaseTwo() {} > }; > > class OtherBase {}; > class OtherOtherBase : public OtherBase {}; > > class ThingWithData { > void* inputs[16]; > unsigned count; > }; > > class Base : virtual public VirtualBaseOne, virtual public VirtualBaseTwo, virtual protected OtherOtherBase { > public: > virtual ~Base() {}; > bool x; > ThingWithData data; > }; > > class Target : public Base { > int a; > int b; > int c; > int d; > }; > > int main() { > Target x; > return 0; > }
BEFORE:
> Found 1 types matching "Target" in "/tmp/a.out" for systemArch > +0 {176} Target > +0 {160} Base > +0 { 8} VirtualBaseOne > +0 < 8> __vtbl_ptr_type * _vptr; > +0 { 1} OtherOtherBase > +0 { 1} OtherBase > +0 { 8} VirtualBaseOne > +0 < 8> __vtbl_ptr_type * _vptr; > +0 { 1} OtherOtherBase > +0 { 1} OtherBase > +1 < 7> <PADDING> > +8 < 1> bool x; > +9 < 7> <PADDING> > +16 <136> ThingWithData data; > +16 <128> void *[16] inputs; > +144 < 4> unsigned int count; > +148 < 4> <PADDING> > +152 { 8} VirtualBaseTwo > +152 < 8> __vtbl_ptr_type * _vptr; > +152 { 8} VirtualBaseTwo > +152 < 8> __vtbl_ptr_type * _vptr; > +0 { 8} VirtualBaseOne > +0 < 8> __vtbl_ptr_type * _vptr; > +0 { 1} OtherOtherBase > +0 { 1} OtherBase > +1 <151> <PADDING> > +152 < 4> int a; > +156 < 4> int b; > +160 < 4> int c; > +164 < 4> int d; > +168 { 8} VirtualBaseTwo > +168 < 8> __vtbl_ptr_type * _vptr; > Total byte size: 176 > Total pad bytes: 169 > Padding percentage: 96.02 %
AFTER:
> Found 1 types matching "Target" in "/tmp/a.out" for systemArch > +0 {176} Target > +0 {160} Base > +0 { 8} VirtualBaseOne > +0 < 8> __vtbl_ptr_type * _vptr; > +0 { 1} OtherOtherBase > +0 { 1} OtherBase > +1 < 7> <PADDING> > +8 < 1> bool x; > +9 < 7> <PADDING> > +16 <136> ThingWithData data; > +16 <128> void *[16] inputs; > +144 < 4> unsigned int count; > +148 < 4> <PADDING> > +152 { 8} VirtualBaseTwo > +152 < 8> __vtbl_ptr_type * _vptr; > +152 < 4> int a; > +156 < 4> int b; > +160 < 4> int c; > +164 < 4> int d; > +168 { 8} VirtualBaseTwo > +168 < 8> __vtbl_ptr_type * _vptr; > Total byte size: 176 > Total pad bytes: 18 > Padding percentage: 10.23 %
Attachments
[PATCH] Proposed Fix
(3.41 KB, patch)
2018-03-03 02:40 PST
,
Joseph Pecoraro
simon.fraser
: review+
commit-queue
: commit-queue-
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Joseph Pecoraro
Comment 1
2018-03-03 02:40:54 PST
Created
attachment 334953
[details]
[PATCH] Proposed Fix
WebKit Commit Bot
Comment 2
2018-03-05 11:40:31 PST
Comment on
attachment 334953
[details]
[PATCH] Proposed Fix Rejecting
attachment 334953
[details]
from commit-queue. Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-01', 'land-attachment', '--force-clean', '--non-interactive', '--parent-command=commit-queue', 334953, '--port=mac']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit Last 500 characters of output: rdparty/autoinstalled/mechanize/_urllib2_fork.py", line 332, in _call_chain result = func(*args) File "/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py", line 1170, in https_open return self.do_open(conn_factory, req) File "/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py", line 1118, in do_open raise URLError(err) urllib2.URLError: <urlopen error [Errno 60] Operation timed out> Full output:
http://webkit-queues.webkit.org/results/6815059
Simon Fraser (smfr)
Comment 3
2018-05-19 11:42:34 PDT
This fix isn't right:
bug 185801
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug