summaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2019-08-28 18:43:37 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2019-08-28 18:43:37 +0000
commita0be978a8216b58562c8eff71df977aca7d78387 (patch)
tree434fe4e0a9b38aaa633dacf3381e0bd4c8049022 /libcpp
parentfc4f90f0c8eca75fb90c736476360584f68d7ef9 (diff)
[Preprocessor] small cleanups
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01904.html * directives-only.c (_cpp_preprocess_dir_only): Use false, not zero for _cpp_handle_directive call. * directives.c (_cpp_handle_directive): Indented is bool. * files.c (struct _cpp_file): Make bools 1 bit bitfields. * internal.h (enum include_type): Reformat and comment. (struct cpp_buffer): Make flags 1 bit bitfields. (_cpp_handle_directive): Indented is bool. From-SVN: r274999
Diffstat (limited to 'libcpp')
-rw-r--r--libcpp/ChangeLog10
-rw-r--r--libcpp/directives-only.c2
-rw-r--r--libcpp/directives.c4
-rw-r--r--libcpp/files.c10
-rw-r--r--libcpp/internal.h26
5 files changed, 36 insertions, 16 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index c6e8e04b46e..61d91acb2d7 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,13 @@
+2019-08-28 Nathan Sidwell <nathan@acm.org>
+
+ * directives-only.c (_cpp_preprocess_dir_only): Use false, not
+ zero for _cpp_handle_directive call.
+ * directives.c (_cpp_handle_directive): Indented is bool.
+ * files.c (struct _cpp_file): Make bools 1 bit bitfields.
+ * internal.h (enum include_type): Reformat and comment.
+ (struct cpp_buffer): Make flags 1 bit bitfields.
+ (_cpp_handle_directive): Indented is bool.
+
2019-07-09 Martin Sebor <msebor@redhat.com>
* include/line-map.h: Change class-key from class to struct and vice
diff --git a/libcpp/directives-only.c b/libcpp/directives-only.c
index 847225af825..fae3b5b4ba4 100644
--- a/libcpp/directives-only.c
+++ b/libcpp/directives-only.c
@@ -101,7 +101,7 @@ _cpp_preprocess_dir_only (cpp_reader *pfile,
/* Ensure proper column numbering for generated error messages. */
buffer->line_base -= col - 1;
- _cpp_handle_directive (pfile, 0 /* ignore indented */);
+ _cpp_handle_directive (pfile, false /* ignore indented */);
/* Sanitize the line settings. Duplicate #include's can mess
things up. */
diff --git a/libcpp/directives.c b/libcpp/directives.c
index ddf8979d513..48271e1700e 100644
--- a/libcpp/directives.c
+++ b/libcpp/directives.c
@@ -406,13 +406,13 @@ directive_diagnostics (cpp_reader *pfile, const directive *dir, int indented)
}
}
-/* Check if we have a known directive. INDENTED is nonzero if the
+/* Check if we have a known directive. INDENTED is true if the
'#' of the directive was indented. This function is in this file
to save unnecessarily exporting dtable etc. to lex.c. Returns
nonzero if the line of tokens has been handled, zero if we should
continue processing the line. */
int
-_cpp_handle_directive (cpp_reader *pfile, int indented)
+_cpp_handle_directive (cpp_reader *pfile, bool indented)
{
const directive *dir = 0;
const cpp_token *dname;
diff --git a/libcpp/files.c b/libcpp/files.c
index 6ef6d07b897..30c0cf25519 100644
--- a/libcpp/files.c
+++ b/libcpp/files.c
@@ -98,19 +98,19 @@ struct _cpp_file
unsigned short stack_count;
/* If opened with #import or contains #pragma once. */
- bool once_only;
+ bool once_only : 1;
/* If read() failed before. */
- bool dont_read;
+ bool dont_read : 1;
/* If this file is the main file. */
- bool main_file;
+ bool main_file : 1;
/* If BUFFER above contains the true contents of the file. */
- bool buffer_valid;
+ bool buffer_valid : 1;
/* If this file is implicitly preincluded. */
- bool implicit_preinclude;
+ bool implicit_preinclude : 1;
};
/* A singly-linked list for all searches for a given file name, with
diff --git a/libcpp/internal.h b/libcpp/internal.h
index 45167a9500e..a86b58785e9 100644
--- a/libcpp/internal.h
+++ b/libcpp/internal.h
@@ -113,7 +113,17 @@ extern unsigned char *_cpp_unaligned_alloc (cpp_reader *, size_t);
#define BUFF_LIMIT(BUFF) ((BUFF)->limit)
/* #include types. */
-enum include_type {IT_INCLUDE, IT_INCLUDE_NEXT, IT_IMPORT, IT_CMDLINE, IT_DEFAULT};
+enum include_type
+ {
+ /* Directive-based including mechanisms. */
+ IT_INCLUDE, /* #include */
+ IT_INCLUDE_NEXT, /* #include_next */
+ IT_IMPORT, /* #import */
+
+ /* Non-directive including mechanisms. */
+ IT_CMDLINE, /* -include */
+ IT_DEFAULT, /* forced header */
+ };
union utoken
{
@@ -327,23 +337,23 @@ struct cpp_buffer
struct if_stack *if_stack;
/* True if we need to get the next clean line. */
- bool need_line;
+ bool need_line : 1;
/* True if we have already warned about C++ comments in this file.
The warning happens only for C89 extended mode with -pedantic on,
or for -Wtraditional, and only once per file (otherwise it would
be far too noisy). */
- unsigned int warned_cplusplus_comments : 1;
+ bool warned_cplusplus_comments : 1;
/* True if we don't process trigraphs and escaped newlines. True
for preprocessed input, command line directives, and _Pragma
buffers. */
- unsigned int from_stage3 : 1;
+ bool from_stage3 : 1;
/* At EOF, a buffer is automatically popped. If RETURN_AT_EOF is
true, a CPP_EOF token is then returned. Otherwise, the next
token from the enclosing buffer is returned. */
- unsigned int return_at_eof : 1;
+ bool return_at_eof : 1;
/* One for a system header, two for a C system header file that therefore
needs to be extern "C" protected in C++, and zero otherwise. */
@@ -419,13 +429,13 @@ struct cpp_reader
/* This is the node representing the macro being expanded at
top-level. The value of this data member is valid iff
- in_macro_expansion_p() returns TRUE. */
+ cpp_in_macro_expansion_p() returns TRUE. */
cpp_hashnode *top_most_macro_node;
/* Nonzero if we are about to expand a macro. Note that if we are
really expanding a macro, the function macro_of_context returns
the macro being expanded and this flag is set to false. Client
- code should use the function in_macro_expansion_p to know if we
+ code should use the function cpp_in_macro_expansion_p to know if we
are either about to expand a macro, or are actually expanding
one. */
bool about_to_expand_macro_p;
@@ -711,7 +721,7 @@ extern const char *cpp_named_operator2name (enum cpp_ttype type);
/* In directives.c */
extern int _cpp_test_assertion (cpp_reader *, unsigned int *);
-extern int _cpp_handle_directive (cpp_reader *, int);
+extern int _cpp_handle_directive (cpp_reader *, bool);
extern void _cpp_define_builtin (cpp_reader *, const char *);
extern char ** _cpp_save_pragma_names (cpp_reader *);
extern void _cpp_restore_pragma_names (cpp_reader *, char **);