Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
8434c305
Commit
8434c305
authored
Aug 13, 2011
by
David Li
Committed by
Xinliang David Li
Aug 13, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix bug in vtable initialization
From-SVN: r177731
parent
b203901c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
40 additions
and
2 deletions
+40
-2
gcc/ChangeLog
+5
-0
gcc/cp/class.c
+1
-2
gcc/testsuite/ChangeLog
+4
-0
gcc/testsuite/g++.dg/abi/vbase15.C
+30
-0
No files found.
gcc/ChangeLog
View file @
8434c305
2011-08-12 David Li <davidxl@google.com>
* cp/class.c (update_vtable_entry_for_fn): Set
LOST_PRIMARY bit properly.
2011-08-12 Richard Henderson <rth@redhat.com>
PR rtl-opt/49994
...
...
gcc/cp/class.c
View file @
8434c305
...
...
@@ -2294,8 +2294,7 @@ update_vtable_entry_for_fn (tree t, tree binfo, tree fn, tree* virtuals,
else
BV_VCALL_INDEX
(
*
virtuals
)
=
NULL_TREE
;
if
(
lost
)
BV_LOST_PRIMARY
(
*
virtuals
)
=
true
;
BV_LOST_PRIMARY
(
*
virtuals
)
=
lost
;
}
/* Called from modify_all_vtables via dfs_walk. */
...
...
gcc/testsuite/ChangeLog
View file @
8434c305
2011-08-12 David Li <davidxl@google.com>
* g++.dg/abi/vbase15.C: New test.
2011-08-12 Jason Merrill <jason@redhat.com>
PR c++/50034
...
...
gcc/testsuite/g++.dg/abi/vbase15.C
0 → 100644
View file @
8434c305
// { dg-do run }
struct
Spec
{
virtual
int
id
()
const
=
0
;
};
class
D1_1_Spec
:
public
virtual
Spec
{
};
class
D1_2_Spec
:
public
virtual
Spec
{
};
class
D1_3_Spec
:
public
virtual
Spec
{
};
class
D2_1_Spec
:
public
D1_1_Spec
,
public
D1_2_Spec
{
};
class
D2_Spec
:
public
virtual
D2_1_Spec
,
public
virtual
D1_3_Spec
{
};
struct
D3_Spec
:
public
D2_Spec
{
virtual
int
id
()
const
{
return
3
;
}
};
__attribute__
((
noinline
))
void
foo
(
D3_Spec
*
spec
)
{
spec
->
id
();
}
int
main
()
{
D3_Spec
spec
;
foo
(
&
spec
);
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment