diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-13 01:28:18 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-13 01:28:18 +0000 |
commit | 6df8a9dd552113f43274ba4bf09830d2525ff4e9 (patch) | |
tree | 49246e78a7ee8c4a59b8982faf4c2837e13775cb /gcc/cp/lex.c | |
parent | 73eaf1ba572d0f5c415459c0b5290104e8a953a8 (diff) | |
download | gcc-6df8a9dd552113f43274ba4bf09830d2525ff4e9.tar.gz |
gcc/cp:
* except.c (choose_personality_routine): Export. Add
explanatory comment. Take an enum languages, not a boolean.
(initialize_handler_parm): Adjust to match.
* cp-tree.h: Prototype choose_personality_routine.
* lex.c (handle_pragma_java_exceptions): New function.
(init_cp_pragma): Register #pragma GCC java_exceptions.
gcc:
* extend.texi: Document #pragma GCC java_exceptions.
libjava:
* Makefile.am (libgcj_la_OBJECTS): Remove libsupc++convenience.la.
* Makefile.in: Regenerate (by hand).
* include/jvm.h: Add #pragma GCC java_exceptions at top of file.
* doc/cni.sgml: Document #pragma GCC java_exceptions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42027 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/lex.c')
-rw-r--r-- | gcc/cp/lex.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index f005482aec1..ac4c8547556 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -61,6 +61,7 @@ static void handle_pragma_vtable PARAMS ((cpp_reader *)); static void handle_pragma_unit PARAMS ((cpp_reader *)); static void handle_pragma_interface PARAMS ((cpp_reader *)); static void handle_pragma_implementation PARAMS ((cpp_reader *)); +static void handle_pragma_java_exceptions PARAMS ((cpp_reader *)); static void cxx_init PARAMS ((void)); static void cxx_finish PARAMS ((void)); static void cxx_init_options PARAMS ((void)); @@ -687,6 +688,8 @@ init_cp_pragma () cpp_register_pragma (parse_in, "GCC", "interface", handle_pragma_interface); cpp_register_pragma (parse_in, "GCC", "implementation", handle_pragma_implementation); + cpp_register_pragma (parse_in, "GCC", "java_exceptions", + handle_pragma_java_exceptions); } const char * @@ -1181,6 +1184,18 @@ handle_pragma_implementation (dfile) } } +/* Indicate that this file uses Java-personality exception handling. */ +static void +handle_pragma_java_exceptions (dfile) + cpp_reader *dfile ATTRIBUTE_UNUSED; +{ + tree x; + if (c_lex (&x) != CPP_EOF) + warning ("junk at end of #pragma GCC java_exceptions"); + + choose_personality_routine (lang_java); +} + void do_pending_lang_change () { |