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
e00737d2
Commit
e00737d2
authored
May 29, 1997
by
Mike Stump
Committed by
Mike Stump
May 29, 1997
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
91th Cygnus<->FSF quick merge
From-SVN: r14139
parent
f3e10ef2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
36 deletions
+24
-36
gcc/cp/ChangeLog
+11
-0
gcc/cp/except.c
+13
-36
No files found.
gcc/cp/ChangeLog
View file @
e00737d2
Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
* except.c (expand_exception_blocks): Simplify and fix and make
sure we don't end a region in a sequence, as expand_end_bindings
doesn't like it.
Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
* except.c (init_exception_processing): Mark terminate as not
returning so that the optimizer can optimize better.
Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
* cvt.c (convert): Don't do any extra work, if we can avoid it
* cvt.c (convert): Don't do any extra work, if we can avoid it
...
...
gcc/cp/except.c
View file @
e00737d2
...
@@ -262,6 +262,7 @@ init_exception_processing ()
...
@@ -262,6 +262,7 @@ init_exception_processing ()
vtype
,
NOT_BUILT_IN
);
vtype
,
NOT_BUILT_IN
);
terminate_fndecl
=
auto_function
(
get_identifier
(
"terminate"
),
terminate_fndecl
=
auto_function
(
get_identifier
(
"terminate"
),
vtype
,
NOT_BUILT_IN
);
vtype
,
NOT_BUILT_IN
);
TREE_THIS_VOLATILE
(
terminate_fndecl
)
=
1
;
push_lang_context
(
lang_name_c
);
push_lang_context
(
lang_name_c
);
...
@@ -916,25 +917,11 @@ expand_end_eh_spec (raises)
...
@@ -916,25 +917,11 @@ expand_end_eh_spec (raises)
void
void
expand_exception_blocks
()
expand_exception_blocks
()
{
{
rtx
funcend
;
push_to_sequence
(
catch_clauses
);
rtx
insns
;
start_sequence
();
funcend
=
gen_label_rtx
();
start_sequence
();
/* Add all the catch clauses here. */
emit_insns
(
catch_clauses
);
catch_clauses
=
NULL_RTX
;
expand_leftover_cleanups
();
expand_leftover_cleanups
();
catch_clauses
=
get_insns
();
insns
=
get_insns
();
end_sequence
();
end_sequence
();
#if 1
/* Do this after we expand leftover cleanups, so that the
/* Do this after we expand leftover cleanups, so that the
expand_eh_region_end that expand_end_eh_spec does will match the
expand_eh_region_end that expand_end_eh_spec does will match the
right expand_eh_region_start, and make sure it comes out before
right expand_eh_region_start, and make sure it comes out before
...
@@ -942,20 +929,17 @@ expand_exception_blocks ()
...
@@ -942,20 +929,17 @@ expand_exception_blocks ()
if
(
TYPE_RAISES_EXCEPTIONS
(
TREE_TYPE
(
current_function_decl
)))
if
(
TYPE_RAISES_EXCEPTIONS
(
TREE_TYPE
(
current_function_decl
)))
{
{
expand_end_eh_spec
(
TYPE_RAISES_EXCEPTIONS
(
TREE_TYPE
(
current_function_decl
)));
expand_end_eh_spec
(
TYPE_RAISES_EXCEPTIONS
(
TREE_TYPE
(
current_function_decl
)));
push_to_sequence
(
insns
);
push_to_sequence
(
catch_clauses
);
/* Now expand any new ones. */
expand_leftover_cleanups
();
expand_leftover_cleanups
();
catch_clauses
=
get_insns
();
insns
=
get_insns
();
end_sequence
();
end_sequence
();
}
}
#endif
emit_jump
(
funcend
);
if
(
insn
s
)
if
(
catch_clause
s
)
{
{
rtx
funcend
=
gen_label_rtx
();
emit_jump
(
funcend
);
/* We cannot protect n regions this way if we must flow into the
/* We cannot protect n regions this way if we must flow into the
EH region through the top of the region, as we have to with
EH region through the top of the region, as we have to with
the setjmp/longjmp approach. */
the setjmp/longjmp approach. */
...
@@ -967,23 +951,16 @@ expand_exception_blocks ()
...
@@ -967,23 +951,16 @@ expand_exception_blocks ()
expand_eh_region_start
();
expand_eh_region_start
();
}
}
emit_insns
(
insns
);
emit_insns
(
catch_clauses
);
catch_clauses
=
NULL_RTX
;
if
(
exceptions_via_longjmp
==
0
)
if
(
exceptions_via_longjmp
==
0
)
expand_eh_region_end
(
TerminateFunctionCall
);
expand_eh_region_end
(
TerminateFunctionCall
);
expand_leftover_cleanups
();
expand_leftover_cleanups
();
}
emit_label
(
funcend
);
emit_label
(
funcend
);
}
/* Only if we had previous insns do we want to emit the jump around
them. If there weren't any, then insns will remain NULL_RTX. */
if
(
insns
)
insns
=
get_insns
();
end_sequence
();
emit_insns
(
insns
);
}
}
tree
tree
...
...
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