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
311862c8
Commit
311862c8
authored
Jul 08, 1994
by
Gerald Baumgartner
Committed by
Mike Stump
Jul 08, 1994
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
partial merge for isgnature stuff
From-SVN: r7680
parent
a98b1078
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
58 additions
and
1 deletions
+58
-1
gcc/cp/ChangeLog
+12
-0
gcc/cp/cp-tree.h
+1
-0
gcc/cp/decl2.c
+44
-1
gcc/cp/sig.c
+1
-0
No files found.
gcc/cp/ChangeLog
View file @
311862c8
Thu Jul 7 22:20:46 1994 Gerald Baumgartner (gb@andros.cygnus.com)
* cp-tree.h (walk_sigtables): Created extern declaration.
* decl2.c (walk_sigtables): Created function, patterned after
walk_vtables, even though we only need it to write out sigtables.
(finish_sigtable_vardecl): Created function.
(finish_vtable_vardecl): Changed 0 to NULL_PTR.
(finish_file): Call walk_sigtables.
* sig.c (build_signature_table_constructor): Mark class member
function pointed to from signature table entry as addressable.
Wed Jul 6 20:25:48 1994 Mike Stump (mrs@cygnus.com)
* except.c (init_exception_processing): Setup interim_eh_hook to
...
...
gcc/cp/cp-tree.h
View file @
311862c8
...
...
@@ -1984,6 +1984,7 @@ extern void finish_builtin_type PROTO((tree, char *, tree *, int, tree));
extern
tree
coerce_new_type
PROTO
((
tree
));
extern
tree
coerce_delete_type
PROTO
((
tree
));
extern
void
walk_vtables
PROTO
((
void
(
*
)(),
void
(
*
)()));
extern
void
walk_sigtables
PROTO
((
void
(
*
)(),
void
(
*
)()));
extern
void
finish_file
PROTO
((
void
));
extern
void
warn_if_unknown_interface
PROTO
((
void
));
extern
tree
grok_x_components
PROTO
((
tree
,
tree
));
...
...
gcc/cp/decl2.c
View file @
311862c8
...
...
@@ -2439,7 +2439,7 @@ finish_vtable_vardecl (prev, vars)
}
#endif
/* DWARF_DEBUGGING_INFO */
rest_of_decl_compilation
(
vars
,
0
,
1
,
1
);
rest_of_decl_compilation
(
vars
,
NULL_PTR
,
1
,
1
);
}
else
if
(
TREE_USED
(
vars
)
&&
flag_vtable_thunks
)
assemble_external
(
vars
);
...
...
@@ -2474,6 +2474,48 @@ walk_vtables (typedecl_fn, vardecl_fn)
}
}
static
void
finish_sigtable_vardecl
(
prev
,
vars
)
tree
prev
,
vars
;
{
/* We don't need to mark sigtable entries as addressable here as is done
for vtables. Since sigtables, unlike vtables, are always written out,
that was already done in build_signature_table_constructor. */
rest_of_decl_compilation
(
vars
,
NULL_PTR
,
1
,
1
);
/* We know that PREV must be non-zero here. */
TREE_CHAIN
(
prev
)
=
TREE_CHAIN
(
vars
);
}
void
walk_sigtables
(
typedecl_fn
,
vardecl_fn
)
register
void
(
*
typedecl_fn
)();
register
void
(
*
vardecl_fn
)();
{
tree
prev
,
vars
;
for
(
prev
=
0
,
vars
=
getdecls
();
vars
;
vars
=
TREE_CHAIN
(
vars
))
{
register
tree
type
=
TREE_TYPE
(
vars
);
if
(
TREE_CODE
(
vars
)
==
TYPE_DECL
&&
type
!=
error_mark_node
&&
IS_SIGNATURE
(
type
))
{
if
(
typedecl_fn
)
(
*
typedecl_fn
)
(
prev
,
vars
);
}
else
if
(
TREE_CODE
(
vars
)
==
VAR_DECL
&&
TREE_TYPE
(
vars
)
!=
error_mark_node
&&
IS_SIGNATURE
(
TREE_TYPE
(
vars
)))
{
if
(
vardecl_fn
)
(
*
vardecl_fn
)
(
prev
,
vars
);
}
else
prev
=
vars
;
}
}
extern
int
parse_time
,
varconst_time
;
#define TIMEVAR(VAR, BODY) \
...
...
@@ -2756,6 +2798,7 @@ finish_file ()
#endif
walk_vtables
((
void
(
*
)())
0
,
finish_vtable_vardecl
);
walk_sigtables
((
void
(
*
)())
0
,
finish_sigtable_vardecl
);
for
(
vars
=
getdecls
();
vars
;
vars
=
TREE_CHAIN
(
vars
))
{
...
...
gcc/cp/sig.c
View file @
311862c8
...
...
@@ -591,6 +591,7 @@ build_signature_table_constructor (sig_ty, rhs)
offset
=
integer_zero_node
;
pfn
=
build_unary_op
(
ADDR_EXPR
,
rhs_method
,
0
);
TREE_TYPE
(
pfn
)
=
ptr_type_node
;
TREE_ADDRESSABLE
(
rhs_method
)
=
1
;
}
tbl_entry
=
tree_cons
(
NULL_TREE
,
code
,
...
...
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