warning_as_error_callback = callback;
}
+
+/* Callback function, called when -Werror= enables a warning. */
+
+static void (*warning_as_error_callback) (int) = NULL;
+
+/* Register a callback for enable_warning_as_error calls. */
+
+void
+register_warning_as_error_callback (void (*callback) (int))
+{
+ gcc_assert (warning_as_error_callback == NULL || callback == NULL);
+ warning_as_error_callback = callback;
+}
+
/* Enable a warning option as an error. This is used by -Werror= and
also by legacy Werror-implicit-function-declaration. */
const struct cl_option * const option = cl_options + option_index;
/* -Werror=foo implies -Wfoo. */
- if (option->var_type == CLVC_BOOLEAN)
- handle_option (option_index, value, arg, lang_mask, (int)kind);
+ if (option->var_type == CLVC_BOOLEAN && option->flag_var)
+ *(int *) option->flag_var = 1;
if (warning_as_error_callback)
warning_as_error_callback (option_index);