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>
* 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 ()
vtype
,
NOT_BUILT_IN
);
terminate_fndecl
=
auto_function
(
get_identifier
(
"terminate"
),
vtype
,
NOT_BUILT_IN
);
TREE_THIS_VOLATILE
(
terminate_fndecl
)
=
1
;
push_lang_context
(
lang_name_c
);
...
...
@@ -916,25 +917,11 @@ expand_end_eh_spec (raises)
void
expand_exception_blocks
()
{
rtx
funcend
;
rtx
insns
;
start_sequence
();
funcend
=
gen_label_rtx
();
start_sequence
();
/* Add all the catch clauses here. */
emit_insns
(
catch_clauses
);
catch_clauses
=
NULL_RTX
;
push_to_sequence
(
catch_clauses
);
expand_leftover_cleanups
();
insns
=
get_insns
();
catch_clauses
=
get_insns
();
end_sequence
();
#if 1
/* Do this after we expand leftover cleanups, so that 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
...
...
@@ -942,20 +929,17 @@ expand_exception_blocks ()
if
(
TYPE_RAISES_EXCEPTIONS
(
TREE_TYPE
(
current_function_decl
)))
{
expand_end_eh_spec
(
TYPE_RAISES_EXCEPTIONS
(
TREE_TYPE
(
current_function_decl
)));
push_to_sequence
(
insns
);
/* Now expand any new ones. */
push_to_sequence
(
catch_clauses
);
expand_leftover_cleanups
();
insns
=
get_insns
();
catch_clauses
=
get_insns
();
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
EH region through the top of the region, as we have to with
the setjmp/longjmp approach. */
...
...
@@ -967,23 +951,16 @@ expand_exception_blocks ()
expand_eh_region_start
();
}
emit_insns
(
insns
);
emit_insns
(
catch_clauses
);
catch_clauses
=
NULL_RTX
;
if
(
exceptions_via_longjmp
==
0
)
expand_eh_region_end
(
TerminateFunctionCall
);
expand_leftover_cleanups
();
}
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
);
emit_label
(
funcend
);
}
}
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