Lines Matching refs:flags

30 function flag_set_p(regex, flags)
32 # Ignore the arguments of flags with arguments.
33 gsub ("\\([^)]+\\)", "", flags);
34 return (" " flags " ") ~ (" " regex " ")
39 function test_flag(regex, flags, string)
41 if (flag_set_p(regex, flags))
48 function flag_init(regex, flags)
50 if (flag_set_p(regex, flags))
58 function opt_args(name, flags)
60 flags = " " flags
61 if (flags !~ " " name "\\(")
63 sub(".* " name "\\(", "", flags)
64 if (flags ~ "^[{]")
66 sub ("^[{]", "", flags)
67 sub ("}\\).*", "", flags)
70 sub("\\).*", "", flags)
72 return flags
88 # Return a bitmask of CL_* values for option flags FLAGS.
89 function switch_flags (flags)
95 result = result test_flag(regex, flags, " | " macros[j])
98 test_flag("Common", flags, " | CL_COMMON") \
99 test_flag("Target", flags, " | CL_TARGET") \
100 test_flag("PchIgnore", flags, " | CL_PCH_IGNORE") \
101 test_flag("Driver", flags, " | CL_DRIVER") \
102 test_flag("Joined", flags, " | CL_JOINED") \
103 test_flag("JoinedOrMissing", flags, " | CL_JOINED") \
104 test_flag("Separate", flags, " | CL_SEPARATE") \
105 test_flag("Undocumented", flags, " | CL_UNDOCUMENTED") \
106 test_flag("NoDWARFRecord", flags, " | CL_NO_DWARF_RECORD") \
107 test_flag("Warning", flags, " | CL_WARNING") \
108 test_flag("(Optimization|PerFunction)", flags, " | CL_OPTIMIZATION") \
109 test_flag("Param", flags, " | CL_PARAMS")
114 # Return bit-field initializers for option flags FLAGS.
115 function switch_bit_fields (flags)
118 vn = var_name(flags);
121 else if (flag_set_p("Host_Wide_Int", flags)) {
123 uinteger_flag = flag_init("UInteger", flags)
128 sep_args = opt_args("Args", flags)
136 uinteger_flag = flag_init("UInteger", flags)
139 byte_size_flag = flag_init("ByteSize", flags)
146 # The following flags need to be in the same order as
150 flag_init("SeparateAlias", flags) \
151 flag_init("NegativeAlias", flags) \
152 flag_init("NoDriverArg", flags) \
153 flag_init("RejectDriver", flags) \
154 flag_init("RejectNegative", flags) \
155 flag_init("JoinedOrMissing", flags) \
158 flag_init("ToLower", flags) \
159 flag_init("Report", flags) \
168 function var_name(flags)
170 return nth_arg(0, opt_args("Var", flags))
175 function host_wide_int_var_name(flags)
177 split (flags, array, "[ \t]+")
185 function global_state_p(flags)
187 return (var_name(flags) != "" \
188 || opt_args("Mask", flags) != "" \
189 || opt_args("InverseMask", flags) != "")
194 function needs_state_p(flags)
196 return (flag_set_p("Target", flags) \
197 && !flag_set_p("Alias.*", flags) \
198 && !flag_set_p("Ignore", flags))
204 function static_var(name, flags)
206 if (global_state_p(flags) || !needs_state_p(flags))
212 # Return the type of variable that should be associated with the given flags.
213 function var_type(flags)
215 if (flag_set_p("Defer", flags))
217 else if (flag_set_p("Enum.*", flags)) {
218 en = opt_args("Enum", flags);
221 else if (!flag_set_p("Joined.*", flags) && !flag_set_p("Separate", flags))
223 else if (flag_set_p("Host_Wide_Int", flags))
225 else if (flag_set_p("UInteger", flags))
231 # Return the type of variable that should be associated with the given flags
234 function var_type_struct(flags)
236 if (flag_set_p("UInteger", flags)) {
237 if (host_wide_int[var_name(flags)] == "yes")
239 if (flag_set_p("ByteSize", flags))
243 else if (flag_set_p("Enum.*", flags)) {
244 en = opt_args("Enum", flags);
247 else if (!flag_set_p("Joined.*", flags) && !flag_set_p("Separate", flags)) {
248 if (flag_set_p(".*Mask.*", flags)) {
249 if (host_wide_int[var_name(flags)] == "yes")
261 # Given that an option has flags FLAGS, return an initializer for the
263 function var_set(flags)
265 if (flag_set_p("Defer", flags))
267 s = nth_arg(1, opt_args("Var", flags))
270 s = opt_args("Mask", flags);
272 vn = var_name(flags);
278 s = nth_arg(0, opt_args("InverseMask", flags));
280 vn = var_name(flags);
286 if (flag_set_p("Enum.*", flags)) {
287 en = opt_args("Enum", flags);
290 if (var_type(flags) == "const char *")
292 if (flag_set_p("ByteSize", flags))
297 # Given that an option called NAME has flags FLAGS, return an initializer
299 function var_ref(name, flags)
301 name = var_name(flags) static_var(name, flags)
304 if (opt_args("Mask", flags) != "")
306 if (opt_args("InverseMask", flags) != "")
333 function search_var_name(name, opt_numbers, opts, flags, n_opts)
335 opt_var_name = var_name(flags[opt_numbers[name]]);
340 if (opts[k] == name && var_name(flags[k]) != "") {
341 return var_name(flags[k]);