From c4100eaea3acd1a0d88050ad721f36470a0a6e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20L=C3=B3pez-Ib=C3=A1=C3=B1ez?= Date: Thu, 11 Dec 2014 15:13:33 +0000 Subject: re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gcc/ChangeLog: 2014-12-11 Manuel López-Ibáñez PR fortran/44054 * diagnostic.c (diagnostic_action_after_output): Make it extern. Take diagnostic_t argument instead of diagnostic_info. Count also DK_WERROR towards max_errors. (diagnostic_report_diagnostic): Update call according to the above. (error_recursion): Likewise. * diagnostic.h (diagnostic_action_after_output): Declare. * pretty-print.c (pp_formatted_text_data): Delete. (pp_append_r): Call output_buffer_append_r. (pp_formatted_text): Call output_buffer_formatted_text. (pp_last_position_in_text): Call output_buffer_last_position_in_text. * pretty-print.h (output_buffer_formatted_text): New. (output_buffer_append_r): New. (output_buffer_last_position_in_text): New. gcc/fortran/ChangeLog: 2014-12-11 Manuel López-Ibáñez PR fortran/44054 * error.c (pp_error_buffer): New static variable. (pp_warning_buffer): Make it a pointer. (gfc_output_buffer_empty_p): New. (gfc_error_init_1): Call gfc_buffer_error. (gfc_buffer_error): Do not use pp_warning_buffer.flush_p as the buffered_p flag. (gfc_clear_warning): Likewise. (gfc_warning_check): Call gfc_clear_warning. Only check the new pp_warning_buffer if the old warning_buffer was empty. Call diagnostic_action_after_output. (gfc_error_1): Renamed from gfc_error. (gfc_error): New. (gfc_clear_error): Clear also pp_error_buffer. (gfc_error_flag_test): Check also pp_error_buffer. (gfc_error_check): Likewise. Only check the new pp_error_buffer if the old error_buffer was empty. (gfc_move_output_buffer_from_to): New. (gfc_push_error): Use it here. Take also an output_buffer as argument. (gfc_pop_error): Likewise. (gfc_free_error): Likewise. (gfc_diagnostics_init): Use XNEW and placement-new to init pp_error_buffer and pp_warning_buffer. Set flush_p to false for both pp_warning_buffer and pp_error_buffer. * Update gfc_push_error, gfc_pop_error and gfc_free_error calls according to the above changes. * Use gfc_error_1 for all gfc_error calls that use multiple locations. * Use %qs instead of '%s' for many gfc_error calls. From-SVN: r218627 --- gcc/fortran/array.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'gcc/fortran/array.c') diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c index 159e626..e27ca01 100644 --- a/gcc/fortran/array.c +++ b/gcc/fortran/array.c @@ -100,7 +100,7 @@ match_subscript (gfc_array_ref *ar, int init, bool match_star) if (star) { - gfc_error ("Unexpected '*' in coarray subscript at %C"); + gfc_error ("Unexpected %<*%> in coarray subscript at %C"); return MATCH_ERROR; } @@ -246,7 +246,7 @@ coarray: if (gfc_match_char (',') != MATCH_YES) { if (gfc_match_char ('*') == MATCH_YES) - gfc_error ("Unexpected '*' for codimension %d of %d at %C", + gfc_error ("Unexpected %<*%> for codimension %d of %d at %C", ar->codimen + 1, corank); else gfc_error ("Invalid form of coarray reference at %C"); @@ -254,7 +254,7 @@ coarray: } else if (ar->dimen_type[ar->codimen + ar->dimen] == DIMEN_STAR) { - gfc_error ("Unexpected '*' for codimension %d of %d at %C", + gfc_error ("Unexpected %<*%> for codimension %d of %d at %C", ar->codimen + 1, corank); return MATCH_ERROR; } @@ -313,7 +313,7 @@ resolve_array_bound (gfc_expr *e, int check_constant) if (check_constant && !gfc_is_constant_expr (e)) { if (e->expr_type == EXPR_VARIABLE) - gfc_error ("Variable '%s' at %L in this context must be constant", + gfc_error ("Variable %qs at %L in this context must be constant", e->symtree->n.sym->name, &e->where); else gfc_error ("Expression at %L in this context must be constant", @@ -752,7 +752,7 @@ gfc_set_array_spec (gfc_symbol *sym, gfc_array_spec *as, locus *error_loc) if ((sym->as->type == AS_ASSUMED_RANK && as->corank) || (as->type == AS_ASSUMED_RANK && sym->as->corank)) { - gfc_error ("The assumed-rank array '%s' at %L shall not have a " + gfc_error ("The assumed-rank array %qs at %L shall not have a " "codimension", sym->name, error_loc); return false; } @@ -912,7 +912,7 @@ check_duplicate_iterator (gfc_constructor_base base, gfc_symbol *master) if (c->iterator->var->symtree->n.sym == master) { - gfc_error ("DO-iterator '%s' at %L is inside iterator of the " + gfc_error ("DO-iterator %qs at %L is inside iterator of the " "same name", master->name, &c->where); return 1; @@ -1662,7 +1662,7 @@ gfc_expand_constructor (gfc_expr *e, bool fatal) { gfc_error ("The number of elements in the array constructor " "at %L requires an increase of the allowed %d " - "upper limit. See -fmax-array-constructor " + "upper limit. See %<-fmax-array-constructor%> " "option", &e->where, gfc_option.flag_max_array_constructor); return false; -- cgit v1.1