From 1946537baae0c1012b0ab5a58c4f514189d885f5 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 26 Jul 1999 22:24:00 +0000 Subject: [PATCH] input.c (feed_input): Add file, line parms. * input.c (feed_input): Add file, line parms. * lex.c (begin_definition_of_inclass_inline, feed_defarg): Adjust. (real_yylex): Check linemode before input_redirected(). * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL from op new to warning. From-SVN: r28276 --- gcc/cp/ChangeLog | 9 +++++++++ gcc/cp/input.c | 11 +++++++++-- gcc/cp/lex.c | 24 +++++++++++++++--------- gcc/cp/typeck.c | 2 +- 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3e836d84ec8..afa0b86e8ac 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,12 @@ +1999-07-26 Jason Merrill + + * input.c (feed_input): Add file, line parms. + * lex.c (begin_definition_of_inclass_inline, feed_defarg): Adjust. + (real_yylex): Check linemode before input_redirected(). + + * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL + from op new to warning. + 1999-07-26 Mark Mitchell * cp-tree.h (ncp_convert): Rename to perform_implicit_conversion. diff --git a/gcc/cp/input.c b/gcc/cp/input.c index 5feb1fd17e7..12ad47ba521 100644 --- a/gcc/cp/input.c +++ b/gcc/cp/input.c @@ -69,7 +69,7 @@ extern unsigned char *yy_cur, *yy_lim; extern int yy_get_token (); #endif -extern void feed_input PROTO((char *, int)); +extern void feed_input PROTO((char *, int, char *, int)); extern void put_input PROTO((int)); extern void put_back PROTO((int)); extern int getch PROTO((void)); @@ -110,9 +110,11 @@ free_input (inp) inline void -feed_input (str, len) +feed_input (str, len, file, line) char *str; int len; + char *file; + int line; { struct input_source *inp = allocate_input (); @@ -126,6 +128,9 @@ feed_input (str, len) my_friendly_abort (990710); cpp_push_buffer (&parse_in, str, len); CPP_BUFFER (&parse_in)->manual_pop = 1; + CPP_BUFFER (&parse_in)->nominal_fname + = CPP_BUFFER (&parse_in)->fname = file; + CPP_BUFFER (&parse_in)->lineno = line; #else inp->str = str; inp->length = len; @@ -134,6 +139,8 @@ feed_input (str, len) putback.buffer = NULL; putback.buffer_size = 0; putback.index = -1; + lineno = line; + input_filename = file; #endif inp->next = input; inp->filename = input_filename; diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index a2f2be54b6b..d1d18a47f37 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -1266,9 +1266,7 @@ begin_definition_of_inclass_inline (pi) if (context) push_cp_function_context (context); - feed_input (pi->buf, pi->len); - lineno = pi->lineno; - input_filename = pi->filename; + feed_input (pi->buf, pi->len, pi->filename, pi->lineno); yychar = PRE_PARSED_FUNCTION_DECL; yylval.ttype = build_tree_list ((tree) pi, pi->fndecl); /* Pass back a handle to the rest of the inline functions, so that they @@ -1878,12 +1876,20 @@ feed_defarg (f, p) tree f, p; { tree d = TREE_PURPOSE (p); - feed_input (DEFARG_POINTER (d), DEFARG_LENGTH (d)); + char *file; + int line; if (TREE_CODE (f) == FUNCTION_DECL) { - lineno = DECL_SOURCE_LINE (f); - input_filename = DECL_SOURCE_FILE (f); + line = DECL_SOURCE_LINE (f); + file = DECL_SOURCE_FILE (f); } + else + { + line = lineno; + file = input_filename; + } + + feed_input (DEFARG_POINTER (d), DEFARG_LENGTH (d), file, line); yychar = DEFARG_MARKER; yylval.ttype = p; } @@ -3557,10 +3563,10 @@ real_yylex () case EOF: end_of_file = 1; token_buffer[0] = 0; - if (input_redirected ()) - value = END_OF_SAVED_INPUT; - else if (linemode) + if (linemode) value = END_OF_LINE; + else if (input_redirected ()) + value = END_OF_SAVED_INPUT; else value = ENDFILE; break; diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 506fa9c1217..64a6dadee12 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -6757,7 +6757,7 @@ c_expand_return (retval) || DECL_NAME (current_function_decl) == ansi_opname[(int) VEC_NEW_EXPR]) && !TYPE_NOTHROW_P (TREE_TYPE (current_function_decl)) && null_ptr_cst_p (retval)) - cp_pedwarn ("operator new should throw an exception, not return NULL"); + cp_warning ("operator new should throw an exception, not return NULL"); if (retval == NULL_TREE) { -- 2.30.2