diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1997-08-26 01:34:48 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1997-08-25 21:34:48 -0400 |
commit | 818045b6d8b8fad3b60cbd602499025cb9206d19 (patch) | |
tree | 0c94c8d16ac626da18238f852f028d81395006da /gcc | |
parent | 3e68fa831129e7717a961aeda8358e62d3d467e9 (diff) | |
download | gcc-818045b6d8b8fad3b60cbd602499025cb9206d19.zip gcc-818045b6d8b8fad3b60cbd602499025cb9206d19.tar.gz gcc-818045b6d8b8fad3b60cbd602499025cb9206d19.tar.bz2 |
input.c (sub_getch): Eventually give up and release the input file.
* input.c (sub_getch): Eventually give up and release the input file.
* decl.c (cp_finish_decl): If #p i/i, put inline statics in the
right place.
From-SVN: r14923
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 9 | ||||
-rw-r--r-- | gcc/cp/input.c | 8 |
3 files changed, 19 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7cd6bed..f136f0c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com> + * input.c (sub_getch): Eventually give up and release the input file. + + * decl.c (cp_finish_decl): If #p i/i, put inline statics in the + right place. + * call.c (joust): Tweak message. Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net> diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index fff54e6..1f755cc 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -6580,10 +6580,15 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags) && DECL_THIS_INLINE (current_function_decl) && DECL_PUBLIC (current_function_decl)) { + if (DECL_INTERFACE_KNOWN (current_function_decl)) + { + TREE_PUBLIC (decl) = 1; + DECL_EXTERNAL (decl) = DECL_EXTERNAL (current_function_decl); + } /* We can only do this if we can use common or weak, and we can't if it has been initialized and we don't support weak. */ - if (DECL_INITIAL (decl) == NULL_TREE - || DECL_INITIAL (decl) == error_mark_node) + else if (DECL_INITIAL (decl) == NULL_TREE + || DECL_INITIAL (decl) == error_mark_node) { TREE_PUBLIC (decl) = 1; DECL_COMMON (decl) = 1; diff --git a/gcc/cp/input.c b/gcc/cp/input.c index e884ed2..cb9dfa8 100644 --- a/gcc/cp/input.c +++ b/gcc/cp/input.c @@ -158,7 +158,13 @@ sub_getch () if (input->offset >= input->length) { my_friendly_assert (putback_char == -1, 223); - return EOF; + ++(input->offset); + if (input->offset - input->length < 64) + return EOF; + + /* We must be stuck in an error-handling rule; give up. */ + end_input (); + return getch (); } return (unsigned char)input->str[input->offset++]; } |