diff options
author | Zack Weinberg <zack@rabi.phys.columbia.edu> | 1998-10-29 11:54:13 +0000 |
---|---|---|
committer | Dave Brolley <brolley@gcc.gnu.org> | 1998-10-29 06:54:13 -0500 |
commit | add7091b5b09593736c839d9ffa33d74f5d7cb61 (patch) | |
tree | 7471f4f8da9d046f66479432942077da10b066ef /gcc/cpplib.h | |
parent | 0fc1434bd0b2e9c1f3649d8b1df27e37403dda33 (diff) | |
download | gcc-add7091b5b09593736c839d9ffa33d74f5d7cb61.zip gcc-add7091b5b09593736c839d9ffa33d74f5d7cb61.tar.gz gcc-add7091b5b09593736c839d9ffa33d74f5d7cb61.tar.bz2 |
[multiple changes]
1998-10-28 16:10 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
(lang_init): Call check_newline always.
* c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
cpp_start_read, set yy_cur and yy_lim to read from
parse_in.token_buffer, so that we'll see the first #line
directive.
* cpplib.c (cpp_start_read): finclude the main input file
before processing -include/-imacros. Process -imacros and
-include separately, and handle -include by stacking a
buffer for the file in question as if it'd been #included.
* toplev.c (documented_lang_options) Recognize -H when
USE_CPPLIB is on.
1998-10-28 16:09 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.c: Merge do_once into do_pragma. Break file handling
code out of do_include.
Move append_include_chain, deps_output,
file_cleanup, redundant_include_p, import_hash,
lookup_import, add_import, read_filename_string, read_name_map,
open_include_file, finclude, safe_read to cppfiles.c.
Move prototypes for deps_output, append_include_chain,
finclude to cpplib.h. Move definition of struct
file_name_list there also.
* cppfiles.c: New file. Contains all the above functions
broken out of cpplib.c; also hack_vms_include_specification
from cccp.c and find_include_file, a new function broken out of
do_include.
* Makefile.in (cppmain): Depend on cppfiles.o.
(fix-header): Likewise.
(cppfiles.o): New target.
* configure.in (--enable-c-cpplib): Add cppfiles.o to
extra_c_objs. Add ../cppfiles.o to extra_cxx_objs.
From-SVN: r23424
Diffstat (limited to 'gcc/cpplib.h')
-rw-r--r-- | gcc/cpplib.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/cpplib.h b/gcc/cpplib.h index ab63719..3ff0c92 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -510,6 +510,27 @@ struct cpp_options { #define CPP_PEDANTIC(PFILE) (CPP_OPTIONS (PFILE)->pedantic) #define CPP_PRINT_DEPS(PFILE) (CPP_OPTIONS (PFILE)->print_deps) +struct file_name_list + { + struct file_name_list *next; + char *fname; + /* If the following is nonzero, it is a macro name. + Don't include the file again if that macro is defined. */ + U_CHAR *control_macro; + /* If the following is nonzero, it is a C-language system include + directory. */ + int c_system_include_path; + /* Mapping of file names for this directory. */ + struct file_name_map *name_map; + /* Non-zero if name_map is valid. */ + int got_name_map; + }; + +/* If a buffer's dir field is SELF_DIR_DUMMY, it means the file was found + via the same directory as the file that #included it. */ +#define SELF_DIR_DUMMY ((struct file_name_list *) (~0)) + + /* Name under which this program was invoked. */ extern char *progname; @@ -623,6 +644,8 @@ struct definition { }; extern unsigned char is_idchar[256]; +extern unsigned char is_hor_space[256]; +extern unsigned char is_space[256]; /* Stack of conditionals currently in progress (including both successful and failing conditionals). */ @@ -685,6 +708,25 @@ extern void cpp_pfatal_with_name PROTO ((cpp_reader *, const char *)); extern void cpp_file_line_for_message PROTO ((cpp_reader *, char *, int, int)); extern void cpp_print_containing_files PROTO ((cpp_reader *)); +/* In cppfiles.c */ +extern void append_include_chain PROTO ((cpp_reader *, + struct file_name_list *, + struct file_name_list *)); +extern int finclude PROTO ((cpp_reader *, int, char *, + int, struct file_name_list *)); +extern int find_include_file PROTO ((cpp_reader *, char *, + unsigned long, char *, int, + struct file_name_list *, + struct file_name_list **)); +extern void deps_output PROTO ((cpp_reader *, char *, int)); + +/* Bleargh. */ +extern char *savestring PROTO ((char *)); +#ifndef INCLUDE_LEN_FUDGE +#define INCLUDE_LEN_FUDGE 0 +#endif + + #ifdef __cplusplus } #endif |