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
0f1e25b0
Commit
0f1e25b0
authored
Jun 20, 2000
by
Nathan Sidwell
Committed by
Nathan Sidwell
Jun 20, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* rtti.c (get_base_offset): Cope when vbase field is in a base.
From-SVN: r34619
parent
21b90691
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
2 deletions
+21
-2
gcc/cp/ChangeLog
+4
-0
gcc/cp/rtti.c
+17
-2
No files found.
gcc/cp/ChangeLog
View file @
0f1e25b0
2000-06-20 Nathan Sidwell <nathan@codesourcery.com>
2000-06-20 Nathan Sidwell <nathan@codesourcery.com>
* rtti.c (get_base_offset): Cope when vbase field is in a base.
2000-06-20 Nathan Sidwell <nathan@codesourcery.com>
* call.c (build_conditional_expr): Use VOID_TYPE_P.
* call.c (build_conditional_expr): Use VOID_TYPE_P.
* cvt.c (cp_convert_to_pointer): Likewise.
* cvt.c (cp_convert_to_pointer): Likewise.
(convert_to_void): Likewise.
(convert_to_void): Likewise.
...
...
gcc/cp/rtti.c
View file @
0f1e25b0
...
@@ -549,10 +549,25 @@ get_base_offset (binfo, parent)
...
@@ -549,10 +549,25 @@ get_base_offset (binfo, parent)
else
if
(
!
vbase_offsets_in_vtable_p
())
else
if
(
!
vbase_offsets_in_vtable_p
())
{
{
const
char
*
name
;
const
char
*
name
;
tree
result
;
tree
field
;
FORMAT_VBASE_NAME
(
name
,
BINFO_TYPE
(
binfo
));
FORMAT_VBASE_NAME
(
name
,
BINFO_TYPE
(
binfo
));
return
byte_position
(
lookup_field
(
parent
,
get_identifier
(
name
),
field
=
lookup_field
(
parent
,
get_identifier
(
name
),
0
,
0
);
0
,
0
));
result
=
byte_position
(
field
);
if
(
DECL_CONTEXT
(
field
)
!=
parent
)
{
/* The vbase pointer might be in a non-virtual base of PARENT.
* Adjust for the offset of that base in PARENT. */
tree
path
;
get_base_distance
(
DECL_CONTEXT
(
field
),
parent
,
-
1
,
&
path
);
result
=
build
(
PLUS_EXPR
,
TREE_TYPE
(
result
),
result
,
BINFO_OFFSET
(
path
));
result
=
fold
(
result
);
}
return
result
;
}
}
else
else
/* Under the new ABI, we store the vtable offset at which
/* Under the new ABI, we store the vtable offset at which
...
...
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