aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpplib.h
diff options
context:
space:
mode:
authorZack Weinberg <zack@rabi.phys.columbia.edu>1998-10-29 11:54:13 +0000
committerDave Brolley <brolley@gcc.gnu.org>1998-10-29 06:54:13 -0500
commitadd7091b5b09593736c839d9ffa33d74f5d7cb61 (patch)
tree7471f4f8da9d046f66479432942077da10b066ef /gcc/cpplib.h
parent0fc1434bd0b2e9c1f3649d8b1df27e37403dda33 (diff)
downloadgcc-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.h42
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