# 3 "msg_348.c"
static const char *str;
enum color {
red,
green,
blue
};
const char *
color_name(enum color color)
{
static const char *name[] = {
"red",
"green",
"blue"
};
return name[color];
}
const char *
color_name_too_few(enum color color)
{
static const char *name[] = {
"red",
"green"
};
return name[color];
}
const char *
color_name_too_many(enum color color)
{
static const char *name[] = {
"red",
"green",
"blue",
"black"
};
return name[color];
}
const char *
color_name_computed_index(enum color color)
{
static const char *name[] = {
"unused",
"red",
"green",
"blue"
};
return name[color + 1];
}
const char *
color_name_cast_from_int(int c)
{
static const char *name[] = {
"unused",
"red",
"green",
"blue"
};
return name[(enum color)(c + 1)];
}
const char *
color_name_explicit_cast_to_int(enum color color)
{
static const char *name[] = {
"red",
"green",
};
return name[(int)color];
}
const char *
color_name_computed_pointer(enum color color, const char *name)
{
return (&name)[color];
}
void
color_initial_letter(enum color color)
{
static const char len_2_null[] = "RG";
static const char len_3_null[] = "RGB";
static const char len_4_null[] = "RGB_";
static const char len_2_of_3[3] = "RG";
static const char len_3_of_3[3] = "RGB";
static const char len_4_of_4[4] = "RGB_";
if (len_2_null[color] != '\0')
return;
if (len_3_null[color] != '\0')
return;
if (len_4_null[color] != '\0')
return;
if (len_2_of_3[color] != '\0')
return;
if (len_3_of_3[color] != '\0')
return;
if (len_4_of_4[color])
return;
}
extern const char *incomplete_color_name[];
const char *
color_name_incomplete_array(enum color color)
{
return incomplete_color_name[color];
}
enum large {
min = -1LL << 40,
max = 1LL << 40,
zero = 0
};
const char *
large_name(enum large large)
{
static const char *name[] = {
"dummy",
};
return name[large];
}
enum color_with_count {
cc_red,
cc_green,
cc_blue,
cc_num_values
};
const char *
color_with_count_name(enum color_with_count color)
{
static const char *const name[] = { "red", "green", "blue" };
return name[color];
}
const char *
color_with_num(enum color_with_count color)
{
static const char *const name[] = { "r", "g", "b", "num" };
return name[color];
}
enum color_with_uc_count {
CC_RED,
CC_GREEN,
CC_BLUE,
CC_NUM_VALUES
};
const char *
color_with_uc_count_name(enum color_with_uc_count color)
{
static const char *const name[] = { "red", "green", "blue" };
return name[color];
}
enum uppercase_max {
M_FIRST,
M_SECOND,
M_MAX
};
const char *
uppercase_max_name(enum uppercase_max x)
{
static const char *const name[] = { "first", "second" };
return name[x];
}
enum lowercase_max {
M_first,
M_second,
M_max
};
const char *
lowercase_max_name(enum lowercase_max x)
{
static const char *const name[] = { "first", "second" };
return name[x];
}
enum uppercase_n {
UPPERCASE_N_FIRST,
UPPERCASE_N_LAST,
N_UPPERCASE_N,
};
const char*
uppercase_n_name(enum uppercase_n x)
{
static const char *const name[] = { "first", "last" };
return name[x];
}
enum unit_prefix {
NONE = 0, KILO = 1, MEGA = 2
};
char
unit_name(enum unit_prefix prefix)
{
char name;
static const char name_short[] = "-K";
name = name_short[prefix];
name = "-K"[prefix];
static const char name_no_nul[] = { '-', 'K', 'M' };
name = name_no_nul[prefix];
name = (char[]){'-', 'K', 'M'}[prefix];
static const char name_nul[] = "-KM";
name = name_nul[prefix];
name = "-KM"[prefix];
static const char name_long[] = "-KMG";
name = name_long[prefix];
name = "-KMG"[prefix];
return name;
}
void
prefix_last(void)
{
enum {
FIRST_CONSTANT,
MIDDLE_CONSTANT,
LAST_CONSTANT,
} x = FIRST_CONSTANT;
static const char *name_ok[] = { "first", "middle" };
str = name_ok[x];
static const char *name_too_short[] = { "first" };
str = name_too_short[x];
}
void
prefix_count(void)
{
enum {
FIRST_CONSTANT,
MIDDLE_CONSTANT,
COUNT_CONSTANT,
} x = FIRST_CONSTANT;
static const char *name_ok[] = { "first", "middle" };
str = name_ok[x];
static const char *name_too_short[] = { "first" };
str = name_too_short[x];
}
void
suffix_count(void)
{
enum {
FIRST_CONSTANT,
MIDDLE_CONSTANT,
CONSTANT_COUNT,
} x = FIRST_CONSTANT;
static const char *name_ok[] = { "first", "middle" };
str = name_ok[x];
static const char *name_too_short[] = { "first" };
str = name_too_short[x];
}
void
suffix_end(void)
{
enum {
FIRST_CONSTANT,
MIDDLE_CONSTANT,
CONSTANT_end,
} x = FIRST_CONSTANT;
static const char *name_ok[] = { "first", "middle" };
str = name_ok[x];
static const char *name_too_short[] = { "first" };
str = name_too_short[x];
}