diff options
author | Nathan Sidwell <nathan@acm.org> | 2020-05-19 13:20:32 -0700 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2020-05-19 13:23:47 -0700 |
commit | 7cf3f604fb102ba67ce3abe7e97440b4ed0da92e (patch) | |
tree | ec6a6db751a99154923cb1cc9f884eaf244d7680 | |
parent | 98452668d362bb9e6358f7eb5cff69f4f5ab1d45 (diff) | |
download | gcc-7cf3f604fb102ba67ce3abe7e97440b4ed0da92e.zip gcc-7cf3f604fb102ba67ce3abe7e97440b4ed0da92e.tar.gz gcc-7cf3f604fb102ba67ce3abe7e97440b4ed0da92e.tar.bz2 |
preprocessor: Random cleanups
This fixes a bunch of poorly formatted decls, marks some getters as
PURE, deletes some C-relevant bool hackery, and finally uses a
passed-in location rather than deducing a closely-related but not
necessarily the same location.
* include/cpplib.h (cpp_get_otions, cpp_get_callbacks)
(cpp_get_deps): Mark as PURE.
* include/line-map.h (get_combined_adhoc_loc)
(get_location_from_adhoc_loc, get_pure_location): Reformat decls.
* internal.h (struct lexer_state): Clarify comment.
* system.h: Remove now-unneeded bool hackery.
* files.c (_cpp_find_file): Store LOC not highest_location.
-rw-r--r-- | libcpp/ChangeLog | 8 | ||||
-rw-r--r-- | libcpp/files.c | 6 | ||||
-rw-r--r-- | libcpp/include/cpplib.h | 6 | ||||
-rw-r--r-- | libcpp/include/line-map.h | 11 | ||||
-rw-r--r-- | libcpp/internal.h | 2 | ||||
-rw-r--r-- | libcpp/system.h | 20 |
6 files changed, 19 insertions, 34 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 5bfa184..040de52 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,5 +1,13 @@ 2020-05-18 Nathan Sidwell <nathan@acm.org> + * include/cpplib.h (cpp_get_otions, cpp_get_callbacks) + (cpp_get_deps): Mark as PURE. + * include/line-map.h (get_combined_adhoc_loc) + (get_location_from_adhoc_loc, get_pure_location): Reformat decls. + * internal.h (struct lexer_state): Clarify comment. + * system.h: Remove now-unneeded bool hackery. + * files.c (_cpp_find_file): Store LOC not highest_location. + PR preprocessor/95149 * lex.c (struct lit_accum): New. (bufring_append): Replace by lit_accum::append. diff --git a/libcpp/files.c b/libcpp/files.c index 260e787..f25b58d 100644 --- a/libcpp/files.c +++ b/libcpp/files.c @@ -635,7 +635,7 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, entry = new_file_hash_entry (pfile); entry->next = (struct cpp_file_hash_entry *) *hash_slot; entry->start_dir = start_dir; - entry->location = pfile->line_table->highest_location; + entry->location = loc; entry->u.file = file; *hash_slot = (void *) entry; @@ -648,7 +648,7 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, entry = new_file_hash_entry (pfile); entry->next = (struct cpp_file_hash_entry *) *hash_slot; entry->start_dir = pfile->bracket_include; - entry->location = pfile->line_table->highest_location; + entry->location = loc; entry->u.file = file; *hash_slot = (void *) entry; } @@ -659,7 +659,7 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, entry = new_file_hash_entry (pfile); entry->next = (struct cpp_file_hash_entry *) *hash_slot; entry->start_dir = pfile->quote_include; - entry->location = pfile->line_table->highest_location; + entry->location = loc; entry->u.file = file; *hash_slot = (void *) entry; } diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h index 7f47402..544735a 100644 --- a/libcpp/include/cpplib.h +++ b/libcpp/include/cpplib.h @@ -969,10 +969,10 @@ extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int); call cpp_finish on that reader. You can either edit the callbacks through the pointer returned from cpp_get_callbacks, or set them with cpp_set_callbacks. */ -extern cpp_options *cpp_get_options (cpp_reader *); -extern cpp_callbacks *cpp_get_callbacks (cpp_reader *); +extern cpp_options *cpp_get_options (cpp_reader *) ATTRIBUTE_PURE; +extern cpp_callbacks *cpp_get_callbacks (cpp_reader *) ATTRIBUTE_PURE; extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *); -extern class mkdeps *cpp_get_deps (cpp_reader *); +extern class mkdeps *cpp_get_deps (cpp_reader *) ATTRIBUTE_PURE; /* This function reads the file, but does not start preprocessing. It returns the name of the original file; this is the same as the diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h index dbbc137..217f916 100644 --- a/libcpp/include/line-map.h +++ b/libcpp/include/line-map.h @@ -1024,13 +1024,11 @@ LINEMAPS_LAST_ALLOCATED_MACRO_MAP (const line_maps *set) return (line_map_macro *)LINEMAPS_LAST_ALLOCATED_MAP (set, true); } -extern location_t get_combined_adhoc_loc (class line_maps *, - location_t, - source_range, - void *); +extern location_t get_combined_adhoc_loc (line_maps *, location_t, + source_range, void *); extern void *get_data_from_adhoc_loc (const line_maps *, location_t); extern location_t get_location_from_adhoc_loc (const line_maps *, - location_t); + location_t); extern source_range get_range_from_loc (line_maps *set, location_t loc); @@ -1043,8 +1041,7 @@ pure_location_p (line_maps *set, location_t loc); /* Given location LOC within SET, strip away any packed range information or ad-hoc information. */ -extern location_t get_pure_location (line_maps *set, - location_t loc); +extern location_t get_pure_location (line_maps *set, location_t loc); /* Combine LOC and BLOCK, giving a combined adhoc location. */ diff --git a/libcpp/internal.h b/libcpp/internal.h index 11b6469..765ff9d 100644 --- a/libcpp/internal.h +++ b/libcpp/internal.h @@ -275,7 +275,7 @@ struct lexer_state /* Nonzero to skip evaluating part of an expression. */ unsigned int skip_eval; - /* Nonzero when handling a deferred pragma. */ + /* Nonzero when tokenizing a deferred pragma. */ unsigned char in_deferred_pragma; /* Nonzero if the deferred pragma being handled allows macro expansion. */ diff --git a/libcpp/system.h b/libcpp/system.h index 37fc262..0a0629d 100644 --- a/libcpp/system.h +++ b/libcpp/system.h @@ -422,26 +422,6 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; #define gcc_checking_assert(EXPR) ((void)(0 && (EXPR))) #endif -/* Provide a fake boolean type. We make no attempt to use the - C99 _Bool, as it may not be available in the bootstrap compiler, - and even if it is, it is liable to be buggy. - This must be after all inclusion of system headers, as some of - them will mess us up. */ -#undef bool -#undef true -#undef false -#undef TRUE -#undef FALSE - -#ifndef __cplusplus -#define bool unsigned char -#endif -#define true 1 -#define false 0 - -/* Some compilers do not allow the use of unsigned char in bitfields. */ -#define BOOL_BITFIELD unsigned int - /* Poison identifiers we do not want to use. */ #if (GCC_VERSION >= 3000) #undef calloc |