mirror of git://gcc.gnu.org/git/gcc.git
Remove macros that implicitly use input_location
gcc/ * input.h (input_line): Remove. (input_filename): Likewise. (in_system_header): Likewise. * tree.h (EXPR_LOC_OR_HERE): Remove. * config/bfin/bfin.c (output_file_start): Remove use of input_filename macro. * builtins.c (c_strlen): Remove use of EXPR_LOC_OR_HERE macro. * gimplify.c (internal_get_tmp_var): Likewise. EXPR_LOC_OR_HERE macro. (shortcut_cond_expr): Likewise. * tree-diagnostic.c (diagnostic_report_current_function): Remove use of input_filename macro. * tree.c (get_file_function_name): Likewise. gcc/ada * gcc-interface/utils2.c (build_call_raise): Remove use of input_line macro. (build_call_raise_range): Likewise. (build_call_raise_column): Likewise. gcc/c-family * c-common.c (unsafe_conversion_p): Remove use of EXPR_LOC_OR_HERE macro. (conversion_warning): Likewise. (warnings_for_convert_and_check): Likewise. (warn_for_collisions_1): Likewise. (shorten_compare): Likewise, and remove use of in_system_header macro, using the location from the former. * c-lex.c (dump_one_header): Remove use of input_filename macro. (cb_def_pragma): Remove use of in_system_header macro. (lex_string): Likewise. * c-pragma.c (handle_pragma_float_const_decimal64): Likewise. gcc/c * c-decl.c (define_label, shadow_tag_warned) (check_bitfield_type_and_width, grokdeclarator, grokparms, store_parm_decls_newstyle, store_parm_decls_oldstyle) (declspecs_add_type): Remove use of in_system_header macro. * c-parser.c (c_parser_unary_expression): Likewise. * c-typeck.c (store_init_value, process_init_element) (c_start_case): Likewise. * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE macro. * c-parser.c (c_parser_set_source_position_from_token): Remove reference to in_system_header from comment. gcc/cp * call.c (build_integral_nontype_arg_conv): Remove use of EXPR_LOC_OR_HERE macro. (convert_like_real): Likewise. (convert_arg_to_ellipsis): Likewise. (build_cxx_call): Likewise. (perform_implicit_conversion_flags): Likewise. (initialize_reference): Likewise. * cvt.c (cp_convert_to_pointer): Likewise. (convert_to_reference): Likewise. (ocp_convert): Likewise. (convert_to_void): Likewise. * decl.c (pop_label): Update comment. (pop_switch): Remove use of EXPR_LOC_OR_HERE macro. (check_tag_decl): Remove use of in_system_header macro. (make_rtl_for_nonlocal_decl): Remove use of input_filename macro. (compute_array_index_type): Remove use of in_system_header macro. (grokdeclarator): Likewise. * error.c (dump_global_iord): Remove use of input_filename macro. (location_of): Remove use of EXPR_LOC_OR_HERE macro. (maybe_warn_cpp0x): Remove use of in_system_header macro. * init.c (build_new_1): Remove use of EXPR_LOC_OR_HERE macro. * lex.c (handle_pragma_interface): Remove use of input_filename macro. (handle_pragma_implementation): Likewise. (cxx_make_type): Likewise. (in_main_input_context): Likewise. * name-lookup.c (push_binding_level): Remove use of input_line macro. (leave_scope): Likewise. (resume_scope): Likewise. * parser.c (cp_parser_unqualified_id): Remove use of in_system_header macro. (cp_parser_cast_expression): Likewise. (cp_parser_declaration_seq_opt): Likewise. (cp_parser_enumerator_list): Likewise. (cp_parser_parameter_declaration_clause): Likewise. (cp_parser_exception_specification_opt): Likewise. * pt.c (unify_arg_conversion): Remove use of EXPR_LOC_OR_HERE macro. (convert_nontype_argument): Likewise. (push_tinst_level): Remove use of in_system_header macro. (tsubst_copy_and_build): Remove use of EXPR_LOC_OR_HERE macros. (do_decl_instantiation): Remove use of in_system_header macro. (do_type_instantiation): Likewise. * semantics.c (finish_call_expr): Remove use of EXPR_LOC_OR_HERE macro. (begin_class_definition): Remove use of input_filename macro. (cxx_eval_call_expression): Remove use of EXPR_LOC_OR_HERE macro. (cxx_eval_constant_expression): Likewise. (potential_constant_expression_1): Likewise. * typeck.c (decay_conversion): Likewise. (rationalize_conditional_expr): Likewise. (build_x_compound_expr_from_list): Likewise. (convert_for_assignment): Likewise. * typeck2.c (check_narrowing): Likewise. gcc/fortran * trans.c (trans_runtime_error_vararg): Remove use of input_line macro. gcc/java * class.c (maybe_layout_super_class): Update comment. * decl.c (java_add_stmt): Remove use of input_filename macro. * jcf-parse.c (set_source_filename): Remove use of input_filename macro. (parse_class_file): Remove use of input_line and input_filename macros. (java_parse_file): Remove use of input_filename macro. From-SVN: r205262
This commit is contained in:
parent
f81448f752
commit
8400e75ec4
|
|
@ -1,3 +1,19 @@
|
||||||
|
2013-11-22 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* input.h (input_line): Remove.
|
||||||
|
(input_filename): Likewise.
|
||||||
|
(in_system_header): Likewise.
|
||||||
|
* tree.h (EXPR_LOC_OR_HERE): Remove.
|
||||||
|
* config/bfin/bfin.c (output_file_start): Remove use of
|
||||||
|
input_filename macro.
|
||||||
|
* builtins.c (c_strlen): Remove use of EXPR_LOC_OR_HERE macro.
|
||||||
|
* gimplify.c (internal_get_tmp_var): Likewise.
|
||||||
|
EXPR_LOC_OR_HERE macro.
|
||||||
|
(shortcut_cond_expr): Likewise.
|
||||||
|
* tree-diagnostic.c (diagnostic_report_current_function): Remove
|
||||||
|
use of input_filename macro.
|
||||||
|
* tree.c (get_file_function_name): Likewise.
|
||||||
|
|
||||||
2013-11-22 Kenneth Zadeck <zadeck@naturalbridge.com>
|
2013-11-22 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||||
|
|
||||||
* store-layout.c (place-field): Fix hwi test and accessor mismatch.
|
* store-layout.c (place-field): Fix hwi test and accessor mismatch.
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,10 @@
|
||||||
|
2013-11-22 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* gcc-interface/utils2.c (build_call_raise): Remove use of
|
||||||
|
input_line macro.
|
||||||
|
(build_call_raise_range): Likewise.
|
||||||
|
(build_call_raise_column): Likewise.
|
||||||
|
|
||||||
2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
|
2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||||
Mike Stump <mikestump@comcast.net>
|
Mike Stump <mikestump@comcast.net>
|
||||||
Richard Sandiford <rdsandiford@googlemail.com>
|
Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
|
||||||
|
|
@ -1715,7 +1715,8 @@ build_call_raise (int msg, Node_Id gnat_node, char kind)
|
||||||
filename = build_string (len, str);
|
filename = build_string (len, str);
|
||||||
line_number
|
line_number
|
||||||
= (gnat_node != Empty && Sloc (gnat_node) != No_Location)
|
= (gnat_node != Empty && Sloc (gnat_node) != No_Location)
|
||||||
? Get_Logical_Line_Number (Sloc(gnat_node)) : input_line;
|
? Get_Logical_Line_Number (Sloc(gnat_node))
|
||||||
|
: LOCATION_LINE (input_location);
|
||||||
|
|
||||||
TREE_TYPE (filename) = build_array_type (unsigned_char_type_node,
|
TREE_TYPE (filename) = build_array_type (unsigned_char_type_node,
|
||||||
build_index_type (size_int (len)));
|
build_index_type (size_int (len)));
|
||||||
|
|
@ -1761,7 +1762,7 @@ build_call_raise_range (int msg, Node_Id gnat_node,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
line_number = input_line;
|
line_number = LOCATION_LINE (input_location);
|
||||||
column_number = 0;
|
column_number = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1811,7 +1812,7 @@ build_call_raise_column (int msg, Node_Id gnat_node)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
line_number = input_line;
|
line_number = LOCATION_LINE (input_location);
|
||||||
column_number = 0;
|
column_number = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -588,7 +588,7 @@ c_strlen (tree src, int only_value)
|
||||||
&& (only_value || !TREE_SIDE_EFFECTS (TREE_OPERAND (src, 0))))
|
&& (only_value || !TREE_SIDE_EFFECTS (TREE_OPERAND (src, 0))))
|
||||||
return c_strlen (TREE_OPERAND (src, 1), only_value);
|
return c_strlen (TREE_OPERAND (src, 1), only_value);
|
||||||
|
|
||||||
loc = EXPR_LOC_OR_HERE (src);
|
loc = EXPR_LOC_OR_LOC (src, input_location);
|
||||||
|
|
||||||
src = string_constant (src, &offset_node);
|
src = string_constant (src, &offset_node);
|
||||||
if (src == 0)
|
if (src == 0)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,17 @@
|
||||||
|
2013-11-22 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* c-common.c (unsafe_conversion_p): Remove use of
|
||||||
|
EXPR_LOC_OR_HERE macro.
|
||||||
|
(conversion_warning): Likewise.
|
||||||
|
(warnings_for_convert_and_check): Likewise.
|
||||||
|
(warn_for_collisions_1): Likewise.
|
||||||
|
(shorten_compare): Likewise, and remove use of in_system_header
|
||||||
|
macro, using the location from the former.
|
||||||
|
* c-lex.c (dump_one_header): Remove use of input_filename macro.
|
||||||
|
(cb_def_pragma): Remove use of in_system_header macro.
|
||||||
|
(lex_string): Likewise.
|
||||||
|
* c-pragma.c (handle_pragma_float_const_decimal64): Likewise.
|
||||||
|
|
||||||
2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
|
2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||||
Mike Stump <mikestump@comcast.net>
|
Mike Stump <mikestump@comcast.net>
|
||||||
Richard Sandiford <rdsandiford@googlemail.com>
|
Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
|
||||||
|
|
@ -2552,7 +2552,7 @@ unsafe_conversion_p (tree type, tree expr, bool produce_warns)
|
||||||
{
|
{
|
||||||
enum conversion_safety give_warning = SAFE_CONVERSION; /* is 0 or false */
|
enum conversion_safety give_warning = SAFE_CONVERSION; /* is 0 or false */
|
||||||
tree expr_type = TREE_TYPE (expr);
|
tree expr_type = TREE_TYPE (expr);
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (TREE_CODE (expr) == REAL_CST || TREE_CODE (expr) == INTEGER_CST)
|
if (TREE_CODE (expr) == REAL_CST || TREE_CODE (expr) == INTEGER_CST)
|
||||||
{
|
{
|
||||||
|
|
@ -2718,7 +2718,7 @@ static void
|
||||||
conversion_warning (tree type, tree expr)
|
conversion_warning (tree type, tree expr)
|
||||||
{
|
{
|
||||||
tree expr_type = TREE_TYPE (expr);
|
tree expr_type = TREE_TYPE (expr);
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
enum conversion_safety conversion_kind;
|
enum conversion_safety conversion_kind;
|
||||||
|
|
||||||
if (!warn_conversion && !warn_sign_conversion && !warn_float_conversion)
|
if (!warn_conversion && !warn_sign_conversion && !warn_float_conversion)
|
||||||
|
|
@ -2791,7 +2791,7 @@ conversion_warning (tree type, tree expr)
|
||||||
void
|
void
|
||||||
warnings_for_convert_and_check (tree type, tree expr, tree result)
|
warnings_for_convert_and_check (tree type, tree expr, tree result)
|
||||||
{
|
{
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (TREE_CODE (expr) == INTEGER_CST
|
if (TREE_CODE (expr) == INTEGER_CST
|
||||||
&& (TREE_CODE (type) == INTEGER_TYPE
|
&& (TREE_CODE (type) == INTEGER_TYPE
|
||||||
|
|
@ -3001,7 +3001,7 @@ warn_for_collisions_1 (tree written, tree writer, struct tlist *list,
|
||||||
&& (!only_writes || list->writer))
|
&& (!only_writes || list->writer))
|
||||||
{
|
{
|
||||||
warned_ids = new_tlist (warned_ids, written, NULL_TREE);
|
warned_ids = new_tlist (warned_ids, written, NULL_TREE);
|
||||||
warning_at (EXPR_LOC_OR_HERE (writer),
|
warning_at (EXPR_LOC_OR_LOC (writer, input_location),
|
||||||
OPT_Wsequence_point, "operation on %qE may be undefined",
|
OPT_Wsequence_point, "operation on %qE may be undefined",
|
||||||
list->expr);
|
list->expr);
|
||||||
}
|
}
|
||||||
|
|
@ -3999,7 +3999,7 @@ shorten_compare (tree *op0_ptr, tree *op1_ptr, tree *restype_ptr,
|
||||||
int real1, real2;
|
int real1, real2;
|
||||||
tree primop0, primop1;
|
tree primop0, primop1;
|
||||||
enum tree_code code = *rescode_ptr;
|
enum tree_code code = *rescode_ptr;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (op0);
|
location_t loc = EXPR_LOC_OR_LOC (op0, input_location);
|
||||||
|
|
||||||
/* Throw away any conversions to wider types
|
/* Throw away any conversions to wider types
|
||||||
already present in the operands. */
|
already present in the operands. */
|
||||||
|
|
@ -4297,7 +4297,7 @@ shorten_compare (tree *op0_ptr, tree *op1_ptr, tree *restype_ptr,
|
||||||
the comparison isn't an issue, so suppress the
|
the comparison isn't an issue, so suppress the
|
||||||
warning. */
|
warning. */
|
||||||
bool warn =
|
bool warn =
|
||||||
warn_type_limits && !in_system_header
|
warn_type_limits && !in_system_header_at (loc)
|
||||||
&& c_inhibit_evaluation_warnings == 0
|
&& c_inhibit_evaluation_warnings == 0
|
||||||
&& !(TREE_CODE (primop0) == INTEGER_CST
|
&& !(TREE_CODE (primop0) == INTEGER_CST
|
||||||
&& !TREE_OVERFLOW (convert (c_common_signed_type (type),
|
&& !TREE_OVERFLOW (convert (c_common_signed_type (type),
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,7 @@ dump_one_header (splay_tree_node n, void * ARG_UNUSED (dummy))
|
||||||
void
|
void
|
||||||
dump_time_statistics (void)
|
dump_time_statistics (void)
|
||||||
{
|
{
|
||||||
struct c_fileinfo *file = get_fileinfo (input_filename);
|
struct c_fileinfo *file = get_fileinfo (LOCATION_FILE (input_location));
|
||||||
int this_time = get_run_time ();
|
int this_time = get_run_time ();
|
||||||
file->time += this_time - body_time;
|
file->time += this_time - body_time;
|
||||||
|
|
||||||
|
|
@ -243,7 +243,7 @@ cb_def_pragma (cpp_reader *pfile, source_location loc)
|
||||||
/* Issue a warning message if we have been asked to do so. Ignore
|
/* Issue a warning message if we have been asked to do so. Ignore
|
||||||
unknown pragmas in system headers unless an explicit
|
unknown pragmas in system headers unless an explicit
|
||||||
-Wunknown-pragmas has been given. */
|
-Wunknown-pragmas has been given. */
|
||||||
if (warn_unknown_pragmas > in_system_header)
|
if (warn_unknown_pragmas > in_system_header_at (input_location))
|
||||||
{
|
{
|
||||||
const unsigned char *space, *name;
|
const unsigned char *space, *name;
|
||||||
const cpp_token *s;
|
const cpp_token *s;
|
||||||
|
|
@ -1071,7 +1071,7 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string, bool translate)
|
||||||
if (concats)
|
if (concats)
|
||||||
strs = XOBFINISH (&str_ob, cpp_string *);
|
strs = XOBFINISH (&str_ob, cpp_string *);
|
||||||
|
|
||||||
if (concats && !objc_string && !in_system_header)
|
if (concats && !objc_string && !in_system_header_at (input_location))
|
||||||
warning (OPT_Wtraditional,
|
warning (OPT_Wtraditional,
|
||||||
"traditional C rejects string constant concatenation");
|
"traditional C rejects string constant concatenation");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1121,7 +1121,7 @@ handle_pragma_float_const_decimal64 (cpp_reader *ARG_UNUSED (dummy))
|
||||||
{
|
{
|
||||||
if (c_dialect_cxx ())
|
if (c_dialect_cxx ())
|
||||||
{
|
{
|
||||||
if (warn_unknown_pragmas > in_system_header)
|
if (warn_unknown_pragmas > in_system_header_at (input_location))
|
||||||
warning (OPT_Wunknown_pragmas,
|
warning (OPT_Wunknown_pragmas,
|
||||||
"%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported"
|
"%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported"
|
||||||
" for C++");
|
" for C++");
|
||||||
|
|
@ -1130,7 +1130,7 @@ handle_pragma_float_const_decimal64 (cpp_reader *ARG_UNUSED (dummy))
|
||||||
|
|
||||||
if (!targetm.decimal_float_supported_p ())
|
if (!targetm.decimal_float_supported_p ())
|
||||||
{
|
{
|
||||||
if (warn_unknown_pragmas > in_system_header)
|
if (warn_unknown_pragmas > in_system_header_at (input_location))
|
||||||
warning (OPT_Wunknown_pragmas,
|
warning (OPT_Wunknown_pragmas,
|
||||||
"%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported"
|
"%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported"
|
||||||
" on this target");
|
" on this target");
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,19 @@
|
||||||
|
2013-11-22 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* c-decl.c (define_label, shadow_tag_warned)
|
||||||
|
(check_bitfield_type_and_width, grokdeclarator, grokparms,
|
||||||
|
store_parm_decls_newstyle, store_parm_decls_oldstyle)
|
||||||
|
(declspecs_add_type): Remove use of in_system_header macro.
|
||||||
|
* c-parser.c (c_parser_unary_expression): Likewise.
|
||||||
|
* c-typeck.c (store_init_value, process_init_element)
|
||||||
|
(c_start_case): Likewise.
|
||||||
|
|
||||||
|
* c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
|
||||||
|
macro.
|
||||||
|
|
||||||
|
* c-parser.c (c_parser_set_source_position_from_token): Remove
|
||||||
|
reference to in_system_header from comment.
|
||||||
|
|
||||||
2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
|
2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
* c-decl.c (grokdeclarator): Update comment to refer to
|
* c-decl.c (grokdeclarator): Update comment to refer to
|
||||||
|
|
|
||||||
|
|
@ -3328,7 +3328,7 @@ define_label (location_t location, tree name)
|
||||||
bind_label (name, label, current_function_scope, label_vars);
|
bind_label (name, label, current_function_scope, label_vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!in_system_header && lookup_name (name))
|
if (!in_system_header_at (input_location) && lookup_name (name))
|
||||||
warning_at (location, OPT_Wtraditional,
|
warning_at (location, OPT_Wtraditional,
|
||||||
"traditional C lacks a separate namespace "
|
"traditional C lacks a separate namespace "
|
||||||
"for labels, identifier %qE conflicts", name);
|
"for labels, identifier %qE conflicts", name);
|
||||||
|
|
@ -3762,7 +3762,7 @@ shadow_tag_warned (const struct c_declspecs *declspecs, int warned)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (warned != 1 && !in_system_header)
|
if (warned != 1 && !in_system_header_at (input_location))
|
||||||
{
|
{
|
||||||
pedwarn (input_location, 0,
|
pedwarn (input_location, 0,
|
||||||
"useless type name in empty declaration");
|
"useless type name in empty declaration");
|
||||||
|
|
@ -3770,7 +3770,8 @@ shadow_tag_warned (const struct c_declspecs *declspecs, int warned)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (warned != 1 && !in_system_header && declspecs->typedef_p)
|
else if (warned != 1 && !in_system_header_at (input_location)
|
||||||
|
&& declspecs->typedef_p)
|
||||||
{
|
{
|
||||||
pedwarn (input_location, 0, "useless type name in empty declaration");
|
pedwarn (input_location, 0, "useless type name in empty declaration");
|
||||||
warned = 1;
|
warned = 1;
|
||||||
|
|
@ -3802,20 +3803,23 @@ shadow_tag_warned (const struct c_declspecs *declspecs, int warned)
|
||||||
warned = 1;
|
warned = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!warned && !in_system_header && declspecs->storage_class != csc_none)
|
if (!warned && !in_system_header_at (input_location)
|
||||||
|
&& declspecs->storage_class != csc_none)
|
||||||
{
|
{
|
||||||
warning (0, "useless storage class specifier in empty declaration");
|
warning (0, "useless storage class specifier in empty declaration");
|
||||||
warned = 2;
|
warned = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!warned && !in_system_header && declspecs->thread_p)
|
if (!warned && !in_system_header_at (input_location) && declspecs->thread_p)
|
||||||
{
|
{
|
||||||
warning (0, "useless %qs in empty declaration",
|
warning (0, "useless %qs in empty declaration",
|
||||||
declspecs->thread_gnu_p ? "__thread" : "_Thread_local");
|
declspecs->thread_gnu_p ? "__thread" : "_Thread_local");
|
||||||
warned = 2;
|
warned = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!warned && !in_system_header && (declspecs->const_p
|
if (!warned
|
||||||
|
&& !in_system_header_at (input_location)
|
||||||
|
&& (declspecs->const_p
|
||||||
|| declspecs->volatile_p
|
|| declspecs->volatile_p
|
||||||
|| declspecs->atomic_p
|
|| declspecs->atomic_p
|
||||||
|| declspecs->restrict_p
|
|| declspecs->restrict_p
|
||||||
|
|
@ -3825,7 +3829,8 @@ shadow_tag_warned (const struct c_declspecs *declspecs, int warned)
|
||||||
warned = 2;
|
warned = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!warned && !in_system_header && declspecs->alignas_p)
|
if (!warned && !in_system_header_at (input_location)
|
||||||
|
&& declspecs->alignas_p)
|
||||||
{
|
{
|
||||||
warning (0, "useless %<_Alignas%> in empty declaration");
|
warning (0, "useless %<_Alignas%> in empty declaration");
|
||||||
warned = 2;
|
warned = 2;
|
||||||
|
|
@ -4821,7 +4826,7 @@ check_bitfield_type_and_width (tree *type, tree *width, tree orig_name)
|
||||||
}
|
}
|
||||||
|
|
||||||
type_mv = TYPE_MAIN_VARIANT (*type);
|
type_mv = TYPE_MAIN_VARIANT (*type);
|
||||||
if (!in_system_header
|
if (!in_system_header_at (input_location)
|
||||||
&& type_mv != integer_type_node
|
&& type_mv != integer_type_node
|
||||||
&& type_mv != unsigned_type_node
|
&& type_mv != unsigned_type_node
|
||||||
&& type_mv != boolean_type_node)
|
&& type_mv != boolean_type_node)
|
||||||
|
|
@ -5071,7 +5076,7 @@ grokdeclarator (const struct c_declarator *declarator,
|
||||||
|
|
||||||
/* Diagnose defaulting to "int". */
|
/* Diagnose defaulting to "int". */
|
||||||
|
|
||||||
if (declspecs->default_int_p && !in_system_header)
|
if (declspecs->default_int_p && !in_system_header_at (input_location))
|
||||||
{
|
{
|
||||||
/* Issue a warning if this is an ISO C 99 program or if
|
/* Issue a warning if this is an ISO C 99 program or if
|
||||||
-Wreturn-type and this is a function, or if -Wimplicit;
|
-Wreturn-type and this is a function, or if -Wimplicit;
|
||||||
|
|
@ -5351,7 +5356,8 @@ grokdeclarator (const struct c_declarator *declarator,
|
||||||
type = error_mark_node;
|
type = error_mark_node;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pedantic && !in_system_header && flexible_array_type_p (type))
|
if (pedantic && !in_system_header_at (input_location)
|
||||||
|
&& flexible_array_type_p (type))
|
||||||
pedwarn (loc, OPT_Wpedantic,
|
pedwarn (loc, OPT_Wpedantic,
|
||||||
"invalid use of structure with flexible array member");
|
"invalid use of structure with flexible array member");
|
||||||
|
|
||||||
|
|
@ -5529,7 +5535,8 @@ grokdeclarator (const struct c_declarator *declarator,
|
||||||
flexible_array_member = (t->kind == cdk_id);
|
flexible_array_member = (t->kind == cdk_id);
|
||||||
}
|
}
|
||||||
if (flexible_array_member
|
if (flexible_array_member
|
||||||
&& pedantic && !flag_isoc99 && !in_system_header)
|
&& pedantic && !flag_isoc99
|
||||||
|
&& !in_system_header_at (input_location))
|
||||||
pedwarn (loc, OPT_Wpedantic,
|
pedwarn (loc, OPT_Wpedantic,
|
||||||
"ISO C90 does not support flexible array members");
|
"ISO C90 does not support flexible array members");
|
||||||
|
|
||||||
|
|
@ -6383,7 +6390,8 @@ grokparms (struct c_arg_info *arg_info, bool funcdef_flag)
|
||||||
error ("%<[*]%> not allowed in other than function prototype scope");
|
error ("%<[*]%> not allowed in other than function prototype scope");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg_types == 0 && !funcdef_flag && !in_system_header)
|
if (arg_types == 0 && !funcdef_flag
|
||||||
|
&& !in_system_header_at (input_location))
|
||||||
warning (OPT_Wstrict_prototypes,
|
warning (OPT_Wstrict_prototypes,
|
||||||
"function declaration isn%'t a prototype");
|
"function declaration isn%'t a prototype");
|
||||||
|
|
||||||
|
|
@ -7782,7 +7790,7 @@ build_enumerator (location_t decl_loc, location_t loc,
|
||||||
|
|
||||||
/* Set basis for default for next value. */
|
/* Set basis for default for next value. */
|
||||||
the_enum->enum_next_value
|
the_enum->enum_next_value
|
||||||
= build_binary_op (EXPR_LOC_OR_HERE (value),
|
= build_binary_op (EXPR_LOC_OR_LOC (value, input_location),
|
||||||
PLUS_EXPR, value, integer_one_node, 0);
|
PLUS_EXPR, value, integer_one_node, 0);
|
||||||
the_enum->enum_overflow = tree_int_cst_lt (the_enum->enum_next_value, value);
|
the_enum->enum_overflow = tree_int_cst_lt (the_enum->enum_next_value, value);
|
||||||
|
|
||||||
|
|
@ -8056,7 +8064,8 @@ store_parm_decls_newstyle (tree fndecl, const struct c_arg_info *arg_info)
|
||||||
warning if we got here because ARG_INFO_TYPES was error_mark_node
|
warning if we got here because ARG_INFO_TYPES was error_mark_node
|
||||||
(this happens when a function definition has just an ellipsis in
|
(this happens when a function definition has just an ellipsis in
|
||||||
its parameter list). */
|
its parameter list). */
|
||||||
else if (!in_system_header && !current_function_scope
|
else if (!in_system_header_at (input_location)
|
||||||
|
&& !current_function_scope
|
||||||
&& arg_info->types != error_mark_node)
|
&& arg_info->types != error_mark_node)
|
||||||
warning_at (DECL_SOURCE_LOCATION (fndecl), OPT_Wtraditional,
|
warning_at (DECL_SOURCE_LOCATION (fndecl), OPT_Wtraditional,
|
||||||
"traditional C rejects ISO C style function definitions");
|
"traditional C rejects ISO C style function definitions");
|
||||||
|
|
@ -8110,7 +8119,7 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info)
|
||||||
tree parmids = arg_info->parms;
|
tree parmids = arg_info->parms;
|
||||||
struct pointer_set_t *seen_args = pointer_set_create ();
|
struct pointer_set_t *seen_args = pointer_set_create ();
|
||||||
|
|
||||||
if (!in_system_header)
|
if (!in_system_header_at (input_location))
|
||||||
warning_at (DECL_SOURCE_LOCATION (fndecl),
|
warning_at (DECL_SOURCE_LOCATION (fndecl),
|
||||||
OPT_Wold_style_definition, "old-style function definition");
|
OPT_Wold_style_definition, "old-style function definition");
|
||||||
|
|
||||||
|
|
@ -9468,7 +9477,7 @@ declspecs_add_type (location_t loc, struct c_declspecs *specs,
|
||||||
error_at (loc, "%<__int128%> is not supported for this target");
|
error_at (loc, "%<__int128%> is not supported for this target");
|
||||||
return specs;
|
return specs;
|
||||||
}
|
}
|
||||||
if (!in_system_header)
|
if (!in_system_header_at (input_location))
|
||||||
pedwarn (loc, OPT_Wpedantic,
|
pedwarn (loc, OPT_Wpedantic,
|
||||||
"ISO C does not support %<__int128%> type");
|
"ISO C does not support %<__int128%> type");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -775,8 +775,7 @@ c_parser_consume_pragma (c_parser *parser)
|
||||||
parser->in_pragma = true;
|
parser->in_pragma = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update the globals input_location and in_system_header from
|
/* Update the global input_location from TOKEN. */
|
||||||
TOKEN. */
|
|
||||||
static inline void
|
static inline void
|
||||||
c_parser_set_source_position_from_token (c_token *token)
|
c_parser_set_source_position_from_token (c_token *token)
|
||||||
{
|
{
|
||||||
|
|
@ -6301,7 +6300,7 @@ c_parser_unary_expression (c_parser *parser)
|
||||||
ret.value = build_indirect_ref (op_loc, op.value, RO_UNARY_STAR);
|
ret.value = build_indirect_ref (op_loc, op.value, RO_UNARY_STAR);
|
||||||
return ret;
|
return ret;
|
||||||
case CPP_PLUS:
|
case CPP_PLUS:
|
||||||
if (!c_dialect_objc () && !in_system_header)
|
if (!c_dialect_objc () && !in_system_header_at (input_location))
|
||||||
warning_at (op_loc,
|
warning_at (op_loc,
|
||||||
OPT_Wtraditional,
|
OPT_Wtraditional,
|
||||||
"traditional C rejects the unary plus operator");
|
"traditional C rejects the unary plus operator");
|
||||||
|
|
|
||||||
|
|
@ -6185,7 +6185,7 @@ store_init_value (location_t init_loc, tree decl, tree init, tree origtype)
|
||||||
|
|
||||||
/* Store the expression if valid; else report error. */
|
/* Store the expression if valid; else report error. */
|
||||||
|
|
||||||
if (!in_system_header
|
if (!in_system_header_at (input_location)
|
||||||
&& AGGREGATE_TYPE_P (TREE_TYPE (decl)) && !TREE_STATIC (decl))
|
&& AGGREGATE_TYPE_P (TREE_TYPE (decl)) && !TREE_STATIC (decl))
|
||||||
warning (OPT_Wtraditional, "traditional C rejects automatic "
|
warning (OPT_Wtraditional, "traditional C rejects automatic "
|
||||||
"aggregate initialization");
|
"aggregate initialization");
|
||||||
|
|
@ -8686,7 +8686,7 @@ process_init_element (struct c_expr value, bool implicit,
|
||||||
again on the assumption that this must be conditional on
|
again on the assumption that this must be conditional on
|
||||||
__STDC__ anyway (and we've already complained about the
|
__STDC__ anyway (and we've already complained about the
|
||||||
member-designator already). */
|
member-designator already). */
|
||||||
if (!in_system_header && !constructor_designated
|
if (!in_system_header_at (input_location) && !constructor_designated
|
||||||
&& !(value.value && (integer_zerop (value.value)
|
&& !(value.value && (integer_zerop (value.value)
|
||||||
|| real_zerop (value.value))))
|
|| real_zerop (value.value))))
|
||||||
warning (OPT_Wtraditional, "traditional C rejects initialization "
|
warning (OPT_Wtraditional, "traditional C rejects initialization "
|
||||||
|
|
@ -9287,7 +9287,7 @@ c_start_case (location_t switch_loc,
|
||||||
{
|
{
|
||||||
tree type = TYPE_MAIN_VARIANT (orig_type);
|
tree type = TYPE_MAIN_VARIANT (orig_type);
|
||||||
|
|
||||||
if (!in_system_header
|
if (!in_system_header_at (input_location)
|
||||||
&& (type == long_integer_type_node
|
&& (type == long_integer_type_node
|
||||||
|| type == long_unsigned_type_node))
|
|| type == long_unsigned_type_node))
|
||||||
warning_at (switch_cond_loc,
|
warning_at (switch_cond_loc,
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ output_file_start (void)
|
||||||
FILE *file = asm_out_file;
|
FILE *file = asm_out_file;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
fprintf (file, ".file \"%s\";\n", input_filename);
|
fprintf (file, ".file \"%s\";\n", LOCATION_FILE (input_location));
|
||||||
|
|
||||||
for (i = 0; arg_regs[i] >= 0; i++)
|
for (i = 0; arg_regs[i] >= 0; i++)
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,66 @@
|
||||||
|
2013-11-22 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* call.c (build_integral_nontype_arg_conv): Remove use of
|
||||||
|
EXPR_LOC_OR_HERE macro.
|
||||||
|
(convert_like_real): Likewise.
|
||||||
|
(convert_arg_to_ellipsis): Likewise.
|
||||||
|
(build_cxx_call): Likewise.
|
||||||
|
(perform_implicit_conversion_flags): Likewise.
|
||||||
|
(initialize_reference): Likewise.
|
||||||
|
* cvt.c (cp_convert_to_pointer): Likewise.
|
||||||
|
(convert_to_reference): Likewise.
|
||||||
|
(ocp_convert): Likewise.
|
||||||
|
(convert_to_void): Likewise.
|
||||||
|
* decl.c (pop_label): Update comment.
|
||||||
|
(pop_switch): Remove use of EXPR_LOC_OR_HERE macro.
|
||||||
|
(check_tag_decl): Remove use of in_system_header macro.
|
||||||
|
(make_rtl_for_nonlocal_decl): Remove use of input_filename
|
||||||
|
macro.
|
||||||
|
(compute_array_index_type): Remove use of in_system_header
|
||||||
|
macro.
|
||||||
|
(grokdeclarator): Likewise.
|
||||||
|
* error.c (dump_global_iord): Remove use of input_filename
|
||||||
|
macro.
|
||||||
|
(location_of): Remove use of EXPR_LOC_OR_HERE macro.
|
||||||
|
(maybe_warn_cpp0x): Remove use of in_system_header macro.
|
||||||
|
* init.c (build_new_1): Remove use of EXPR_LOC_OR_HERE macro.
|
||||||
|
* lex.c (handle_pragma_interface): Remove use of input_filename
|
||||||
|
macro.
|
||||||
|
(handle_pragma_implementation): Likewise.
|
||||||
|
(cxx_make_type): Likewise.
|
||||||
|
(in_main_input_context): Likewise.
|
||||||
|
* name-lookup.c (push_binding_level): Remove use of
|
||||||
|
input_line macro.
|
||||||
|
(leave_scope): Likewise.
|
||||||
|
(resume_scope): Likewise.
|
||||||
|
* parser.c (cp_parser_unqualified_id): Remove use of
|
||||||
|
in_system_header macro.
|
||||||
|
(cp_parser_cast_expression): Likewise.
|
||||||
|
(cp_parser_declaration_seq_opt): Likewise.
|
||||||
|
(cp_parser_enumerator_list): Likewise.
|
||||||
|
(cp_parser_parameter_declaration_clause): Likewise.
|
||||||
|
(cp_parser_exception_specification_opt): Likewise.
|
||||||
|
* pt.c (unify_arg_conversion): Remove use of EXPR_LOC_OR_HERE
|
||||||
|
macro.
|
||||||
|
(convert_nontype_argument): Likewise.
|
||||||
|
(push_tinst_level): Remove use of in_system_header macro.
|
||||||
|
(tsubst_copy_and_build): Remove use of EXPR_LOC_OR_HERE
|
||||||
|
macros.
|
||||||
|
(do_decl_instantiation): Remove use of in_system_header macro.
|
||||||
|
(do_type_instantiation): Likewise.
|
||||||
|
* semantics.c (finish_call_expr): Remove use of EXPR_LOC_OR_HERE
|
||||||
|
macro.
|
||||||
|
(begin_class_definition): Remove use of input_filename macro.
|
||||||
|
(cxx_eval_call_expression): Remove use of EXPR_LOC_OR_HERE
|
||||||
|
macro.
|
||||||
|
(cxx_eval_constant_expression): Likewise.
|
||||||
|
(potential_constant_expression_1): Likewise.
|
||||||
|
* typeck.c (decay_conversion): Likewise.
|
||||||
|
(rationalize_conditional_expr): Likewise.
|
||||||
|
(build_x_compound_expr_from_list): Likewise.
|
||||||
|
(convert_for_assignment): Likewise.
|
||||||
|
* typeck2.c (check_narrowing): Likewise.
|
||||||
|
|
||||||
2013-11-22 Trevor Saunders <tsaunders@mozilla.com>
|
2013-11-22 Trevor Saunders <tsaunders@mozilla.com>
|
||||||
|
|
||||||
* parser.c, semantics.c: Change some local variables from vec to
|
* parser.c, semantics.c: Change some local variables from vec to
|
||||||
|
|
|
||||||
|
|
@ -3687,7 +3687,7 @@ build_integral_nontype_arg_conv (tree type, tree expr, tsubst_flags_t complain)
|
||||||
conversion *conv;
|
conversion *conv;
|
||||||
void *p;
|
void *p;
|
||||||
tree t;
|
tree t;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (error_operand_p (expr))
|
if (error_operand_p (expr))
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
@ -5850,7 +5850,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
|
||||||
tree totype = convs->type;
|
tree totype = convs->type;
|
||||||
diagnostic_t diag_kind;
|
diagnostic_t diag_kind;
|
||||||
int flags;
|
int flags;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (convs->bad_p && !(complain & tf_error))
|
if (convs->bad_p && !(complain & tf_error))
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
@ -6263,7 +6263,7 @@ tree
|
||||||
convert_arg_to_ellipsis (tree arg, tsubst_flags_t complain)
|
convert_arg_to_ellipsis (tree arg, tsubst_flags_t complain)
|
||||||
{
|
{
|
||||||
tree arg_type;
|
tree arg_type;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (arg);
|
location_t loc = EXPR_LOC_OR_LOC (arg, input_location);
|
||||||
|
|
||||||
/* [expr.call]
|
/* [expr.call]
|
||||||
|
|
||||||
|
|
@ -7168,7 +7168,7 @@ build_cxx_call (tree fn, int nargs, tree *argarray,
|
||||||
int optimize_sav;
|
int optimize_sav;
|
||||||
|
|
||||||
/* Remember roughly where this call is. */
|
/* Remember roughly where this call is. */
|
||||||
location_t loc = EXPR_LOC_OR_HERE (fn);
|
location_t loc = EXPR_LOC_OR_LOC (fn, input_location);
|
||||||
fn = build_call_a (fn, nargs, argarray);
|
fn = build_call_a (fn, nargs, argarray);
|
||||||
SET_EXPR_LOCATION (fn, loc);
|
SET_EXPR_LOCATION (fn, loc);
|
||||||
|
|
||||||
|
|
@ -8979,7 +8979,7 @@ perform_implicit_conversion_flags (tree type, tree expr,
|
||||||
{
|
{
|
||||||
conversion *conv;
|
conversion *conv;
|
||||||
void *p;
|
void *p;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (error_operand_p (expr))
|
if (error_operand_p (expr))
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
@ -9295,7 +9295,7 @@ initialize_reference (tree type, tree expr,
|
||||||
{
|
{
|
||||||
conversion *conv;
|
conversion *conv;
|
||||||
void *p;
|
void *p;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (type == error_mark_node || error_operand_p (expr))
|
if (type == error_mark_node || error_operand_p (expr))
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ cp_convert_to_pointer (tree type, tree expr, tsubst_flags_t complain)
|
||||||
tree intype = TREE_TYPE (expr);
|
tree intype = TREE_TYPE (expr);
|
||||||
enum tree_code form;
|
enum tree_code form;
|
||||||
tree rval;
|
tree rval;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (intype == error_mark_node)
|
if (intype == error_mark_node)
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
@ -413,7 +413,7 @@ convert_to_reference (tree reftype, tree expr, int convtype,
|
||||||
tree rval = NULL_TREE;
|
tree rval = NULL_TREE;
|
||||||
tree rval_as_conversion = NULL_TREE;
|
tree rval_as_conversion = NULL_TREE;
|
||||||
bool can_convert_intype_to_type;
|
bool can_convert_intype_to_type;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (TREE_CODE (type) == FUNCTION_TYPE
|
if (TREE_CODE (type) == FUNCTION_TYPE
|
||||||
&& TREE_TYPE (expr) == unknown_type_node)
|
&& TREE_TYPE (expr) == unknown_type_node)
|
||||||
|
|
@ -656,7 +656,7 @@ ocp_convert (tree type, tree expr, int convtype, int flags,
|
||||||
enum tree_code code = TREE_CODE (type);
|
enum tree_code code = TREE_CODE (type);
|
||||||
const char *invalid_conv_diag;
|
const char *invalid_conv_diag;
|
||||||
tree e1;
|
tree e1;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (error_operand_p (e) || type == error_mark_node)
|
if (error_operand_p (e) || type == error_mark_node)
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
@ -912,7 +912,7 @@ ocp_convert (tree type, tree expr, int convtype, int flags,
|
||||||
tree
|
tree
|
||||||
convert_to_void (tree expr, impl_conv_void implicit, tsubst_flags_t complain)
|
convert_to_void (tree expr, impl_conv_void implicit, tsubst_flags_t complain)
|
||||||
{
|
{
|
||||||
location_t loc = EXPR_LOC_OR_HERE (expr);
|
location_t loc = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
|
|
||||||
if (expr == error_mark_node
|
if (expr == error_mark_node
|
||||||
|| TREE_TYPE (expr) == error_mark_node)
|
|| TREE_TYPE (expr) == error_mark_node)
|
||||||
|
|
|
||||||
|
|
@ -376,7 +376,8 @@ pop_label (tree label, tree old_value)
|
||||||
location_t location;
|
location_t location;
|
||||||
|
|
||||||
error ("label %q+D used but not defined", label);
|
error ("label %q+D used but not defined", label);
|
||||||
location = input_location; /* FIXME want (input_filename, (line)0) */
|
location = input_location;
|
||||||
|
/* FIXME want (LOCATION_FILE (input_location), (line)0) */
|
||||||
/* Avoid crashing later. */
|
/* Avoid crashing later. */
|
||||||
define_label (location, DECL_NAME (label));
|
define_label (location, DECL_NAME (label));
|
||||||
}
|
}
|
||||||
|
|
@ -3092,7 +3093,7 @@ pop_switch (void)
|
||||||
location_t switch_location;
|
location_t switch_location;
|
||||||
|
|
||||||
/* Emit warnings as needed. */
|
/* Emit warnings as needed. */
|
||||||
switch_location = EXPR_LOC_OR_HERE (cs->switch_stmt);
|
switch_location = EXPR_LOC_OR_LOC (cs->switch_stmt, input_location);
|
||||||
if (!processing_template_decl)
|
if (!processing_template_decl)
|
||||||
c_do_switch_warnings (cs->cases, switch_location,
|
c_do_switch_warnings (cs->cases, switch_location,
|
||||||
SWITCH_STMT_TYPE (cs->switch_stmt),
|
SWITCH_STMT_TYPE (cs->switch_stmt),
|
||||||
|
|
@ -4241,7 +4242,7 @@ check_tag_decl (cp_decl_specifier_seq *declspecs,
|
||||||
error ("multiple types in one declaration");
|
error ("multiple types in one declaration");
|
||||||
else if (declspecs->redefined_builtin_type)
|
else if (declspecs->redefined_builtin_type)
|
||||||
{
|
{
|
||||||
if (!in_system_header)
|
if (!in_system_header_at (input_location))
|
||||||
permerror (declspecs->locations[ds_redefined_builtin_type_spec],
|
permerror (declspecs->locations[ds_redefined_builtin_type_spec],
|
||||||
"redeclaration of C++ built-in type %qT",
|
"redeclaration of C++ built-in type %qT",
|
||||||
declspecs->redefined_builtin_type);
|
declspecs->redefined_builtin_type);
|
||||||
|
|
@ -4292,7 +4293,8 @@ check_tag_decl (cp_decl_specifier_seq *declspecs,
|
||||||
/* Anonymous unions are objects, so they can have specifiers. */;
|
/* Anonymous unions are objects, so they can have specifiers. */;
|
||||||
SET_ANON_AGGR_TYPE_P (declared_type);
|
SET_ANON_AGGR_TYPE_P (declared_type);
|
||||||
|
|
||||||
if (TREE_CODE (declared_type) != UNION_TYPE && !in_system_header)
|
if (TREE_CODE (declared_type) != UNION_TYPE
|
||||||
|
&& !in_system_header_at (input_location))
|
||||||
pedwarn (input_location, OPT_Wpedantic, "ISO C++ prohibits anonymous structs");
|
pedwarn (input_location, OPT_Wpedantic, "ISO C++ prohibits anonymous structs");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5846,7 +5848,7 @@ make_rtl_for_nonlocal_decl (tree decl, tree init, const char* asmspec)
|
||||||
|
|
||||||
/* We try to defer namespace-scope static constants so that they are
|
/* We try to defer namespace-scope static constants so that they are
|
||||||
not emitted into the object file unnecessarily. */
|
not emitted into the object file unnecessarily. */
|
||||||
filename = input_filename;
|
filename = LOCATION_FILE (input_location);
|
||||||
if (!DECL_VIRTUAL_P (decl)
|
if (!DECL_VIRTUAL_P (decl)
|
||||||
&& TREE_READONLY (decl)
|
&& TREE_READONLY (decl)
|
||||||
&& DECL_INITIAL (decl) != NULL_TREE
|
&& DECL_INITIAL (decl) != NULL_TREE
|
||||||
|
|
@ -8309,7 +8311,7 @@ compute_array_index_type (tree name, tree size, tsubst_flags_t complain)
|
||||||
indicated by the state of complain), so that
|
indicated by the state of complain), so that
|
||||||
another substitution can be found. */
|
another substitution can be found. */
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
else if (in_system_header)
|
else if (in_system_header_at (input_location))
|
||||||
/* Allow them in system headers because glibc uses them. */;
|
/* Allow them in system headers because glibc uses them. */;
|
||||||
else if (name)
|
else if (name)
|
||||||
pedwarn (input_location, OPT_Wpedantic, "ISO C++ forbids zero-size array %qD", name);
|
pedwarn (input_location, OPT_Wpedantic, "ISO C++ forbids zero-size array %qD", name);
|
||||||
|
|
@ -9096,7 +9098,7 @@ grokdeclarator (const cp_declarator *declarator,
|
||||||
|
|
||||||
if (type_was_error_mark_node)
|
if (type_was_error_mark_node)
|
||||||
/* We've already issued an error, don't complain more. */;
|
/* We've already issued an error, don't complain more. */;
|
||||||
else if (in_system_header || flag_ms_extensions)
|
else if (in_system_header_at (input_location) || flag_ms_extensions)
|
||||||
/* Allow it, sigh. */;
|
/* Allow it, sigh. */;
|
||||||
else if (! is_main)
|
else if (! is_main)
|
||||||
permerror (input_location, "ISO C++ forbids declaration of %qs with no type", name);
|
permerror (input_location, "ISO C++ forbids declaration of %qs with no type", name);
|
||||||
|
|
@ -9119,7 +9121,7 @@ grokdeclarator (const cp_declarator *declarator,
|
||||||
error ("%<__int128%> is not supported by this target");
|
error ("%<__int128%> is not supported by this target");
|
||||||
explicit_int128 = false;
|
explicit_int128 = false;
|
||||||
}
|
}
|
||||||
else if (pedantic && ! in_system_header)
|
else if (pedantic && ! in_system_header_at (input_location))
|
||||||
pedwarn (input_location, OPT_Wpedantic,
|
pedwarn (input_location, OPT_Wpedantic,
|
||||||
"ISO C++ does not support %<__int128%> for %qs", name);
|
"ISO C++ does not support %<__int128%> for %qs", name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -924,7 +924,7 @@ dump_global_iord (cxx_pretty_printer *pp, tree t)
|
||||||
else
|
else
|
||||||
gcc_unreachable ();
|
gcc_unreachable ();
|
||||||
|
|
||||||
pp_printf (pp, p, input_filename);
|
pp_printf (pp, p, LOCATION_FILE (input_location));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
@ -2804,7 +2804,7 @@ location_of (tree t)
|
||||||
|
|
||||||
if (DECL_P (t))
|
if (DECL_P (t))
|
||||||
return DECL_SOURCE_LOCATION (t);
|
return DECL_SOURCE_LOCATION (t);
|
||||||
return EXPR_LOC_OR_HERE (t);
|
return EXPR_LOC_OR_LOC (t, input_location);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now the interfaces from error et al to dump_type et al. Each takes an
|
/* Now the interfaces from error et al to dump_type et al. Each takes an
|
||||||
|
|
@ -3463,7 +3463,7 @@ cp_printer (pretty_printer *pp, text_info *text, const char *spec,
|
||||||
void
|
void
|
||||||
maybe_warn_cpp0x (cpp0x_warn_str str)
|
maybe_warn_cpp0x (cpp0x_warn_str str)
|
||||||
{
|
{
|
||||||
if ((cxx_dialect == cxx98) && !in_system_header)
|
if ((cxx_dialect == cxx98) && !in_system_header_at (input_location))
|
||||||
/* We really want to suppress this warning in system headers,
|
/* We really want to suppress this warning in system headers,
|
||||||
because libstdc++ uses variadic templates even when we aren't
|
because libstdc++ uses variadic templates even when we aren't
|
||||||
in C++0x mode. */
|
in C++0x mode. */
|
||||||
|
|
|
||||||
|
|
@ -2319,7 +2319,7 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
|
||||||
{
|
{
|
||||||
if (complain & tf_error)
|
if (complain & tf_error)
|
||||||
{
|
{
|
||||||
error_at (EXPR_LOC_OR_HERE (inner_nelts),
|
error_at (EXPR_LOC_OR_LOC (inner_nelts, input_location),
|
||||||
"array size in operator new must be constant");
|
"array size in operator new must be constant");
|
||||||
cxx_constant_value(inner_nelts);
|
cxx_constant_value(inner_nelts);
|
||||||
}
|
}
|
||||||
|
|
@ -2347,7 +2347,7 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
|
||||||
&& !TREE_CONSTANT (maybe_constant_value (outer_nelts)))
|
&& !TREE_CONSTANT (maybe_constant_value (outer_nelts)))
|
||||||
{
|
{
|
||||||
if (complain & tf_warning_or_error)
|
if (complain & tf_warning_or_error)
|
||||||
pedwarn(EXPR_LOC_OR_HERE (outer_nelts), OPT_Wvla,
|
pedwarn(EXPR_LOC_OR_LOC (outer_nelts, input_location), OPT_Wvla,
|
||||||
"ISO C++ does not support variable-length array types");
|
"ISO C++ does not support variable-length array types");
|
||||||
else
|
else
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
|
||||||
13
gcc/cp/lex.c
13
gcc/cp/lex.c
|
|
@ -352,18 +352,18 @@ handle_pragma_interface (cpp_reader* /*dfile*/)
|
||||||
if (fname == error_mark_node)
|
if (fname == error_mark_node)
|
||||||
return;
|
return;
|
||||||
else if (fname == 0)
|
else if (fname == 0)
|
||||||
filename = lbasename (input_filename);
|
filename = lbasename (LOCATION_FILE (input_location));
|
||||||
else
|
else
|
||||||
filename = TREE_STRING_POINTER (fname);
|
filename = TREE_STRING_POINTER (fname);
|
||||||
|
|
||||||
finfo = get_fileinfo (input_filename);
|
finfo = get_fileinfo (LOCATION_FILE (input_location));
|
||||||
|
|
||||||
if (impl_file_chain == 0)
|
if (impl_file_chain == 0)
|
||||||
{
|
{
|
||||||
/* If this is zero at this point, then we are
|
/* If this is zero at this point, then we are
|
||||||
auto-implementing. */
|
auto-implementing. */
|
||||||
if (main_input_filename == 0)
|
if (main_input_filename == 0)
|
||||||
main_input_filename = input_filename;
|
main_input_filename = LOCATION_FILE (input_location);
|
||||||
}
|
}
|
||||||
|
|
||||||
finfo->interface_only = interface_strcmp (filename);
|
finfo->interface_only = interface_strcmp (filename);
|
||||||
|
|
@ -397,7 +397,7 @@ handle_pragma_implementation (cpp_reader* /*dfile*/)
|
||||||
if (main_input_filename)
|
if (main_input_filename)
|
||||||
filename = main_input_filename;
|
filename = main_input_filename;
|
||||||
else
|
else
|
||||||
filename = input_filename;
|
filename = LOCATION_FILE (input_location);
|
||||||
filename = lbasename (filename);
|
filename = lbasename (filename);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -683,7 +683,8 @@ cxx_make_type (enum tree_code code)
|
||||||
/* Set up some flags that give proper default behavior. */
|
/* Set up some flags that give proper default behavior. */
|
||||||
if (RECORD_OR_UNION_CODE_P (code))
|
if (RECORD_OR_UNION_CODE_P (code))
|
||||||
{
|
{
|
||||||
struct c_fileinfo *finfo = get_fileinfo (input_filename);
|
struct c_fileinfo *finfo = \
|
||||||
|
get_fileinfo (LOCATION_FILE (input_location));
|
||||||
SET_CLASSTYPE_INTERFACE_UNKNOWN_X (t, finfo->interface_unknown);
|
SET_CLASSTYPE_INTERFACE_UNKNOWN_X (t, finfo->interface_unknown);
|
||||||
CLASSTYPE_INTERFACE_ONLY (t) = finfo->interface_only;
|
CLASSTYPE_INTERFACE_ONLY (t) = finfo->interface_only;
|
||||||
}
|
}
|
||||||
|
|
@ -711,5 +712,5 @@ in_main_input_context (void)
|
||||||
return filename_cmp (main_input_filename,
|
return filename_cmp (main_input_filename,
|
||||||
LOCATION_FILE (tl->locus)) == 0;
|
LOCATION_FILE (tl->locus)) == 0;
|
||||||
else
|
else
|
||||||
return filename_cmp (main_input_filename, input_filename) == 0;
|
return filename_cmp (main_input_filename, LOCATION_FILE (input_location)) == 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1504,7 +1504,8 @@ push_binding_level (cp_binding_level *scope)
|
||||||
{
|
{
|
||||||
scope->binding_depth = binding_depth;
|
scope->binding_depth = binding_depth;
|
||||||
indent (binding_depth);
|
indent (binding_depth);
|
||||||
cp_binding_level_debug (scope, input_line, "push");
|
cp_binding_level_debug (scope, LOCATION_LINE (input_location),
|
||||||
|
"push");
|
||||||
binding_depth++;
|
binding_depth++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1590,7 +1591,8 @@ leave_scope (void)
|
||||||
if (ENABLE_SCOPE_CHECKING)
|
if (ENABLE_SCOPE_CHECKING)
|
||||||
{
|
{
|
||||||
indent (--binding_depth);
|
indent (--binding_depth);
|
||||||
cp_binding_level_debug (scope, input_line, "leave");
|
cp_binding_level_debug (scope, LOCATION_LINE (input_location),
|
||||||
|
"leave");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Move one nesting level up. */
|
/* Move one nesting level up. */
|
||||||
|
|
@ -1639,7 +1641,7 @@ resume_scope (cp_binding_level* b)
|
||||||
{
|
{
|
||||||
b->binding_depth = binding_depth;
|
b->binding_depth = binding_depth;
|
||||||
indent (binding_depth);
|
indent (binding_depth);
|
||||||
cp_binding_level_debug (b, input_line, "resume");
|
cp_binding_level_debug (b, LOCATION_LINE (input_location), "resume");
|
||||||
binding_depth++;
|
binding_depth++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5088,7 +5088,8 @@ cp_parser_unqualified_id (cp_parser* parser,
|
||||||
{
|
{
|
||||||
/* 17.6.3.3.5 */
|
/* 17.6.3.3.5 */
|
||||||
const char *name = UDLIT_OP_SUFFIX (id);
|
const char *name = UDLIT_OP_SUFFIX (id);
|
||||||
if (name[0] != '_' && !in_system_header && declarator_p)
|
if (name[0] != '_' && !in_system_header_at (input_location)
|
||||||
|
&& declarator_p)
|
||||||
warning (0, "literal operator suffixes not preceded by %<_%>"
|
warning (0, "literal operator suffixes not preceded by %<_%>"
|
||||||
" are reserved for future standardization");
|
" are reserved for future standardization");
|
||||||
}
|
}
|
||||||
|
|
@ -7686,7 +7687,7 @@ cp_parser_cast_expression (cp_parser *parser, bool address_p, bool cast_p,
|
||||||
|
|
||||||
/* Warn about old-style casts, if so requested. */
|
/* Warn about old-style casts, if so requested. */
|
||||||
if (warn_old_style_cast
|
if (warn_old_style_cast
|
||||||
&& !in_system_header
|
&& !in_system_header_at (input_location)
|
||||||
&& !VOID_TYPE_P (type)
|
&& !VOID_TYPE_P (type)
|
||||||
&& current_lang_name != lang_name_c)
|
&& current_lang_name != lang_name_c)
|
||||||
warning (OPT_Wold_style_cast, "use of old-style cast");
|
warning (OPT_Wold_style_cast, "use of old-style cast");
|
||||||
|
|
@ -10765,7 +10766,7 @@ cp_parser_declaration_seq_opt (cp_parser* parser)
|
||||||
/* A declaration consisting of a single semicolon is
|
/* A declaration consisting of a single semicolon is
|
||||||
invalid. Allow it unless we're being pedantic. */
|
invalid. Allow it unless we're being pedantic. */
|
||||||
cp_lexer_consume_token (parser->lexer);
|
cp_lexer_consume_token (parser->lexer);
|
||||||
if (!in_system_header)
|
if (!in_system_header_at (input_location))
|
||||||
pedwarn (input_location, OPT_Wpedantic, "extra %<;%>");
|
pedwarn (input_location, OPT_Wpedantic, "extra %<;%>");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -15527,7 +15528,7 @@ cp_parser_enumerator_list (cp_parser* parser, tree type)
|
||||||
/* If the next token is a `}', there is a trailing comma. */
|
/* If the next token is a `}', there is a trailing comma. */
|
||||||
if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE))
|
if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE))
|
||||||
{
|
{
|
||||||
if (cxx_dialect < cxx11 && !in_system_header)
|
if (cxx_dialect < cxx11 && !in_system_header_at (input_location))
|
||||||
pedwarn (input_location, OPT_Wpedantic,
|
pedwarn (input_location, OPT_Wpedantic,
|
||||||
"comma at end of enumerator list");
|
"comma at end of enumerator list");
|
||||||
break;
|
break;
|
||||||
|
|
@ -18056,7 +18057,8 @@ cp_parser_parameter_declaration_clause (cp_parser* parser)
|
||||||
/* There are no parameters. */
|
/* There are no parameters. */
|
||||||
{
|
{
|
||||||
#ifndef NO_IMPLICIT_EXTERN_C
|
#ifndef NO_IMPLICIT_EXTERN_C
|
||||||
if (in_system_header && current_class_type == NULL
|
if (in_system_header_at (input_location)
|
||||||
|
&& current_class_type == NULL
|
||||||
&& current_lang_name == lang_name_c)
|
&& current_lang_name == lang_name_c)
|
||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
else
|
else
|
||||||
|
|
@ -20793,7 +20795,7 @@ cp_parser_exception_specification_opt (cp_parser* parser)
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* Enable this once a lot of code has transitioned to noexcept? */
|
/* Enable this once a lot of code has transitioned to noexcept? */
|
||||||
if (cxx_dialect >= cxx11 && !in_system_header)
|
if (cxx_dialect >= cxx11 && !in_system_header_at (input_location))
|
||||||
warning (OPT_Wdeprecated, "dynamic exception specifications are "
|
warning (OPT_Wdeprecated, "dynamic exception specifications are "
|
||||||
"deprecated in C++0x; use %<noexcept%> instead");
|
"deprecated in C++0x; use %<noexcept%> instead");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
20
gcc/cp/pt.c
20
gcc/cp/pt.c
|
|
@ -5437,7 +5437,7 @@ unify_arg_conversion (bool explain_p, tree to_type,
|
||||||
tree from_type, tree arg)
|
tree from_type, tree arg)
|
||||||
{
|
{
|
||||||
if (explain_p)
|
if (explain_p)
|
||||||
inform (EXPR_LOC_OR_HERE (arg),
|
inform (EXPR_LOC_OR_LOC (arg, input_location),
|
||||||
" cannot convert %qE (type %qT) to type %qT",
|
" cannot convert %qE (type %qT) to type %qT",
|
||||||
arg, from_type, to_type);
|
arg, from_type, to_type);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -5677,7 +5677,7 @@ convert_nontype_argument (tree type, tree expr, tsubst_flags_t complain)
|
||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
expr = cxx_constant_value (expr);
|
expr = cxx_constant_value (expr);
|
||||||
if (errorcount > errs || warningcount + werrorcount > warns)
|
if (errorcount > errs || warningcount + werrorcount > warns)
|
||||||
inform (EXPR_LOC_OR_HERE (expr),
|
inform (EXPR_LOC_OR_LOC (expr, input_location),
|
||||||
"in template argument for type %qT ", type);
|
"in template argument for type %qT ", type);
|
||||||
if (expr == error_mark_node)
|
if (expr == error_mark_node)
|
||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
|
|
@ -8093,7 +8093,7 @@ push_tinst_level (tree d)
|
||||||
new_level->decl = d;
|
new_level->decl = d;
|
||||||
new_level->locus = input_location;
|
new_level->locus = input_location;
|
||||||
new_level->errors = errorcount+sorrycount;
|
new_level->errors = errorcount+sorrycount;
|
||||||
new_level->in_system_header_p = in_system_header;
|
new_level->in_system_header_p = in_system_header_at (input_location);
|
||||||
new_level->next = current_tinst_level;
|
new_level->next = current_tinst_level;
|
||||||
current_tinst_level = new_level;
|
current_tinst_level = new_level;
|
||||||
|
|
||||||
|
|
@ -14505,7 +14505,7 @@ tsubst_copy_and_build (tree t,
|
||||||
fn = TREE_OPERAND (fn, 1);
|
fn = TREE_OPERAND (fn, 1);
|
||||||
if (is_overloaded_fn (fn))
|
if (is_overloaded_fn (fn))
|
||||||
fn = get_first_fn (fn);
|
fn = get_first_fn (fn);
|
||||||
if (permerror (EXPR_LOC_OR_HERE (t),
|
if (permerror (EXPR_LOC_OR_LOC (t, input_location),
|
||||||
"%qD was not declared in this scope, "
|
"%qD was not declared in this scope, "
|
||||||
"and no declarations were found by "
|
"and no declarations were found by "
|
||||||
"argument-dependent lookup at the point "
|
"argument-dependent lookup at the point "
|
||||||
|
|
@ -14515,15 +14515,17 @@ tsubst_copy_and_build (tree t,
|
||||||
/* Can't say anything more. */;
|
/* Can't say anything more. */;
|
||||||
else if (DECL_CLASS_SCOPE_P (fn))
|
else if (DECL_CLASS_SCOPE_P (fn))
|
||||||
{
|
{
|
||||||
inform (EXPR_LOC_OR_HERE (t),
|
location_t loc = EXPR_LOC_OR_LOC (t,
|
||||||
|
input_location);
|
||||||
|
inform (loc,
|
||||||
"declarations in dependent base %qT are "
|
"declarations in dependent base %qT are "
|
||||||
"not found by unqualified lookup",
|
"not found by unqualified lookup",
|
||||||
DECL_CLASS_CONTEXT (fn));
|
DECL_CLASS_CONTEXT (fn));
|
||||||
if (current_class_ptr)
|
if (current_class_ptr)
|
||||||
inform (EXPR_LOC_OR_HERE (t),
|
inform (loc,
|
||||||
"use %<this->%D%> instead", function);
|
"use %<this->%D%> instead", function);
|
||||||
else
|
else
|
||||||
inform (EXPR_LOC_OR_HERE (t),
|
inform (loc,
|
||||||
"use %<%T::%D%> instead",
|
"use %<%T::%D%> instead",
|
||||||
current_class_name, function);
|
current_class_name, function);
|
||||||
}
|
}
|
||||||
|
|
@ -18807,7 +18809,7 @@ do_decl_instantiation (tree decl, tree storage)
|
||||||
;
|
;
|
||||||
else if (storage == ridpointers[(int) RID_EXTERN])
|
else if (storage == ridpointers[(int) RID_EXTERN])
|
||||||
{
|
{
|
||||||
if (!in_system_header && (cxx_dialect == cxx98))
|
if (!in_system_header_at (input_location) && (cxx_dialect == cxx98))
|
||||||
pedwarn (input_location, OPT_Wpedantic,
|
pedwarn (input_location, OPT_Wpedantic,
|
||||||
"ISO C++ 1998 forbids the use of %<extern%> on explicit "
|
"ISO C++ 1998 forbids the use of %<extern%> on explicit "
|
||||||
"instantiations");
|
"instantiations");
|
||||||
|
|
@ -18900,7 +18902,7 @@ do_type_instantiation (tree t, tree storage, tsubst_flags_t complain)
|
||||||
|
|
||||||
if (storage != NULL_TREE)
|
if (storage != NULL_TREE)
|
||||||
{
|
{
|
||||||
if (!in_system_header)
|
if (!in_system_header_at (input_location))
|
||||||
{
|
{
|
||||||
if (storage == ridpointers[(int) RID_EXTERN])
|
if (storage == ridpointers[(int) RID_EXTERN])
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2146,7 +2146,7 @@ finish_call_expr (tree fn, vec<tree, va_gc> **args, bool disallow_virtual,
|
||||||
&& type_dependent_expression_p (current_class_ref)))
|
&& type_dependent_expression_p (current_class_ref)))
|
||||||
{
|
{
|
||||||
result = build_nt_call_vec (fn, *args);
|
result = build_nt_call_vec (fn, *args);
|
||||||
SET_EXPR_LOCATION (result, EXPR_LOC_OR_HERE (fn));
|
SET_EXPR_LOCATION (result, EXPR_LOC_OR_LOC (fn, input_location));
|
||||||
KOENIG_LOOKUP_P (result) = koenig_p;
|
KOENIG_LOOKUP_P (result) = koenig_p;
|
||||||
if (cfun)
|
if (cfun)
|
||||||
{
|
{
|
||||||
|
|
@ -2721,7 +2721,8 @@ begin_class_definition (tree t)
|
||||||
before. */
|
before. */
|
||||||
if (! TYPE_ANONYMOUS_P (t))
|
if (! TYPE_ANONYMOUS_P (t))
|
||||||
{
|
{
|
||||||
struct c_fileinfo *finfo = get_fileinfo (input_filename);
|
struct c_fileinfo *finfo = \
|
||||||
|
get_fileinfo (LOCATION_FILE (input_location));
|
||||||
CLASSTYPE_INTERFACE_ONLY (t) = finfo->interface_only;
|
CLASSTYPE_INTERFACE_ONLY (t) = finfo->interface_only;
|
||||||
SET_CLASSTYPE_INTERFACE_UNKNOWN_X
|
SET_CLASSTYPE_INTERFACE_UNKNOWN_X
|
||||||
(t, finfo->interface_unknown);
|
(t, finfo->interface_unknown);
|
||||||
|
|
@ -8266,7 +8267,7 @@ cxx_eval_call_expression (const constexpr_call *old_call, tree t,
|
||||||
bool allow_non_constant, bool addr,
|
bool allow_non_constant, bool addr,
|
||||||
bool *non_constant_p, bool *overflow_p)
|
bool *non_constant_p, bool *overflow_p)
|
||||||
{
|
{
|
||||||
location_t loc = EXPR_LOC_OR_HERE (t);
|
location_t loc = EXPR_LOC_OR_LOC (t, input_location);
|
||||||
tree fun = get_function_named_in_call (t);
|
tree fun = get_function_named_in_call (t);
|
||||||
tree result;
|
tree result;
|
||||||
constexpr_call new_call = { NULL, NULL, NULL, 0 };
|
constexpr_call new_call = { NULL, NULL, NULL, 0 };
|
||||||
|
|
@ -9647,7 +9648,7 @@ cxx_eval_constant_expression (const constexpr_call *call, tree t,
|
||||||
&& !integer_zerop (op))
|
&& !integer_zerop (op))
|
||||||
{
|
{
|
||||||
if (!allow_non_constant)
|
if (!allow_non_constant)
|
||||||
error_at (EXPR_LOC_OR_HERE (t),
|
error_at (EXPR_LOC_OR_LOC (t, input_location),
|
||||||
"reinterpret_cast from integer to pointer");
|
"reinterpret_cast from integer to pointer");
|
||||||
*non_constant_p = true;
|
*non_constant_p = true;
|
||||||
return t;
|
return t;
|
||||||
|
|
@ -9693,7 +9694,7 @@ cxx_eval_constant_expression (const constexpr_call *call, tree t,
|
||||||
case EXPR_STMT:
|
case EXPR_STMT:
|
||||||
case OFFSET_REF:
|
case OFFSET_REF:
|
||||||
if (!allow_non_constant)
|
if (!allow_non_constant)
|
||||||
error_at (EXPR_LOC_OR_HERE (t),
|
error_at (EXPR_LOC_OR_LOC (t, input_location),
|
||||||
"expression %qE is not a constant-expression", t);
|
"expression %qE is not a constant-expression", t);
|
||||||
*non_constant_p = true;
|
*non_constant_p = true;
|
||||||
break;
|
break;
|
||||||
|
|
@ -9966,7 +9967,7 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags)
|
||||||
{
|
{
|
||||||
if (flags & tf_error)
|
if (flags & tf_error)
|
||||||
{
|
{
|
||||||
error_at (EXPR_LOC_OR_HERE (t),
|
error_at (EXPR_LOC_OR_LOC (t, input_location),
|
||||||
"call to non-constexpr function %qD", fun);
|
"call to non-constexpr function %qD", fun);
|
||||||
explain_invalid_constexpr_fn (fun);
|
explain_invalid_constexpr_fn (fun);
|
||||||
}
|
}
|
||||||
|
|
@ -10058,7 +10059,7 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags)
|
||||||
&& !integer_zerop (from))
|
&& !integer_zerop (from))
|
||||||
{
|
{
|
||||||
if (flags & tf_error)
|
if (flags & tf_error)
|
||||||
error_at (EXPR_LOC_OR_HERE (t),
|
error_at (EXPR_LOC_OR_LOC (t, input_location),
|
||||||
"reinterpret_cast from integer to pointer");
|
"reinterpret_cast from integer to pointer");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1883,7 +1883,7 @@ decay_conversion (tree exp, tsubst_flags_t complain)
|
||||||
{
|
{
|
||||||
tree type;
|
tree type;
|
||||||
enum tree_code code;
|
enum tree_code code;
|
||||||
location_t loc = EXPR_LOC_OR_HERE (exp);
|
location_t loc = EXPR_LOC_OR_LOC (exp, input_location);
|
||||||
|
|
||||||
type = TREE_TYPE (exp);
|
type = TREE_TYPE (exp);
|
||||||
if (type == error_mark_node)
|
if (type == error_mark_node)
|
||||||
|
|
@ -2133,6 +2133,8 @@ static tree
|
||||||
rationalize_conditional_expr (enum tree_code code, tree t,
|
rationalize_conditional_expr (enum tree_code code, tree t,
|
||||||
tsubst_flags_t complain)
|
tsubst_flags_t complain)
|
||||||
{
|
{
|
||||||
|
location_t loc = EXPR_LOC_OR_LOC (t, input_location);
|
||||||
|
|
||||||
/* For MIN_EXPR or MAX_EXPR, fold-const.c has arranged things so that
|
/* For MIN_EXPR or MAX_EXPR, fold-const.c has arranged things so that
|
||||||
the first operand is always the one to be used if both operands
|
the first operand is always the one to be used if both operands
|
||||||
are equal, so we know what conditional expression this used to be. */
|
are equal, so we know what conditional expression this used to be. */
|
||||||
|
|
@ -2145,8 +2147,8 @@ rationalize_conditional_expr (enum tree_code code, tree t,
|
||||||
gcc_assert (!TREE_SIDE_EFFECTS (op0)
|
gcc_assert (!TREE_SIDE_EFFECTS (op0)
|
||||||
&& !TREE_SIDE_EFFECTS (op1));
|
&& !TREE_SIDE_EFFECTS (op1));
|
||||||
return
|
return
|
||||||
build_conditional_expr (EXPR_LOC_OR_HERE (t),
|
build_conditional_expr (loc,
|
||||||
build_x_binary_op (EXPR_LOC_OR_HERE (t),
|
build_x_binary_op (loc,
|
||||||
(TREE_CODE (t) == MIN_EXPR
|
(TREE_CODE (t) == MIN_EXPR
|
||||||
? LE_EXPR : GE_EXPR),
|
? LE_EXPR : GE_EXPR),
|
||||||
op0, TREE_CODE (op0),
|
op0, TREE_CODE (op0),
|
||||||
|
|
@ -2159,7 +2161,7 @@ rationalize_conditional_expr (enum tree_code code, tree t,
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
build_conditional_expr (EXPR_LOC_OR_HERE (t), TREE_OPERAND (t, 0),
|
build_conditional_expr (loc, TREE_OPERAND (t, 0),
|
||||||
cp_build_unary_op (code, TREE_OPERAND (t, 1), 0,
|
cp_build_unary_op (code, TREE_OPERAND (t, 1), 0,
|
||||||
complain),
|
complain),
|
||||||
cp_build_unary_op (code, TREE_OPERAND (t, 2), 0,
|
cp_build_unary_op (code, TREE_OPERAND (t, 2), 0,
|
||||||
|
|
@ -6042,8 +6044,9 @@ build_x_compound_expr_from_list (tree list, expr_list_kind exp,
|
||||||
&& !CONSTRUCTOR_IS_DIRECT_INIT (expr))
|
&& !CONSTRUCTOR_IS_DIRECT_INIT (expr))
|
||||||
{
|
{
|
||||||
if (complain & tf_error)
|
if (complain & tf_error)
|
||||||
pedwarn (EXPR_LOC_OR_HERE (expr), 0, "list-initializer for "
|
pedwarn (EXPR_LOC_OR_LOC (expr, input_location), 0,
|
||||||
"non-class type must not be parenthesized");
|
"list-initializer for non-class type must not "
|
||||||
|
"be parenthesized");
|
||||||
else
|
else
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
}
|
}
|
||||||
|
|
@ -8101,7 +8104,7 @@ convert_for_assignment (tree type, tree rhs,
|
||||||
&& TREE_CODE (TREE_TYPE (rhs)) != BOOLEAN_TYPE
|
&& TREE_CODE (TREE_TYPE (rhs)) != BOOLEAN_TYPE
|
||||||
&& (complain & tf_warning))
|
&& (complain & tf_warning))
|
||||||
{
|
{
|
||||||
location_t loc = EXPR_LOC_OR_HERE (rhs);
|
location_t loc = EXPR_LOC_OR_LOC (rhs, input_location);
|
||||||
|
|
||||||
warning_at (loc, OPT_Wparentheses,
|
warning_at (loc, OPT_Wparentheses,
|
||||||
"suggest parentheses around assignment used as truth value");
|
"suggest parentheses around assignment used as truth value");
|
||||||
|
|
|
||||||
|
|
@ -896,11 +896,11 @@ check_narrowing (tree type, tree init)
|
||||||
if (!ok)
|
if (!ok)
|
||||||
{
|
{
|
||||||
if (cxx_dialect >= cxx11)
|
if (cxx_dialect >= cxx11)
|
||||||
pedwarn (EXPR_LOC_OR_HERE (init), OPT_Wnarrowing,
|
pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
|
||||||
"narrowing conversion of %qE from %qT to %qT inside { }",
|
"narrowing conversion of %qE from %qT to %qT inside { }",
|
||||||
init, ftype, type);
|
init, ftype, type);
|
||||||
else
|
else
|
||||||
warning_at (EXPR_LOC_OR_HERE (init), OPT_Wnarrowing,
|
warning_at (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
|
||||||
"narrowing conversion of %qE from %qT to %qT inside { } "
|
"narrowing conversion of %qE from %qT to %qT inside { } "
|
||||||
"is ill-formed in C++11", init, ftype, type);
|
"is ill-formed in C++11", init, ftype, type);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-11-22 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* trans.c (trans_runtime_error_vararg): Remove use of input_line
|
||||||
|
macro.
|
||||||
|
|
||||||
2013-11-17 Andrew MacLeod <amacleod@redhat.com>
|
2013-11-17 Andrew MacLeod <amacleod@redhat.com>
|
||||||
|
|
||||||
* fortran/trans-intrinsic.c: Include tree-nested.h.
|
* fortran/trans-intrinsic.c: Include tree-nested.h.
|
||||||
|
|
|
||||||
|
|
@ -424,7 +424,7 @@ trans_runtime_error_vararg (bool error, locus* where, const char* msgid,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
asprintf (&message, "In file '%s', around line %d",
|
asprintf (&message, "In file '%s', around line %d",
|
||||||
gfc_source_file, input_line + 1);
|
gfc_source_file, LOCATION_LINE (input_location) + 1);
|
||||||
|
|
||||||
arg = gfc_build_addr_expr (pchar_type_node,
|
arg = gfc_build_addr_expr (pchar_type_node,
|
||||||
gfc_build_localized_cstring_const (message));
|
gfc_build_localized_cstring_const (message));
|
||||||
|
|
|
||||||
|
|
@ -515,7 +515,7 @@ internal_get_tmp_var (tree val, gimple_seq *pre_p, gimple_seq *post_p,
|
||||||
|
|
||||||
mod = build2 (INIT_EXPR, TREE_TYPE (t), t, unshare_expr (val));
|
mod = build2 (INIT_EXPR, TREE_TYPE (t), t, unshare_expr (val));
|
||||||
|
|
||||||
SET_EXPR_LOCATION (mod, EXPR_LOC_OR_HERE (val));
|
SET_EXPR_LOCATION (mod, EXPR_LOC_OR_LOC (val, input_location));
|
||||||
|
|
||||||
/* gimplify_modify_expr might want to reduce this further. */
|
/* gimplify_modify_expr might want to reduce this further. */
|
||||||
gimplify_and_add (mod, pre_p);
|
gimplify_and_add (mod, pre_p);
|
||||||
|
|
@ -2514,7 +2514,7 @@ shortcut_cond_expr (tree expr)
|
||||||
while (TREE_CODE (pred) == TRUTH_ANDIF_EXPR)
|
while (TREE_CODE (pred) == TRUTH_ANDIF_EXPR)
|
||||||
{
|
{
|
||||||
/* Keep the original source location on the first 'if'. */
|
/* Keep the original source location on the first 'if'. */
|
||||||
location_t locus = EXPR_LOC_OR_HERE (expr);
|
location_t locus = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
TREE_OPERAND (expr, 0) = TREE_OPERAND (pred, 1);
|
TREE_OPERAND (expr, 0) = TREE_OPERAND (pred, 1);
|
||||||
/* Set the source location of the && on the second 'if'. */
|
/* Set the source location of the && on the second 'if'. */
|
||||||
if (EXPR_HAS_LOCATION (pred))
|
if (EXPR_HAS_LOCATION (pred))
|
||||||
|
|
@ -2536,7 +2536,7 @@ shortcut_cond_expr (tree expr)
|
||||||
while (TREE_CODE (pred) == TRUTH_ORIF_EXPR)
|
while (TREE_CODE (pred) == TRUTH_ORIF_EXPR)
|
||||||
{
|
{
|
||||||
/* Keep the original source location on the first 'if'. */
|
/* Keep the original source location on the first 'if'. */
|
||||||
location_t locus = EXPR_LOC_OR_HERE (expr);
|
location_t locus = EXPR_LOC_OR_LOC (expr, input_location);
|
||||||
TREE_OPERAND (expr, 0) = TREE_OPERAND (pred, 1);
|
TREE_OPERAND (expr, 0) = TREE_OPERAND (pred, 1);
|
||||||
/* Set the source location of the || on the second 'if'. */
|
/* Set the source location of the || on the second 'if'. */
|
||||||
if (EXPR_HAS_LOCATION (pred))
|
if (EXPR_HAS_LOCATION (pred))
|
||||||
|
|
@ -2600,7 +2600,7 @@ shortcut_cond_expr (tree expr)
|
||||||
/* If there was nothing else in our arms, just forward the label(s). */
|
/* If there was nothing else in our arms, just forward the label(s). */
|
||||||
if (!then_se && !else_se)
|
if (!then_se && !else_se)
|
||||||
return shortcut_cond_r (pred, true_label_p, false_label_p,
|
return shortcut_cond_r (pred, true_label_p, false_label_p,
|
||||||
EXPR_LOC_OR_HERE (expr));
|
EXPR_LOC_OR_LOC (expr, input_location));
|
||||||
|
|
||||||
/* If our last subexpression already has a terminal label, reuse it. */
|
/* If our last subexpression already has a terminal label, reuse it. */
|
||||||
if (else_se)
|
if (else_se)
|
||||||
|
|
@ -2632,7 +2632,7 @@ shortcut_cond_expr (tree expr)
|
||||||
jump_over_else = block_may_fallthru (then_);
|
jump_over_else = block_may_fallthru (then_);
|
||||||
|
|
||||||
pred = shortcut_cond_r (pred, true_label_p, false_label_p,
|
pred = shortcut_cond_r (pred, true_label_p, false_label_p,
|
||||||
EXPR_LOC_OR_HERE (expr));
|
EXPR_LOC_OR_LOC (expr, input_location));
|
||||||
|
|
||||||
expr = NULL;
|
expr = NULL;
|
||||||
append_to_statement_list (pred, &expr);
|
append_to_statement_list (pred, &expr);
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,8 @@ extern location_t input_location;
|
||||||
((tree) ((IS_ADHOC_LOC (LOC)) ? get_data_from_adhoc_loc (line_table, (LOC)) \
|
((tree) ((IS_ADHOC_LOC (LOC)) ? get_data_from_adhoc_loc (line_table, (LOC)) \
|
||||||
: NULL))
|
: NULL))
|
||||||
|
|
||||||
#define input_line LOCATION_LINE (input_location)
|
|
||||||
#define input_filename LOCATION_FILE (input_location)
|
|
||||||
#define in_system_header_at(LOC) \
|
#define in_system_header_at(LOC) \
|
||||||
((linemap_location_in_system_header_p (line_table, LOC)))
|
((linemap_location_in_system_header_p (line_table, LOC)))
|
||||||
#define in_system_header (in_system_header_at (input_location))
|
|
||||||
|
|
||||||
void dump_line_table_statistics (void);
|
void dump_line_table_statistics (void);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,13 @@
|
||||||
|
2013-11-22 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* class.c (maybe_layout_super_class): Update comment.
|
||||||
|
* decl.c (java_add_stmt): Remove use of input_filename macro.
|
||||||
|
* jcf-parse.c (set_source_filename): Remove use of
|
||||||
|
input_filename macro.
|
||||||
|
(parse_class_file): Remove use of input_line and input_filename
|
||||||
|
macros.
|
||||||
|
(java_parse_file): Remove use of input_filename macro.
|
||||||
|
|
||||||
2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
|
2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
* class.c, expr.c: Replace tree_low_cst (..., 0) with tree_to_shwi
|
* class.c, expr.c: Replace tree_low_cst (..., 0) with tree_to_shwi
|
||||||
|
|
|
||||||
|
|
@ -2415,7 +2415,7 @@ maybe_layout_super_class (tree super_class, tree this_class ATTRIBUTE_UNUSED)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* safe_layout_class just makes sure that we can load a class without
|
/* safe_layout_class just makes sure that we can load a class without
|
||||||
disrupting the current_class, input_file, input_line, etc, information
|
disrupting the current_class, input_location, etc, information
|
||||||
about the class processed currently. */
|
about the class processed currently. */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -2018,7 +2018,7 @@ java_add_stmt (tree new_stmt)
|
||||||
tree stmts = current_binding_level->stmts;
|
tree stmts = current_binding_level->stmts;
|
||||||
tree_stmt_iterator i;
|
tree_stmt_iterator i;
|
||||||
|
|
||||||
if (input_filename)
|
if (LOCATION_FILE (input_location))
|
||||||
walk_tree (&new_stmt, set_input_location, NULL, NULL);
|
walk_tree (&new_stmt, set_input_location, NULL, NULL);
|
||||||
|
|
||||||
if (stmts == NULL)
|
if (stmts == NULL)
|
||||||
|
|
|
||||||
|
|
@ -313,13 +313,14 @@ set_source_filename (JCF *jcf, int index)
|
||||||
{
|
{
|
||||||
tree sfname_id = get_name_constant (jcf, index);
|
tree sfname_id = get_name_constant (jcf, index);
|
||||||
const char *sfname = IDENTIFIER_POINTER (sfname_id);
|
const char *sfname = IDENTIFIER_POINTER (sfname_id);
|
||||||
const char *old_filename = input_filename;
|
const char *old_filename = LOCATION_FILE (input_location);
|
||||||
int new_len = IDENTIFIER_LENGTH (sfname_id);
|
int new_len = IDENTIFIER_LENGTH (sfname_id);
|
||||||
if (old_filename != NULL)
|
if (old_filename != NULL)
|
||||||
{
|
{
|
||||||
int old_len = strlen (old_filename);
|
int old_len = strlen (old_filename);
|
||||||
/* Use the current input_filename (derived from the class name)
|
/* Use the filename from current input_location (derived from the
|
||||||
if it has a directory prefix, but otherwise matches sfname. */
|
class name) if it has a directory prefix, but otherwise matches
|
||||||
|
sfname. */
|
||||||
if (old_len > new_len
|
if (old_len > new_len
|
||||||
&& filename_cmp (sfname, old_filename + old_len - new_len) == 0
|
&& filename_cmp (sfname, old_filename + old_len - new_len) == 0
|
||||||
&& (old_filename[old_len - new_len - 1] == '/'
|
&& (old_filename[old_len - new_len - 1] == '/'
|
||||||
|
|
@ -1560,7 +1561,8 @@ parse_class_file (void)
|
||||||
linemap_add (line_table, LC_ENTER, 0, loc.file, loc.line);
|
linemap_add (line_table, LC_ENTER, 0, loc.file, loc.line);
|
||||||
}
|
}
|
||||||
file_start_location = input_location;
|
file_start_location = input_location;
|
||||||
(*debug_hooks->start_source_file) (input_line, input_filename);
|
(*debug_hooks->start_source_file) (LOCATION_LINE (input_location),
|
||||||
|
LOCATION_FILE (input_location));
|
||||||
|
|
||||||
java_mark_class_local (current_class);
|
java_mark_class_local (current_class);
|
||||||
|
|
||||||
|
|
@ -1618,7 +1620,8 @@ parse_class_file (void)
|
||||||
for (ptr += 2; --i >= 0; ptr += 4)
|
for (ptr += 2; --i >= 0; ptr += 4)
|
||||||
{
|
{
|
||||||
int line = GET_u2 (ptr);
|
int line = GET_u2 (ptr);
|
||||||
/* Set initial input_line to smallest linenumber.
|
/* Set initial line of input_location to smallest
|
||||||
|
* linenumber.
|
||||||
* Needs to be set before init_function_start. */
|
* Needs to be set before init_function_start. */
|
||||||
if (min_line == 0 || line < min_line)
|
if (min_line == 0 || line < min_line)
|
||||||
min_line = line;
|
min_line = line;
|
||||||
|
|
@ -1748,7 +1751,7 @@ java_parse_file (void)
|
||||||
int avail = 2000;
|
int avail = 2000;
|
||||||
finput = fopen (main_input_filename, "r");
|
finput = fopen (main_input_filename, "r");
|
||||||
if (finput == NULL)
|
if (finput == NULL)
|
||||||
fatal_error ("can%'t open %s: %m", input_filename);
|
fatal_error ("can%'t open %s: %m", LOCATION_FILE (input_location));
|
||||||
list = XNEWVEC (char, avail);
|
list = XNEWVEC (char, avail);
|
||||||
next = list;
|
next = list;
|
||||||
for (;;)
|
for (;;)
|
||||||
|
|
@ -1767,7 +1770,8 @@ java_parse_file (void)
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
{
|
{
|
||||||
if (! feof (finput))
|
if (! feof (finput))
|
||||||
fatal_error ("error closing %s: %m", input_filename);
|
fatal_error ("error closing %s: %m",
|
||||||
|
LOCATION_FILE (input_location));
|
||||||
*next = '\0';
|
*next = '\0';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,8 @@ diagnostic_report_current_function (diagnostic_context *context,
|
||||||
diagnostic_info *diagnostic)
|
diagnostic_info *diagnostic)
|
||||||
{
|
{
|
||||||
diagnostic_report_current_module (context, diagnostic->location);
|
diagnostic_report_current_module (context, diagnostic->location);
|
||||||
lang_hooks.print_error_function (context, input_filename, diagnostic);
|
lang_hooks.print_error_function (context, LOCATION_FILE (input_location),
|
||||||
|
diagnostic);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
||||||
|
|
@ -9101,7 +9101,7 @@ get_file_function_name (const char *type)
|
||||||
{
|
{
|
||||||
const char *file = main_input_filename;
|
const char *file = main_input_filename;
|
||||||
if (! file)
|
if (! file)
|
||||||
file = input_filename;
|
file = LOCATION_FILE (input_location);
|
||||||
/* Just use the file's basename, because the full pathname
|
/* Just use the file's basename, because the full pathname
|
||||||
might be quite long. */
|
might be quite long. */
|
||||||
p = q = ASTRDUP (lbasename (file));
|
p = q = ASTRDUP (lbasename (file));
|
||||||
|
|
@ -9118,7 +9118,7 @@ get_file_function_name (const char *type)
|
||||||
if (! name)
|
if (! name)
|
||||||
name = "";
|
name = "";
|
||||||
if (! file)
|
if (! file)
|
||||||
file = input_filename;
|
file = LOCATION_FILE (input_location);
|
||||||
|
|
||||||
len = strlen (file);
|
len = strlen (file);
|
||||||
q = (char *) alloca (9 + 17 + len + 1);
|
q = (char *) alloca (9 + 17 + len + 1);
|
||||||
|
|
|
||||||
|
|
@ -1044,8 +1044,6 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
|
||||||
!= UNKNOWN_LOCATION)
|
!= UNKNOWN_LOCATION)
|
||||||
/* The location to be used in a diagnostic about this expression. Do not
|
/* The location to be used in a diagnostic about this expression. Do not
|
||||||
use this macro if the location will be assigned to other expressions. */
|
use this macro if the location will be assigned to other expressions. */
|
||||||
#define EXPR_LOC_OR_HERE(NODE) (EXPR_HAS_LOCATION (NODE) \
|
|
||||||
? (NODE)->exp.locus : input_location)
|
|
||||||
#define EXPR_LOC_OR_LOC(NODE, LOCUS) (EXPR_HAS_LOCATION (NODE) \
|
#define EXPR_LOC_OR_LOC(NODE, LOCUS) (EXPR_HAS_LOCATION (NODE) \
|
||||||
? (NODE)->exp.locus : (LOCUS))
|
? (NODE)->exp.locus : (LOCUS))
|
||||||
#define EXPR_FILENAME(NODE) LOCATION_FILE (EXPR_CHECK ((NODE))->exp.locus)
|
#define EXPR_FILENAME(NODE) LOCATION_FILE (EXPR_CHECK ((NODE))->exp.locus)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue