+2015-11-17 Simon Marchi <simon.marchi@ericsson.com>
+
+ * c-exp.y (exp): Adjust, change enum c_string_type to
+ c_string_type.
+ (parse_string_or_char): Likewise.
+ * c-lang.c (charset_for_string_type): Likewise.
+ (classify_type): Likewise.
+ (c_printchar): Likewise.
+ (c_printstr): Likewise.
+ (evaluate_subexp_c): Likewise. And change cast to enum
+ c_string_type_values.
+ * c-lang.h: Include "common/enum_flags.h".
+ (enum c_string_type): Rename to...
+ (enum c_string_type_values): ...this.
+ (c_string_type): Define new enum flags type.
+
2015-11-17 Pedro Alves <palves@redhat.com>
* btrace.h: Include common/enum-flags.h.
exp : string_exp
{
int i;
- enum c_string_type type = C_STRING;
+ c_string_type type = C_STRING;
for (i = 0; i < $1.len; ++i)
{
if (type != C_STRING
&& type != $1.tokens[i].type)
error (_("Undefined string concatenation."));
- type = (enum c_string_type) $1.tokens[i].type;
+ type = (enum c_string_type_values) $1.tokens[i].type;
break;
default:
/* internal error */
struct typed_stoken *value, int *host_chars)
{
int quote;
- enum c_string_type type;
+ c_string_type type;
int is_objc = 0;
/* Build the gdb internal form of the input string in tempbuf. Note
character set name. */
static const char *
-charset_for_string_type (enum c_string_type str_type,
- struct gdbarch *gdbarch)
+charset_for_string_type (c_string_type str_type, struct gdbarch *gdbarch)
{
switch (str_type & ~C_CHAR)
{
characters of this type in target BYTE_ORDER to the host character
set. */
-static enum c_string_type
+static c_string_type
classify_type (struct type *elttype, struct gdbarch *gdbarch,
const char **encoding)
{
- enum c_string_type result;
+ c_string_type result;
/* We loop because ELTTYPE may be a typedef, and we want to
successively peel each typedef until we reach a type we
void
c_printchar (int c, struct type *type, struct ui_file *stream)
{
- enum c_string_type str_type;
+ c_string_type str_type;
str_type = classify_type (type, get_type_arch (type), NULL);
switch (str_type)
const char *user_encoding, int force_ellipses,
const struct value_print_options *options)
{
- enum c_string_type str_type;
+ c_string_type str_type;
const char *type_encoding;
const char *encoding;
struct obstack output;
struct cleanup *cleanup;
struct value *result;
- enum c_string_type dest_type;
+ c_string_type dest_type;
const char *dest_charset;
int satisfy_expected = 0;
++*pos;
limit = *pos + BYTES_TO_EXP_ELEM (oplen + 1);
- dest_type
- = (enum c_string_type) longest_to_int (exp->elts[*pos].longconst);
+ dest_type = ((enum c_string_type_values)
+ longest_to_int (exp->elts[*pos].longconst));
switch (dest_type & ~C_CHAR)
{
case C_STRING:
#include "value.h"
#include "macroexp.h"
#include "parser-defs.h"
+#include "common/enum-flags.h"
/* The various kinds of C string and character. Note that these
values are chosen so that they may be or'd together in certain
ways. */
-enum c_string_type
+enum c_string_type_values
{
/* An ordinary string: "value". */
C_STRING = 0,
C_CHAR_32 = 7
};
+DEF_ENUM_FLAGS_TYPE (enum c_string_type_values, c_string_type);
+
/* Defined in c-exp.y. */
extern int c_parse (struct parser_state *);