From: Jason Merrill Date: Tue, 26 Aug 1997 01:34:48 +0000 (+0000) Subject: input.c (sub_getch): Eventually give up and release the input file. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=818045b6d8b8fad3b60cbd602499025cb9206d19;p=gcc.git 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 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7cd6bedb4e8..f136f0c6f37 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ Mon Aug 25 14:30:02 1997 Jason Merrill + * 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 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index fff54e64a58..1f755cc7dfe 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 e884ed2ebb8..cb9dfa8b71f 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++]; }