diff options
author | Zack Weinberg <zack@wolery.cumb.org> | 2000-03-02 20:14:32 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2000-03-02 20:14:32 +0000 |
commit | c45da1ca925d67685ca633b48a4ca1ec44dfaca1 (patch) | |
tree | 83b50be95e2db0783f35dfe9f8625210e9368a40 /gcc/cpplib.c | |
parent | e97f22c9757e8c7bbf123b6ec1af68791f41d6fa (diff) | |
download | gcc-c45da1ca925d67685ca633b48a4ca1ec44dfaca1.zip gcc-c45da1ca925d67685ca633b48a4ca1ec44dfaca1.tar.gz gcc-c45da1ca925d67685ca633b48a4ca1ec44dfaca1.tar.bz2 |
cppfiles.c (cpp_read_file): New function.
* cppfiles.c (cpp_read_file): New function.
* cpphash.c (collect_expansion): Make sure to reset last_token
to NORM when we hit a string. Handle trailing whitespace
properly when the expansion is empty.
(create_definition): Disable line commands while parsing the
directive line.
(dump_definition): If pfile->lineno == 0, output a line
command ahead of the dump, and add a trailing newline.
* cppinit.c (append_include_chain): Add fifth argument, which
indicates whether or not system headers are C++ aware.
(initialize_standard_includes): New function,
broken out of read_and_prescan. Pass 'cxx_aware' value from
the include_defaults_array on to append_include_chain.
(dump_special_to_buffer): Const-ify char array.
(builtin_array): Don't dump __BASE_FILE__.
(cpp_start_read): Use cpp_read_file. Reorder code for
clarity. Don't output line commands here for -D/-A/-U
switches. Don't call deps_output for files included with
-include or -imacros.
* cpplib.c (do_define): Don't pay any attention to the second
argument.
(cpp_expand_to_buffer): Disable line commands while scanning.
(output_line_command): Work in the file buffer.
* cpplib.h: Remove no_record_file flag from struct cpp_reader.
Fix formatting of comments. Prototype cpp_read_file.
From-SVN: r32293
Diffstat (limited to 'gcc/cpplib.c')
-rw-r--r-- | gcc/cpplib.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/gcc/cpplib.c b/gcc/cpplib.c index 8cdc241..c5cf674 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -654,7 +654,7 @@ get_macro_name (pfile) static int do_define (pfile, keyword) cpp_reader *pfile; - const struct directive *keyword; + const struct directive *keyword ATTRIBUTE_UNUSED; { HASHNODE *hp; DEFINITION *def; @@ -728,14 +728,11 @@ do_define (pfile, keyword) else cpp_install (pfile, sym, len, T_MACRO, (char *) def); - if (keyword != NULL && keyword->type == T_DEFINE) - { - if (CPP_OPTIONS (pfile)->debug_output - || CPP_OPTIONS (pfile)->dump_macros == dump_definitions) - dump_definition (pfile, sym, len, def); - else if (CPP_OPTIONS (pfile)->dump_macros == dump_names) - pass_thru_directive (sym, len, pfile, keyword); - } + if (CPP_OPTIONS (pfile)->debug_output + || CPP_OPTIONS (pfile)->dump_macros == dump_definitions) + dump_definition (pfile, sym, len, def); + else if (CPP_OPTIONS (pfile)->dump_macros == dump_names) + pass_thru_directive (sym, len, pfile, keyword); return 0; } @@ -876,7 +873,9 @@ cpp_expand_to_buffer (pfile, buf, length) /* Scan the input, create the output. */ save_no_output = CPP_OPTIONS (pfile)->no_output; CPP_OPTIONS (pfile)->no_output = 0; + CPP_OPTIONS (pfile)->no_line_commands++; cpp_scan_buffer (pfile); + CPP_OPTIONS (pfile)->no_line_commands--; CPP_OPTIONS (pfile)->no_output = save_no_output; CPP_NUL_TERMINATE (pfile); @@ -926,16 +925,14 @@ output_line_command (pfile, file_change) enum file_change_code file_change; { long line; - cpp_buffer *ip = CPP_BUFFER (pfile); - - if (ip->fname == NULL) - return; + cpp_buffer *ip; if (CPP_OPTIONS (pfile)->no_line_commands || CPP_OPTIONS (pfile)->no_output) return; - cpp_buf_line_and_col (CPP_BUFFER (pfile), &line, NULL); + ip = cpp_file_buffer (pfile); + cpp_buf_line_and_col (ip, &line, NULL); /* If the current file has not changed, we omit the #line if it would appear to be a no-op, and we output a few newlines instead |