preprocessor: Random cleanups
authorNathan Sidwell <nathan@acm.org>
Tue, 19 May 2020 20:20:32 +0000 (13:20 -0700)
committerNathan Sidwell <nathan@acm.org>
Tue, 19 May 2020 20:23:47 +0000 (13:23 -0700)
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.

libcpp/ChangeLog
libcpp/files.c
libcpp/include/cpplib.h
libcpp/include/line-map.h
libcpp/internal.h
libcpp/system.h

index 5bfa1842a6a9c38a8e2d6452fcf9e68c54a7f627..040de527b729f86fd1cdb5d9c09dccb446259fe6 100644 (file)
@@ -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.
index 260e787c329e12982e9dabfa0e125877d49d7e6e..f25b58dc394460f3ffee0bb8e70e6881ac0dcc86 100644 (file)
@@ -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;
     }
index 7f47402f9b960c4d8d2fcbc6c7b09dd5bc35a405..544735a51af75297c3559b6ec54d76acd709960a 100644 (file)
@@ -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
index dbbc13762e39dbcc9206eda5fe9dc27f18cf7145..217f916fc35c7c4f5b1fe1795f8d3a8e11c0e1f1 100644 (file)
@@ -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.  */
 
index 11b6469dccd1470ef9389b4c2ff4766a7653413e..765ff9d8206e18db4635a7ddfaddc912ba1c3a18 100644 (file)
@@ -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.  */
index 37fc262d3b0fda68809dba64e3724e7102e10e89..0a0629d557fbf232e9d3b7800daaee5bbc8e22b6 100644 (file)
@@ -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