gcc.git
9 years agovqshl.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:50:39 +0000 (15:50 +0000)]
vqshl.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshl.c: New file.

From-SVN: r223381

9 years agovqrshrun_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:49:29 +0000 (15:49 +0000)]
vqrshrun_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshrun_n.c: New file.

From-SVN: r223380

9 years agovqrshrn_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:48:15 +0000 (15:48 +0000)]
vqrshrn_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshrn_n.c: New file.

From-SVN: r223379

9 years agovqrshl.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:46:48 +0000 (15:46 +0000)]
vqrshl.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshl.c: New file.

From-SVN: r223377

9 years agovqrdmulh_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:45:15 +0000 (15:45 +0000)]
vqrdmulh_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_n.c: New file.

From-SVN: r223376

9 years agovqrdmulh_lane.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:43:58 +0000 (15:43 +0000)]
vqrdmulh_lane.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_lane.c: New file.

From-SVN: r223375

9 years agovqrdmulh.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:42:33 +0000 (15:42 +0000)]
vqrdmulh.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh.c: New file.

From-SVN: r223374

9 years agovqmovun.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:40:35 +0000 (15:40 +0000)]
vqmovun.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqmovun.c: New file.

From-SVN: r223373

9 years agovqmovn.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:38:59 +0000 (15:38 +0000)]
vqmovn.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqmovn.c: New file.

From-SVN: r223372

9 years ago* config/alpha/alpha.c (alpha_legitimize_reload_address)
Uros Bizjak [Tue, 19 May 2015 15:09:09 +0000 (17:09 +0200)]
* config/alpha/alpha.c (alpha_legitimize_reload_address)
(alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
(alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
Use CASE_CONST_SCALAR_INT.
(print_operand) <case 'M'>: Use mode_width_operand to check the
value of the constant.
* config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
* config/alpha/predicates.md (input_operand): Use general_operand
instead of match_code as operand check.
(symbolic_operand): Use match_code with subexpression digits.
* config/alpha/constraints.md (Q): Ditto.

From-SVN: r223371

9 years agooptabs: Fix vec_perm -> V16QI middle end lowering.
Andreas Krebbel [Tue, 19 May 2015 14:51:47 +0000 (14:51 +0000)]
optabs: Fix vec_perm -> V16QI middle end lowering.

The current implementation re-uses the location of the selection
pattern to generate a new one.  This fails if the pattern resides in a
read-only location.

gcc/
* optabs.c (expand_vec_perm): Don't re-use SEL as target operand.

From-SVN: r223369

9 years agoS/390 Fix secondary reload issue with store/load relative operands.
Andreas Krebbel [Tue, 19 May 2015 14:49:35 +0000 (14:49 +0000)]
S/390 Fix secondary reload issue with store/load relative operands.

We need a scratch register for loading from or storing to a symbolic
memory reference where we cannot use the load/store relative
instructions for.  However, the check currently fails to handle
floating point modes in GPRs correctly.

gcc/
* config/s390/s390.c (s390_secondary_reload): Fix check for
          load/store relative.

From-SVN: r223368

9 years agorecog: Increase max number of alternatives.
Andreas Krebbel [Tue, 19 May 2015 14:47:11 +0000 (14:47 +0000)]
recog: Increase max number of alternatives.

With the vector facility support z13 mov patterns have more than 30
alternatives.

gcc/
* recog.h: Increase MAX_RECOG_ALTERNATIVES.
Change type of alternative_mask to uint64_t.

From-SVN: r223367

9 years agore PR rtl-optimization/66187 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu)
Jakub Jelinek [Tue, 19 May 2015 13:54:32 +0000 (15:54 +0200)]
re PR rtl-optimization/66187 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu)

PR tree-optimization/66187
* match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
Pass TYPE_SIGN to tree_int_cst_min_precision.  If
!TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.

* gcc.c-torture/execute/pr66187.c: New test.
* gcc.dg/pr66187-1.c: New test.
* gcc.dg/pr66187-2.c: New test.

From-SVN: r223366

9 years agoReplace line_map union with C++ class hierarchy
David Malcolm [Tue, 19 May 2015 13:18:01 +0000 (13:18 +0000)]
Replace line_map union with C++ class hierarchy

gcc/ChangeLog:
* diagnostic.c (diagnostic_report_current_module): Strengthen
local "new_map" from const line_map * to
const line_map_ordinary *.
* genmatch.c (error_cb): Likewise for local "map".
(output_line_directive): Likewise for local "map".
* input.c (expand_location_1): Likewise for local "map".
Pass NULL rather than &map to
linemap_unwind_to_first_non_reserved_loc, since the value is never
read from there, and the value written back not read from here.
(is_location_from_builtin_token): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(dump_location_info): Strengthen locals "map" from
line_map *, one to const line_map_ordinary *, the other
to const line_map_macro *.
* tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
const line_map * to const line_map_macro *.
(maybe_unwind_expanded_macro_loc): Add a call to
linemap_check_macro when writing to the "map" field of the
loc_map_pair.
Introduce local const line_map_ordinary * "ord_map", using it in
place of "map" in the part of the function where we know we have
an ordinary map.  Strengthen local "m" from const line_map * to
const line_map_ordinary *.

gcc/ada/ChangeLog:
* gcc-interface/trans.c (Sloc_to_locus1): Strenghthen local "map"
from line_map * to line_map_ordinary *.

gcc/c-family/ChangeLog:
* c-common.h (fe_file_change): Strengthen param from
const line_map * to const line_map_ordinary *.
(pp_file_change): Likewise.
* c-lex.c (fe_file_change): Likewise.
(cb_define): Use linemap_check_ordinary when invoking
SOURCE_LINE.
(cb_undef): Likewise.
* c-opts.c (c_finish_options): Use linemap_check_ordinary when
invoking cb_file_change.
(c_finish_options): Likewise.
(push_command_line_include): Likewise.
(cb_file_change): Strengthen param "new_map" from
const line_map * to const line_map_ordinary *.
* c-ppoutput.c (cb_define): Likewise for local "map".
(pp_file_change): Likewise for param "map" and local "from".

gcc/fortran/ChangeLog:
* cpp.c (maybe_print_line): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(cb_file_change): Likewise for param "map" and local "from".
(cb_line_change): Likewise for local "map".

libcpp/ChangeLog:
* directives.c (do_line): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(do_linemarker): Likewise.
(_cpp_do_file_change): Assert that we're not dealing with
a macro map.  Introduce local "ord_map" via a call to
linemap_check_ordinary, guarded within the check for
non-NULL.  Use it for typesafety.
* files.c (cpp_make_system_header): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
* include/cpplib.h (struct cpp_callbacks): Likewise for second
parameter of "file_change" callback.
* include/line-map.h (struct line_map): Convert from a struct
containing a union to a base class.
(struct line_map_ordinary): Convert to a subclass of line_map.
(struct line_map_macro): Likewise.
(linemap_check_ordinary): Strengthen return type from line_map *
to line_map_ordinary *, and add a const-variant.
(linemap_check_macro): New pair of functions.
(ORDINARY_MAP_STARTING_LINE_NUMBER): Strengthen param from
const line_map * to const line_map_ordinary *, eliminating call
to linemap_check_ordinary.  Likewise for the non-const variant.
(ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
(ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
(ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Likewise.
(ORDINARY_MAP_FILE_NAME): Likewise.
(MACRO_MAP_MACRO): Strengthen param from const line_map * to
const line_map_macro *.  Likewise for the non-const variant.
(MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
(MACRO_MAP_LOCATIONS): Likewise.
(MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
(struct maps_info): Replace with...
(struct maps_info_ordinary):...this and...
(struct maps_info_macro): ...this.
(struct line_maps): Convert fields "info_ordinary" and
"info_macro" to the above new structs.
(LINEMAPS_MAP_INFO): Delete both functions.
(LINEMAPS_MAPS): Likewise.
(LINEMAPS_ALLOCATED): Rewrite both variants to avoid using
LINEMAPS_MAP_INFO.
(LINEMAPS_USED): Likewise.
(LINEMAPS_CACHE): Likewise.
(LINEMAPS_MAP_AT): Likewise.
(LINEMAPS_ORDINARY_MAPS): Strengthen return type from line_map *
to line_map_ordinary *.
(LINEMAPS_ORDINARY_MAP_AT): Likewise.
(LINEMAPS_LAST_ORDINARY_MAP): Likewise.
(LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
(LINEMAPS_MACRO_MAPS): Strengthen return type from line_map * to
line_map_macro *.
(LINEMAPS_MACRO_MAP_AT): Likewise.
(LINEMAPS_LAST_MACRO_MAP): Likewise.
(LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
(linemap_map_get_macro_name): Strengthen param from
const line_map * to const line_map_macro *.
(SOURCE_LINE): Strengthen first param from const line_map * to
const line_map_ordinary *, removing call to
linemap_check_ordinary.
(SOURCE_COLUMN): Likewise.
(LAST_SOURCE_LINE_LOCATION): Likewise.
(LAST_SOURCE_LINE): Strengthen first param from const line_map *
to const line_map_ordinary *.
(LAST_SOURCE_COLUMN): Likewise.
(INCLUDED_FROM): Strengthen return type from line_map * to
line_map_ordinary *., and second param from const line_map *
to const line_map_ordinary *, removing call to
linemap_check_ordinary.
(MAIN_FILE_P): Strengthen param from const line_map * to
const line_map_ordinary *, removing call to
linemap_check_ordinary.
(linemap_position_for_line_and_column): Strengthen param from
const line_map * to const line_map_ordinary *.
(LINEMAP_FILE): Strengthen param from const line_map * to
const line_map_ordinary *, removing call to
linemap_check_ordinary.
(LINEMAP_LINE): Likewise.
(LINEMAP_SYSP): Likewise.
(linemap_resolve_location): Strengthen final param from
const line_map ** to const line_map_ordinary **.
* internal.h (CPP_INCREMENT_LINE): Likewise for local "map".
(linemap_enter_macro): Strengthen return type from
const line_map * to const line_map_macro *.
(linemap_add_macro_token): Likewise for first param.
* line-map.c (linemap_check_files_exited): Strengthen local "map"
from const line_map * to const line_map_ordinary *.
(new_linemap): Introduce local "map_size" and use it when
calculating how large the buffer should be.  Rewrite based
on change of info_macro and info_ordinary into distinct types.
(linemap_add): Strengthen locals "map" and "from" from line_map *
to line_map_ordinary *.
(linemap_enter_macro): Strengthen return type from
const line_map * to const line_map_macro *, and local "map" from
line_map * to line_map_macro *.
(linemap_add_macro_token): Strengthen param "map" from
const line_map * to const line_map_macro *.
(linemap_line_start): Strengthen local "map" from line_map * to
line_map_ordinary *.
(linemap_position_for_column): Likewise.
(linemap_position_for_line_and_column): Strengthen first param
from const line_map * to const line_map_ordinary *.
(linemap_position_for_loc_and_offset): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(linemap_ordinary_map_lookup): Likewise for return type and locals
"cached" and "result".
(linemap_macro_map_lookup): Strengthen return type and locals
"cached" and "result" from const line_map * to
const line_map_macro *.
(linemap_macro_map_loc_to_exp_point): Likewise for param "map".
(linemap_macro_map_loc_to_def_point): Likewise.
(linemap_macro_map_loc_unwind_toward_spelling): Likewise.
(linemap_get_expansion_line): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(linemap_get_expansion_filename): Likewise.
(linemap_map_get_macro_name): Strengthen param from
const line_map * to const line_map_macro *.
(linemap_location_in_system_header_p): Add call to
linemap_check_ordinary in region guarded by
!linemap_macro_expansion_map_p.  Introduce local "macro_map" via
linemap_check_macro in other region, using it in place of "map"
for typesafety.
(first_map_in_common_1): Add calls to linemap_check_macro.
(trace_include): Strengthen param "map" from const line_map * to
const line_map_ordinary *.
(linemap_macro_loc_to_spelling_point): Strengthen final param from
const line_map ** to const line_map_ordinary **.  Replace a
C-style cast with a const_cast, and add calls to
linemap_check_macro and linemap_check_ordinary.
(linemap_macro_loc_to_def_point): Likewise.
(linemap_macro_loc_to_exp_point): Likewise.
(linemap_resolve_location): Strengthen final param from
const line_map ** to const line_map_ordinary **.
(linemap_unwind_toward_expansion): Introduce local "macro_map" via
a checked cast and use it in place of *map.
(linemap_unwind_to_first_non_reserved_loc): Strengthen local
"map1" from const line_map * to const line_map_ordinary *.
(linemap_expand_location): Introduce local "ord_map" via a checked
cast and use it in place of map.
(linemap_dump): Make local "map" const.  Strengthen local
"includer_map" from line_map * to const line_map_ordinary *.
Introduce locals "ord_map" and "macro_map" via checked casts and
use them in place of "map" for typesafety.
(linemap_dump_location): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(linemap_get_file_highest_location): Update for elimination of
union.
(linemap_get_statistics): Strengthen local "cur_map" from
line_map * to const line_map_macro *.  Update uses of sizeof to
use the appropriate line_map subclasses.
* macro.c (_cpp_warn_if_unused_macro): Add call to
linemap_check_ordinary.
(builtin_macro): Strengthen local "map" from const line_map * to
const line_map_macro *.
(enter_macro_context): Likewise.
(replace_args): Likewise.
(tokens_buff_put_token_to): Likewise for param "map".
(tokens_buff_add_token): Likewise.

From-SVN: r223365

9 years agoAdd cpu_defines.h for ARM.
Ramana Radhakrishnan [Tue, 19 May 2015 12:47:50 +0000 (12:47 +0000)]
Add cpu_defines.h for ARM.

2015-05-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* configure.host: Define cpu_defines_dir for ARM.
* config/cpu/arm/cpu_defines.h: New file.

From-SVN: r223361

9 years agore PR rtl-optimization/66156 ([msp430] wrong code generated with -O2 -mlarge (zero...
Nick Clifton [Tue, 19 May 2015 11:42:44 +0000 (11:42 +0000)]
re PR rtl-optimization/66156 ([msp430] wrong code generated with -O2 -mlarge (zero extension HI -> SI))

PR target/66156
* config/msp430/msp430.md (zero_extendhisi2): Add support for
separate source and destination registers.

From-SVN: r223354

9 years agoFix gcc.dg/vect/bb-slp-35.c on SPARC
Rainer Orth [Tue, 19 May 2015 11:40:44 +0000 (11:40 +0000)]
Fix gcc.dg/vect/bb-slp-35.c on SPARC

* gcc.dg/vect/bb-slp-35.c: Adjust.

From-SVN: r223353

9 years agoplugin-nvptx.c (nvptx_get_num_devices): Return zero on cuInit failure.
Julian Brown [Tue, 19 May 2015 11:06:31 +0000 (11:06 +0000)]
plugin-nvptx.c (nvptx_get_num_devices): Return zero on cuInit failure.

* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
on cuInit failure.

From-SVN: r223352

9 years agore PR tree-optimization/66165 (vect_transform_slp_perm_load: vec out of range ?)
Richard Biener [Tue, 19 May 2015 09:36:35 +0000 (09:36 +0000)]
re PR tree-optimization/66165 (vect_transform_slp_perm_load: vec out of range ?)

2015-05-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66165
* tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
for no load permutation.

* gcc.dg/torture/pr66165.c: New testcase.

PR tree-optimization/66185
* tree-vect-slp.c (vect_build_slp_tree): Properly roll back
when building the SLP node from scalars.

* gcc.dg/torture/pr66185.c: New testcase.

From-SVN: r223349

9 years agoinsn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
Eric Botcazou [Tue, 19 May 2015 09:33:27 +0000 (09:33 +0000)]
insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.

* insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
* builtins.c (expand_builtin_update_setjmp_buf): Make global.
(expand_stack_restore): Call record_new_stack_level.
(expand_stack_save): Do not call do_pending_stack_adjust.
* builtins.h (expand_builtin_update_setjmp_buf): Declare.
* calls.c (expand_call): Call record_new_stack_level for alloca.
* except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
(update_sjlj_context): New global function.
* except.h (update_sjlj_context): Declare.
* explow.c (record_new_stack_level): New global function.
(allocate_dynamic_stack_space): Call record_new_stack_level.
* explow.h (record_new_stack_level): Declare.
* final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
* cfgrtl.c (duplicate_insn_chain): Likewise.

Co-Authored-By: Tristan Gingold <gingold@adacore.com>
From-SVN: r223348

9 years ago[calls.c] Remove #ifdef checks on STACK_GROWS_DOWNWARD
Kyrylo Tkachov [Tue, 19 May 2015 08:43:17 +0000 (08:43 +0000)]
[calls.c] Remove #ifdef checks on STACK_GROWS_DOWNWARD

* calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
(mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
STACK_GROWS_DOWNWARD as normal if.
(expand_call): Likewise.

From-SVN: r223347

9 years agore PR target/54236 ([SH] Improve addc and subc insn utilization)
Oleg Endo [Tue, 19 May 2015 08:00:41 +0000 (08:00 +0000)]
re PR target/54236 ([SH] Improve addc and subc insn utilization)

gcc/
PR target/54236
* config/sh/sh.md (*round_int_even): New insn_and_split and
accompanying new unnamed split.

gcc/testsuite/
PR target/54236
* gcc.target/sh/pr54236-2.c: Adjust expected insn counts.

From-SVN: r223346

9 years agobitmap.c (bitmap_set_range): Handle count==1 specially.
Richard Sandiford [Tue, 19 May 2015 07:11:37 +0000 (07:11 +0000)]
bitmap.c (bitmap_set_range): Handle count==1 specially.

gcc/
* bitmap.c (bitmap_set_range): Handle count==1 specially.
(bitmap_clear_range): Likewise.
* cfgcleanup.c (mark_effect): Use bitmap_clear_range and
bitmap_set_range unconditionally.
* df-problems.c (df_simulate_one_insn_forwards): Likewise.
* df-scan.c (df_mark_reg): Likewise.
* haifa-sched.c (setup_ref_regs): Likewise.
* sched-rgn.c (update_live_1): Likewise.

From-SVN: r223344

9 years agoregs.h (END_HARD_REGNO): Delete.
Richard Sandiford [Tue, 19 May 2015 07:11:18 +0000 (07:11 +0000)]
regs.h (END_HARD_REGNO): Delete.

gcc/
* regs.h (END_HARD_REGNO): Delete.
(END_REGNO): Move to...
* rtl.h: ...here.
* bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
* caller-save.c (mark_set_regs): Likewise.
* combine.c (move_deaths, distribute_notes): Likewise.
* cse.c (invalidate, invalidate_for_call): Likewise.
* df-scan.c (df_ref_record): Likewise.
* postreload-gcse.c (reg_changed_after_insn_p): Likewise.
(record_last_reg_set_info): Likewise.
* reg-stack.c (convert_regs_exit): Likewise.
* reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
* resource.c (update_live_status): Likewise.
* rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.

From-SVN: r223343

9 years agortl.h (reg_info): Add an nregs field.
Richard Sandiford [Tue, 19 May 2015 07:10:42 +0000 (07:10 +0000)]
rtl.h (reg_info): Add an nregs field.

gcc/
* rtl.h (reg_info): Add an nregs field.
(REG_NREGS): Use it.
(SET_REGNO_RAW): Delete.
(set_regno_raw): New function.
* regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
(END_REGNO): Redefine in terms of REG_NREGS.
* read-rtl.c (read_rtx_code): Call set_regno_raw instead of
SET_REGNO_RAW.
* emit-rtl.c (set_mode_and_regno): Likewise.
* df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
instead of SET_REGNO_RAW.

From-SVN: r223342

9 years agortl.h (PUT_MODE_RAW): New macro.
Richard Sandiford [Tue, 19 May 2015 07:10:30 +0000 (07:10 +0000)]
rtl.h (PUT_MODE_RAW): New macro.

gcc/
* rtl.h (PUT_MODE_RAW): New macro.
(PUT_REG_NOTE_KIND): Use it.
(set_mode_and_regno): Declare.
(gen_raw_REG): Change regno to "unsigned int".
(gen_rtx_REG): Change "unsigned" to "unsigned int".
(PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
use set_mode_and_regno to change the mode of registers.
* gengenrtl.c (gendef): Use PUT_MODE_RAW.
* emit-rtl.c (set_mode_and_regno): New function.
(gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
* caller-save.c (reg_save_code): Use set_mode_and_regno.
* expr.c (init_expr_target): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.

From-SVN: r223341

9 years agocaller-save.c (init_caller_save): Use word_mode and FIRST_PSEUDO_REGISTER when creati...
Richard Sandiford [Tue, 19 May 2015 07:10:15 +0000 (07:10 +0000)]
caller-save.c (init_caller_save): Use word_mode and FIRST_PSEUDO_REGISTER when creating temporary rtxes.

gcc/
* caller-save.c (init_caller_save): Use word_mode and
FIRST_PSEUDO_REGISTER when creating temporary rtxes.
* expr.c (init_expr_target): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* postreload.c (reload_cse_regs_1): Likewise.

From-SVN: r223340

9 years agortl.def (REG): Change format to "r".
Richard Sandiford [Tue, 19 May 2015 07:09:42 +0000 (07:09 +0000)]
rtl.def (REG): Change format to "r".

gcc/
* rtl.def (REG): Change format to "r".
* rtl.h (rtunion): Remove rt_reg.
(reg_info): New structure.
(rtx_def): Add reg field to main union.
(X0REGATTR): Delete.
(REG_CHECK): New macro.
(SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
* rtl.c (rtx_format): Document "r".
(rtx_code_size): Handle REG specially.
* gengenrtl.c (special_format): Return true for formats
that include 'r'.
* gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
Deal with REG_ATTRS after the field loop.
* emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
* expmed.c (init_expmed): Call gen_raw_REG instead of
gen_rtx_raw_REG.
* expr.c (init_expr_target): Likewise.
* regcprop.c (maybe_mode_change): Likewise.
* varasm.c (make_decl_rtl): Likewise.
* final.c (leaf_renumber_regs_insn): Return early after
handling REGs.
* genemit.c (gen_exp): Handle 'r' fields.
* genpeep.c (match_rtx): Likewise.
* gensupport.c (subst_pattern_match): Likewise.
(get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
(alter_constraints, subst_dup): Likewise.
* read-rtl.c (read_rtx_code): Likewise.
* print-rtl.c (print_rtx): Likewise.
* genrecog.c (find_operand, find_matching_operand): Likewise.
(validate_pattern, match_pattern_2): Likewise.
(parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
(rtx_test::regno_field): New function.
(operator ==, safe_to_hoist_p, transition_parameter_type)
(parameter_type_string, print_parameter_value)
(print_nonbool_test, print_test): Handle new enum values.
* cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
* lra-constraints.c (operands_match_p): Likewise.

From-SVN: r223339

9 years agodf.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
Richard Sandiford [Tue, 19 May 2015 07:09:23 +0000 (07:09 +0000)]
df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.

gcc/
* df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
Change type of new_regno to unsigned int.
* df-scan.c (df_ref_change_reg_with_loc_1): Change type of
new_regno to unsigned int.
(df_ref_change_reg_with_loc): Remove old_regno parameter.
Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
* rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
(SET_REGNO_RAW): Add space after ",".

From-SVN: r223338

9 years agortl.h (REG_NREGS): New macro
Richard Sandiford [Tue, 19 May 2015 07:09:06 +0000 (07:09 +0000)]
rtl.h (REG_NREGS): New macro

gcc/
* rtl.h (REG_NREGS): New macro
* alias.c (record_set): Use it.
* cfgcleanup.c (mark_effect): Likewise.
* combine.c (likely_spilled_retval_1): Likewise.
(likely_spilled_retval_p, can_change_dest_mode): Likewise.
(move_deaths, distribute_notes): Likewise.
* cselib.c (cselib_record_set): Likewise.
* df-problems.c (df_simulate_one_insn_forwards): Likewise.
* df-scan.c (df_mark_reg): Likewise.
* dse.c (look_for_hardregs): Likewise.
* dwarf2out.c (reg_loc_descriptor): Likewise.
(multiple_reg_loc_descriptor): Likewise.
* expr.c (write_complex_part, read_complex_part): Likewise.
(emit_move_complex): Likewise.
* haifa-sched.c (setup_ref_regs): Likewise.
* ira-lives.c (mark_hard_reg_live): Likewise.
* lra.c (lra_set_insn_recog_data): Likewise.
* mode-switching.c (create_pre_exit): Likewise.
* postreload.c (reload_combine_recognize_const_pattern): Likewise.
(reload_combine_recognize_pattern): Likewise.
(reload_combine_note_use, move2add_record_mode): Likewise.
(reload_cse_move2add): Likewise.
* reg-stack.c (subst_stack_regs_pat): Likewise.
* regcprop.c (kill_value, copy_value): Likewise.
(copyprop_hardreg_forward_1): Likewise.
* regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
(build_def_use): Likewise.
* sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
(deps_analyze_insn): Likewise.
* sched-rgn.c (check_live_1, update_live_1): Likewise.
* sel-sched.c (count_occurrences_equiv): Likewise.
* valtrack.c (dead_debug_insert_temp): Likewise.

From-SVN: r223337

9 years agocfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
Richard Sandiford [Tue, 19 May 2015 07:08:49 +0000 (07:08 +0000)]
cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.

gcc/
* cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
* dse.c (note_add_store): Likewise.
* ira-lives.c (mark_hard_reg_dead): Likewise.
* loop-invariant.c (mark_reg_store): Likewise.
(mark_reg_death): Likewise.
* postreload.c (reload_combine): Likewise.
(reload_combine_note_store): Likewise.
(reload_combine_note_use): Likewise.
* recog.c (peep2_reg_dead_p): Likewise.

From-SVN: r223336

9 years agopredicates.md (gpc_reg_operand): Don't allow all hard registers numbered greater...
Alan Modra [Tue, 19 May 2015 06:10:58 +0000 (15:40 +0930)]
predicates.md (gpc_reg_operand): Don't allow all hard registers numbered greater or equal to ARG_POINTER_REGNUM.

* config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
hard registers numbered greater or equal to ARG_POINTER_REGNUM.
(reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
unused predicates.
* config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
* config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
* config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.

From-SVN: r223335

9 years agomips.md (JOIN_MODE): New mode iterator.
Prachi Godbole [Tue, 19 May 2015 05:06:03 +0000 (05:06 +0000)]
mips.md (JOIN_MODE): New mode iterator.

gcc/
* config/mips/mips.md (JOIN_MODE): New mode iterator.
(join2_load_Store<JOIN_MODE:mode>): New pattern.
(join2_loadhi): Likewise.
(define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
load-load and store-stores.
* config/mips/mips.opt (mload-store-pairs): New option.
(TARGET_LOAD_STORE_PAIRS): New macro.
* config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
* config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
* config/mips/mips.c (mips_load_store_bonding_p): New function.

gcc/testsuite/
* gcc.target/mips/p5600-bonding.c : New file.

From-SVN: r223334

9 years agoUse std::swap instead of explicit swaps
Mikhail Maltsev [Tue, 19 May 2015 04:24:31 +0000 (04:24 +0000)]
Use std::swap instead of explicit swaps

gcc/
* bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
explicit swaps.
* dojump.c (do_compare_rtx_and_jump): Likewise.
* expmed.c (emit_store_flag_1): Likewise.
* fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
* final.c (sprint_ul): Use std::reverse for reversing a string.
* fold-const.c (extract_muldiv_1): Use std::swap.
* genmodes.c (emit_mode_int_n): Likewise.
* ifcvt.c (dead_or_predicable): Likewise.
* ira-build.c (ira_merge_live_ranges): Likewise.
(swap_allocno_copy_ends_if_necessary): Likewise.
* ira.c (ira_setup_alts): Likewise.
* loop-iv.c (iv_analyze_expr): Likewise.
(implies_p): Likewise.
(canon_condition): Likewise.
* lra-constraints.c (swap_operands): Likewise.
* lra-lives.c (lra_merge_live_ranges): Likewise.
* omega.c (swap): Remove.
(bswap): Remove.
(omega_unprotect_1): Use std::swap.
(omega_solve_geq): Likewise.
* optabs.c (expand_binop_directly): Likewise.
(expand_binop): Likewise.
(emit_conditional_move): Likewise.
(emit_conditional_add): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.
* reg-stack.c (emit_swap_insn): Likewise.
(swap_to_top): Likewise.
(compare_for_stack_reg): Likewise.
(subst_asm_stack_regs): Likewise.
* reload.c (find_reloads): Likewise.
* reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
* sel-sched.c (invoke_reorder_hooks): Likewise.
(create_block_for_bookkeeping): Likewise.
* tree-data-ref.c (lambda_matrix_row_exchange): Remove.
(lambda_matrix_right_hermite): Use std::swap.
* tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
* tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
* tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
* tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
* tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
* tree-vrp.c (compare_ranges): Likewise.
* var-tracking.c (add_with_sets): Likewise.
(vt_find_locations): Likewise.

gcc/c/
* c-typeck.c (build_array_ref): Use std::swap instead of explicit
swaps

gcc/cp/
* typeck.c (composite_pointer_type): Use std::swap instead of explicit
swaps.

gcc/c-family/
* c-common.c (shorten_compare): Use std::swap instead of explicit swaps.

gcc/fortran/
* interface.c (compare_actual_formal): Use std::swap instead of
explicit swaps.
* trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
* trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.

From-SVN: r223332

9 years agoDaily bump.
GCC Administrator [Tue, 19 May 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r223330

9 years agore PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))
Steven G. Kargl [Mon, 18 May 2015 23:26:38 +0000 (23:26 +0000)]
re PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66057
* interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
* match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66057
* gfortran.dg/interface_operator_1.f90: New tests.

From-SVN: r223326

9 years agore PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))
Steven G. Kargl [Mon, 18 May 2015 23:09:49 +0000 (23:09 +0000)]
re PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66057
* decl.c(gfc_match_generic):  Detected a malformed GENERIC statement.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66057
* gfortran.dg/generic_29.f90: New tests.

From-SVN: r223325

9 years agore PR fortran/66052 (Segmentation fault for misplaced protected statement)
Steven G. Kargl [Mon, 18 May 2015 22:52:52 +0000 (22:52 +0000)]
re PR fortran/66052 (Segmentation fault for misplaced protected statement)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66052
* decl.c(gfc_match_protected): Prevent dereference of NULL pointer.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66052
* gfortran.dg/protected_9.f90: New test.

From-SVN: r223324

9 years agore PR fortran/66045 (ICE on incorrect code with null)
Steven G. Kargl [Mon, 18 May 2015 22:21:08 +0000 (22:21 +0000)]
re PR fortran/66045 (ICE on incorrect code with null)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66045
* expr.c (gfc_check_assign):  Check for assignment of NULL() instead
of the (intended) pointer assignment.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66045
* gfortran.dg/null1.f90: New test.

From-SVN: r223322

9 years agore PR fortran/66044 (ICE on misplaced entry statement)
Steven G. Kargl [Mon, 18 May 2015 22:06:48 +0000 (22:06 +0000)]
re PR fortran/66044 (ICE on misplaced entry statement)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66044
* decl.c(gfc_match_entry):  Change a gfc_internal_error() into
a gfc_error()

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66044
* gfortran.dg/entry_21.f90: New test.

From-SVN: r223321

9 years agore PR fortran/66043 (ICE on storage_size of null or output of null array)
Steven G. Kargl [Mon, 18 May 2015 21:52:03 +0000 (21:52 +0000)]
re PR fortran/66043 (ICE on storage_size of null or output of null array)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66043
* check.c (gfc_check_storage_size): Prevent the direct use of NULL()
in STORAGE_SIZE() reference.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66043
* gfortran.dg/storage_size_6.f90: New tests.

From-SVN: r223320

9 years agore PR fortran/66040 (ICE on misplaced sequence in function)
Steven G. Kargl [Mon, 18 May 2015 21:16:05 +0000 (21:16 +0000)]
re PR fortran/66040 (ICE on misplaced sequence in function)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66040
* parse.c(verify_st_order): Replace a gfc_internal_error with your
generic gfc_error.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66040
* gfortran.dg/misplaced_statement.f90: New test.

From-SVN: r223318

9 years ago* sv.po: Update.
Joseph Myers [Mon, 18 May 2015 21:06:01 +0000 (22:06 +0100)]
* sv.po: Update.

From-SVN: r223316

9 years agore PR fortran/66039 (ICE on incomplete parentheses at rewind, flush, endfile, backspace)
Steven G. Kargl [Mon, 18 May 2015 21:04:33 +0000 (21:04 +0000)]
re PR fortran/66039 (ICE on incomplete parentheses at rewind, flush, endfile, backspace)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66039
* io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
BACKSPACE, and ENDFILE statements

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66039
* gfortran.dg/filepos1.f90: New test

From-SVN: r223315

9 years agorevert: Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
Jason Merrill [Mon, 18 May 2015 20:22:14 +0000 (16:22 -0400)]
revert: Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.

Revert:
* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.

From-SVN: r223314

9 years agore PR fortran/64925 (ICE with same names for dummy arg and internal procedure)
Steven G. Kargl [Mon, 18 May 2015 19:25:49 +0000 (19:25 +0000)]
re PR fortran/64925 (ICE with same names for dummy arg and internal procedure)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/64925
* symbol.c(check_conflict):  Check for a conflict between a dummy
argument and an internal procedure name.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/64925
* gfortran.dg/pr64925.f90: New test.

From-SVN: r223313

9 years ago* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
Jason Merrill [Mon, 18 May 2015 19:21:54 +0000 (15:21 -0400)]
* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.

From-SVN: r223312

9 years agopr41521_0.f90: Move INTERFACE statement in program unit.
Steven G. Kargl [Mon, 18 May 2015 18:59:48 +0000 (18:59 +0000)]
pr41521_0.f90: Move INTERFACE statement in program unit.

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/lto/pr41521_0.f90: Move INTERFACE statement in program
unit.
* gfortran.dg/lto/pr41576_1.f90: Ditto.

From-SVN: r223309

9 years agofreebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build pie executables.
Andreas Tobler [Mon, 18 May 2015 18:37:18 +0000 (20:37 +0200)]
freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build pie executables.

2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>

gcc:
        * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
pie executables.
(FBSD_ENDFILE_SPEC): Likewise.
* config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
config/freebsd-spec.h.
(ENDFILE_SPEC): Likewise.

gcc/testsuite:
* lib/target-supports.exp (check_effective_target_pie): Add *-*-freebsd*
to the family of pie capable targets.

From-SVN: r223308

9 years agopt.c (retrieve_specialization): Make sure our arguments have gone through strip_typedefs.
Jason Merrill [Mon, 18 May 2015 18:08:53 +0000 (14:08 -0400)]
pt.c (retrieve_specialization): Make sure our arguments have gone through strip_typedefs.

* pt.c (retrieve_specialization): Make sure our arguments have
gone through strip_typedefs.

From-SVN: r223305

9 years agopt.c (tsubst_decl): Call coerce_innermost_template_parms.
Jason Merrill [Mon, 18 May 2015 18:08:48 +0000 (14:08 -0400)]
pt.c (tsubst_decl): Call coerce_innermost_template_parms.

* pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
(determine_specialization): Call coerce_template_parms.

From-SVN: r223304

9 years agoDR 1391
Jason Merrill [Mon, 18 May 2015 17:14:11 +0000 (13:14 -0400)]
DR 1391

DR 1391
* pt.c (type_unification_real): Check convertibility here.
(unify_one_argument): Not here.

From-SVN: r223301

9 years agotree.c (strip_typedefs_expr): Fix typo.
Jason Merrill [Mon, 18 May 2015 17:14:04 +0000 (13:14 -0400)]
tree.c (strip_typedefs_expr): Fix typo.

* tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
(strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
[TREE_LIST]: Fix no-change case.

From-SVN: r223300

9 years ago* ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.
Jason Merrill [Mon, 18 May 2015 17:13:59 +0000 (13:13 -0400)]
* ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.

From-SVN: r223299

9 years agore PR rtl-optimization/57032 (internal compiler error: Max. number of generated reloa...
Uros Bizjak [Mon, 18 May 2015 16:34:23 +0000 (18:34 +0200)]
re PR rtl-optimization/57032 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))

PR target/57032
* config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
Check for a memory location that is not a reference (using an AND)
to an unaligned location here.
* config/alpha/predicates.md (normal_memory_operand): Remove.

Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r223298

9 years agocheck_GNU_style.sh: Don't do 80 char check line by line
Tom de Vries [Mon, 18 May 2015 15:44:55 +0000 (15:44 +0000)]
check_GNU_style.sh: Don't do 80 char check line by line

2015-05-18  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style.sh: Add temp files tmp2 and tmp3.
(cat_with_prefix): New function, using global variable prefix.
(col): Make prefix a global variable. Rewrite to process file at a time
rather than line at a time.  Print part longer than 80 chars in red.

From-SVN: r223297

9 years agoarm.md (andsi_not_shiftsi_si_scc): New pattern.
Alex Velenko [Mon, 18 May 2015 14:38:41 +0000 (14:38 +0000)]
arm.md (andsi_not_shiftsi_si_scc): New pattern.

gcc/config

2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>

   * arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
   (andsi_not_shiftsi_si_scc_no_reuse): New pattern.

gcc/testsuite

2015-05-18  Alex Velenko <Alex.Velenko@arm.com>

   * gcc.target/arm/bics_1.c : New testcase.
   * gcc.target/arm/bics_2.c : New testcase.
   * gcc.target/arm/bics_3.c : New testcase.
   * gcc.target/arm/bics_4.c : New testcase.

From-SVN: r223295

9 years agoFix ICE when both micromips and nomicromips attributes are used.
Robert Suchanek [Mon, 18 May 2015 14:32:19 +0000 (14:32 +0000)]
Fix ICE when both micromips and nomicromips attributes are used.

gcc/ChangeLog:

2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>

* config/mips/mips.c (micromips_globals): New variable.
(mips_set_compression_mode): Save and reinitialize target-dependent
state for microMIPS.

gcc/testsuite/ChangeLog:

2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>

* gcc.target/mips/umips-attr.c: New test.

From-SVN: r223294

9 years agoIPA ICF: add support for debug counter.
Martin Liska [Mon, 18 May 2015 09:05:15 +0000 (11:05 +0200)]
IPA ICF: add support for debug counter.

* dbgcnt.def: Add new counter.
* ipa-icf.c (sem_item_optimizer::merge_classes): Use the
counter.

From-SVN: r223288

9 years agodbgcnt: enhance behavior.
Martin Liska [Mon, 18 May 2015 09:03:28 +0000 (11:03 +0200)]
dbgcnt: enhance behavior.

* dbgcnt.def: Sort counters.
* opts.c (common_handle_option): Do not compile if
-fdbg-cnt-list is enabled.

From-SVN: r223287

9 years agoMove array-type va_list handling to build_va_arg
Tom de Vries [Mon, 18 May 2015 08:19:29 +0000 (08:19 +0000)]
Move array-type va_list handling to build_va_arg

2015-05-18  Tom de Vries  <tom@codesourcery.com>

* gimplify.c (gimplify_modify_expr): Remove do_deref handling.
(gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
address operator to va_list operand.
* tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
unconditionally.
* config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
operand.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
* config/s390/s390.c (s390_gimplify_va_arg): Same.
* config/spu/spu.c (spu_gimplify_va_arg_expr): Same.

* c-common.c (build_va_arg_1): New function.
(build_va_arg): Add address operator to va_list operand if necessary.

From-SVN: r223286

9 years agoFix whitespace in tree-ssa-tail-merge.c
Tom de Vries [Mon, 18 May 2015 08:14:09 +0000 (08:14 +0000)]
Fix whitespace in tree-ssa-tail-merge.c

2015-05-18  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-tail-merge.c: Fix whitespace.

From-SVN: r223285

9 years agocheck_GNU_style.sh: Don't cat empty file
Tom de Vries [Mon, 18 May 2015 07:07:44 +0000 (07:07 +0000)]
check_GNU_style.sh: Don't cat empty file

2015-05-18  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style.sh (g, ag, vg): Don't cat empty file.

From-SVN: r223284

9 years agocheck_GNU_style.sh: Declare local vars with local
Tom de Vries [Mon, 18 May 2015 07:07:36 +0000 (07:07 +0000)]
check_GNU_style.sh: Declare local vars with local

2015-05-18  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style.sh (g, ag, vg, col): Declare local vars with local.

From-SVN: r223283

9 years agocheck_GNU_style.sh: Improve readability function calls
Tom de Vries [Mon, 18 May 2015 07:07:27 +0000 (07:07 +0000)]
check_GNU_style.sh: Improve readability function calls

2015-05-18  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style.sh: Improve readability function calls.

From-SVN: r223282

9 years agoinvoke.texi (ARM Options, mtune): Add generic-armv7-a, cortex-a17, and cortex-a17...
Jim Wilson [Mon, 18 May 2015 03:14:54 +0000 (03:14 +0000)]
invoke.texi (ARM Options, mtune): Add generic-armv7-a, cortex-a17, and cortex-a17.cortex-a7.

gcc/
* doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
cortex-a17, and cortex-a17.cortex-a7.

From-SVN: r223281

9 years agoDaily bump.
GCC Administrator [Mon, 18 May 2015 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r223280

9 years ago20150120-1.c (dg-final): Cleanup original tree dump.
Uros Bizjak [Sun, 17 May 2015 21:49:19 +0000 (23:49 +0200)]
20150120-1.c (dg-final): Cleanup original tree dump.

* gcc.dg/20150120-1.c (dg-final): Cleanup original tree dump.
* gcc.dg/20150120-2.c (dg-final): Ditto.
* gcc.dg/20150120-2.c (dg-final): Ditto.
* gfortran.dg/inline_matmul_1.f90 (dg-final): Ditto.

From-SVN: r223276

9 years agopr66174.c: New test.
Uros Bizjak [Sun, 17 May 2015 21:45:40 +0000 (23:45 +0200)]
pr66174.c: New test.

* gcc.target/i386/pr66174.c: New test.

From-SVN: r223275

9 years agore PR target/54236 ([SH] Improve addc and subc insn utilization)
Oleg Endo [Sun, 17 May 2015 21:01:29 +0000 (21:01 +0000)]
re PR target/54236 ([SH] Improve addc and subc insn utilization)

gcc/
PR target/54236
* config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.

From-SVN: r223274

9 years agounordered_map.h (unordered_map, [...]): Add missing constructors.
François Dumont [Sun, 17 May 2015 20:14:53 +0000 (20:14 +0000)]
unordered_map.h (unordered_map, [...]): Add missing constructors.

2015-05-17  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/unordered_map.h (unordered_map, unordered_multimap): Add
missing constructors.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Likewise.
* include/debug/unordered_map (unordered_map, unordered_multimap): Add
missing constructors.
* include/debug/unordered_set (unordered_set, unordered_multiset):
Likewise.
* include/profile/unordered_map (unordered_map, unordered_multimap): Add
missing constructors.
* include/profile/unordered_set (unordered_set, unordered_multiset):
Likewise.
* testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
invocations.
* testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
* testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.

From-SVN: r223273

9 years agore PR target/66174 (ICE: in extract_insn, at recog.c:2341 (unrecognizable insns)...
Uros Bizjak [Sun, 17 May 2015 15:08:16 +0000 (17:08 +0200)]
re PR target/66174 (ICE: in extract_insn, at recog.c:2341 (unrecognizable insns) with -ftree-vectorize -mavx512ifma)

PR target/66174
* config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
QImode inner modes for TARGET_AVX512BW.  Force mask operand
to a register for AVX512F modes.

testsuite/ChangeLog:

PR target/66174
* gcc.target/i386/pr66174.c: New test.

From-SVN: r223269

9 years agore PR fortran/37131 (inline matmul for small matrix sizes)
Thomas Koenig [Sun, 17 May 2015 13:45:07 +0000 (13:45 +0000)]
re PR fortran/37131 (inline matmul for small matrix sizes)

2015-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* gfortran.dg/matmul_bounds_6.f90:  New test.
* gfortran.dg/matmul_bounds_7.f90:  New test.

From-SVN: r223268

9 years agoDaily bump.
GCC Administrator [Sun, 17 May 2015 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r223265

9 years agoFT32 target added. Approved by Jeff Law [law@redhat.com]
James Bowman [Sat, 16 May 2015 23:49:08 +0000 (23:49 +0000)]
FT32 target added. Approved by Jeff Law [law@redhat.com]

From-SVN: r223261

9 years agotoplev.c (emit_debug_global_declarations): Do not output debug info when doing slim...
Jan Hubicka [Sat, 16 May 2015 23:20:49 +0000 (23:20 +0000)]
toplev.c (emit_debug_global_declarations): Do not output debug info when doing slim LTO objects.

* toplev.c (emit_debug_global_declarations): Do not output debug info
when doing slim LTO objects.

From-SVN: r223260

9 years agoipa-utils.h (warn_types_mismatch, [...]): Declare.
Jan Hubicka [Sat, 16 May 2015 23:19:23 +0000 (23:19 +0000)]
ipa-utils.h (warn_types_mismatch, [...]): Declare.

* ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
odr_types_equivalent_p): Declare.
(odr_type_p): Use gcc_checking_assert.
(type_in_anonymous_namespace_p) Declare.
(type_with_linkage_p): Declare.
* common.opt (Wlto-type-mismatch): New warning.
* ipa-devirt.c (compound_type_base): New function.
(odr_or_derived_type_p): New function.
(odr_types_equivalent_p): New function.
(add_type_duplicate): Simplify.
(type_with_linkage_p): Add hack to prevent false positives on C types
(type_in_anonymous_namespace_p): Likewise.
* tree.c (need_assembler_name_p): Use type_with_linkage.
* tree.h (type_in_anonymous_namespace_p): Remove.
* doc/invoke.texi (-Wlto-type-mismatch): Document

From-SVN: r223259

9 years agoipa-utils.h (warn_types_mismatch, [...]): Declare.
Jan Hubicka [Sat, 16 May 2015 23:18:29 +0000 (23:18 +0000)]
ipa-utils.h (warn_types_mismatch, [...]): Declare.

* ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
odr_types_equivalent_p): Declare.
(odr_type_p): Use gcc_checking_assert.
(type_in_anonymous_namespace_p) Declare.
(type_with_linkage_p): Declare.
* common.opt (Wlto-type-mismatch): New warning.
* ipa-devirt.c (compound_type_base): New function.
(odr_or_derived_type_p): New function.
(odr_types_equivalent_p): New function.
(add_type_duplicate): Simplify.
(type_with_linkage_p): Add hack to prevent false positives on C types
(type_in_anonymous_namespace_p): Likewise.
* tree.c (need_assembler_name_p): Use type_with_linkage.
* tree.h (type_in_anonymous_namespace_p): Remove.
* doc/invoke.texi (-Wlto-type-mismatch): Document

* lto-symtab.c (warn_type_compatibility_p): Break out from ...;
compare ODR types (if available) and function types.
(lto_symtab_merge): ... here; output ODR violation warnings
and call warn_types_mismatch.

* gfortran.dg/lto/20091028-2_1.c: Fix return value.
* gfortran.dg/lto/pr41576_1.f90: Add interface.
* gfortran.dg/lto/pr41521_0.f90: Disable lto-type-mismatch
* gfortran.dg/lto/pr60635_0.f90: Disable lto-type-mismatch.
* gfortran.dg/lto/20091028-1_1.c: Fix return type.
* gcc.dg/lto/20120723_0.c: Disbale lto-type-mismatch.

From-SVN: r223258

9 years agotree.c (verify_type_variant): Verify tree_base and type_common flags.
Jan Hubicka [Sat, 16 May 2015 20:51:50 +0000 (20:51 +0000)]
tree.c (verify_type_variant): Verify tree_base and type_common flags.

* tree.c (verify_type_variant): Verify tree_base and type_common flags.
(verify_type): Verify STRING_FLAG.

From-SVN: r223252

9 years agore PR fortran/65903 (Line continuation followed by comment character in string fails...
Jerry DeLisle [Sat, 16 May 2015 17:51:41 +0000 (17:51 +0000)]
re PR fortran/65903 (Line continuation followed by comment character in string fails to compile)

2015-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/65903
* gfortran.dg/continuation_13.f90: Update test.
* gfortran.dg/pr65903.f90: New test.

From-SVN: r223249

9 years agore PR fortran/65903 (Line continuation followed by comment character in string fails...
Jerry DeLisle [Sat, 16 May 2015 17:44:15 +0000 (17:44 +0000)]
re PR fortran/65903 (Line continuation followed by comment character in string fails to compile)

2015-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/65903
* io.c (format_lex): Change to NONSTRING when checking for
possible doubled quote.
* scanner.c (gfc_next_char_literal): Revert change from 64506
and add a check for quotes and return.

From-SVN: r223248

9 years agod-demangle.c (dlang_symbol_kinds): New enum.
Iain Buclaw [Sat, 16 May 2015 16:50:30 +0000 (16:50 +0000)]
d-demangle.c (dlang_symbol_kinds): New enum.

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_symbol_kinds): New enum.
(dlang_parse_symbol): Update signature.  Handle an ambiguity between
pascal functions and template value arguments.  Only check for a type
if parsing a function, or at the top level.  Return failure if the
entire symbol was not successfully demangled.
(dlang_identifier): Update signature.  Handle an ambiguity between two
adjacent digits in a mangled symbol string.
(dlang_type): Update call to dlang_parse_symbol.
(dlang_template_args): Likewise.
(dlang_parse_template): Likewise.
(dlang_demangle): Likewise.
* testsuite/d-demangle-expected: Fix bad tests found, and add problematic
examples to the unittests.

From-SVN: r223247

9 years agod-demangle.c (dlang_template_args): Skip over specialized template parameters in...
Iain Buclaw [Sat, 16 May 2015 16:50:19 +0000 (16:50 +0000)]
d-demangle.c (dlang_template_args): Skip over specialized template parameters in mangled symbol.

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_template_args): Skip over specialized template
parameters in mangled symbol.
* testsuite/d-demangle-expected: Add coverage and unittest for specialized
template parameters.

From-SVN: r223246

9 years agod-demangle.c (dlang_type): Handle cent and ucent types.
Iain Buclaw [Sat, 16 May 2015 16:50:08 +0000 (16:50 +0000)]
d-demangle.c (dlang_type): Handle cent and ucent types.

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_type): Handle cent and ucent types.
* testsuite/d-demangle-expected: Add coverage tests for cent and ucent.

From-SVN: r223245

9 years agod-demangle.c (dlang_attributes): Handle return attributes, ignoring return parameters...
Iain Buclaw [Sat, 16 May 2015 16:49:57 +0000 (16:49 +0000)]
d-demangle.c (dlang_attributes): Handle return attributes, ignoring return parameters in the mangled string.

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_attributes): Handle return attributes, ignoring
return parameters in the mangled string.  Return NULL if have encountered
an unknown attribute.
(dlang_function_args): Handle return parameters in the mangled string.
* testsuite/d-demangle-expected: Add coverage tests for functions with
return parameters and return attributes.

From-SVN: r223244

9 years agod-demangle.c (dlang_identifier): Check encoded length of identifier to verify strncmp...
Iain Buclaw [Sat, 16 May 2015 16:49:46 +0000 (16:49 +0000)]
d-demangle.c (dlang_identifier): Check encoded length of identifier to verify strncmp matches entire string.

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_identifier): Check encoded length of identifier
to verify strncmp matches entire string.
* testsuite/d-demangle-expected: Fix wrong test for postblit symbol.

From-SVN: r223243

9 years agod-demangle.c (dlang_type_modifiers): New function.
Iain Buclaw [Sat, 16 May 2015 16:49:35 +0000 (16:49 +0000)]
d-demangle.c (dlang_type_modifiers): New function.

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_type_modifiers): New function.
(dlang_type_modifier_p): New function.
(dlang_call_convention_p): Ignore any kind of type modifier.
(dlang_type): Handle and emit the type modifier after delegate types.
(dlang_parse_symbol): Handle and emit the type modifier after the symbol.
* testsuite/d-demangle-expected: Add coverage tests for all valid
usages of function symbols with type modifiers.

From-SVN: r223242

9 years agod-demangle.c (dlang_call_convention): Return NULL if have reached the end of the...
Iain Buclaw [Sat, 16 May 2015 16:49:25 +0000 (16:49 +0000)]
d-demangle.c (dlang_call_convention): Return NULL if have reached the end of the symbol, but expected something to read.

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_call_convention): Return NULL if have reached the
end of the symbol, but expected something to read.
(dlang_attributes): Likewise.
(dlang_function_type): Likewise.
(dlang_type): Likewise.
(dlang_identifier): Likewise.
(dlang_value): Likewise.

From-SVN: r223241

9 years agod-demangle.c (dlang_parse_string): Represent embedded whitespace or non-printable...
Iain Buclaw [Sat, 16 May 2015 16:49:13 +0000 (16:49 +0000)]
d-demangle.c (dlang_parse_string): Represent embedded whitespace or non-printable characters as hex or escape...

libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_parse_string): Represent embedded whitespace or
non-printable characters as hex or escape sequences.
* testsuite/d-demangle-expected: Add test for templates with tabs and
newlines embedded into the signature.

From-SVN: r223240

9 years agoMAINTAINERS (Write After Approval): Add myself.
Iain Buclaw [Sat, 16 May 2015 13:46:58 +0000 (13:46 +0000)]
MAINTAINERS (Write After Approval): Add myself.

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r223239

9 years agore PR fortran/66113 (Variable n cannot appear in the expression with nested blocks)
Thomas Koenig [Sat, 16 May 2015 12:33:01 +0000 (12:33 +0000)]
re PR fortran/66113 (Variable n cannot appear in the expression with nested blocks)

2015-05-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66113
* expr.c (is_parent_of_current_ns):  New function.
(check_restricted):  Use it.

2015-05-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66113
* gfortran.dg/block_14.f90:  New test.

From-SVN: r223238

9 years agore PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagn...
Manuel López-Ibáñez [Sat, 16 May 2015 12:31:00 +0000 (12:31 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)

gcc/fortran/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054

Replace all calls to gfc_notify_std_1 with gfc_notify_std and
gfc_warning_1 with gfc_warning.
* decl.c (gfc_verify_c_interop_param): Here.
* resolve.c (resolve_branch): Here.
(resolve_fl_derived): Here.
* dependency.c (gfc_check_argument_var_dependency):
* scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
counter and locations before and after warning.
* gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
Delete.
(gfc_warning_now_at): Declare.
* error.c (gfc_warning_1): Delete.
(gfc_notify_std_1): Delete.
(gfc_warning_now_1): Delete.
(gfc_format_decoder): Handle two locations.
(gfc_diagnostic_build_prefix): Rename as
gfc_diagnostic_build_kind_prefix.
(gfc_diagnostic_build_locus_prefix): Take an expanded_location
instead of diagnostic_info.
(gfc_diagnostic_build_locus_prefix): Add overload that takes two
expanded_location.
(gfc_diagnostic_starter): Handle two locations.
(gfc_warning_now_at): New.
(gfc_diagnostics_init): Initialize caret_chars array.
(gfc_diagnostics_finish): Reset caret_chars array to default.

gcc/cp/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* error.c (cp_diagnostic_starter): Use diagnostic_location
function.
(cp_print_error_function): Likewise.
(cp_printer): Replace locus pointer with accessor function.

gcc/c/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* c-objc-common.c (c_tree_printer): Replace locus pointer with
accessor function.

gcc/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* tree-pretty-print.c (percent_K_format): Replace locus pointer
with accessor function.
* tree-diagnostic.c (diagnostic_report_current_function): Use
diagnostic_location function.
(maybe_unwind_expanded_macro_loc): Likewise.
(virt_loc_aware_diagnostic_finalizer): Likewise.
(default_tree_printer): Replace locus pointer with accessor function.
* diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
(diagnostic_set_info_translated): Initialize second location.
(diagnostic_build_prefix): Use CARET_LINE_MARGIN.
(diagnostic_show_locus): Handle two locations. Call
diagnostic_print_caret_line.
(diagnostic_print_caret_line): New.
(default_diagnostic_starter): Use diagnostic_location function.
(diagnostic_report_diagnostic): Use diagnostic_location function.
(verbatim): Do not set text.locus.
* diagnostic.h (struct diagnostic_info): Remove location field.
(struct diagnostic_context): Make caret_chars an array of two.
(diagnostic_location): New inline.
(diagnostic_expand_location): Handle two locations.
(diagnostic_same_line): New inline.
(diagnostic_print_caret_line): Declare.
(CARET_LINE_MARGIN): New constant.
* pretty-print.c (pp_printf): Do not set text.locus.
(pp_verbatim): Do not set text.locus.
* pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
(struct text_info): Replace locus pointer with locations
array. Add accessor functions.

gcc/testsuite/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* lib/gfortran-dg.exp: Update regex to handle two locations for
the same diagnostic without caret.
* gfortran.dg/badline.f: Test also that line numbers are correct
before and after "left but not entered" warning.

From-SVN: r223237

9 years agore PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagn...
Manuel López-Ibáñez [Sat, 16 May 2015 12:30:04 +0000 (12:30 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)

gcc/fortran/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054

Replace all calls to gfc_notify_std_1 with gfc_notify_std and
gfc_warning_1 with gfc_warning.
* decl.c (gfc_verify_c_interop_param): Here.
* resolve.c (resolve_branch): Here.
(resolve_fl_derived): Here.
* dependency.c (gfc_check_argument_var_dependency):
* scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
counter and locations before and after warning.
* gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
Delete.
(gfc_warning_now_at): Declare.
* error.c (gfc_warning_1): Delete.
(gfc_notify_std_1): Delete.
(gfc_warning_now_1): Delete.
(gfc_format_decoder): Handle two locations.
(gfc_diagnostic_build_prefix): Rename as
gfc_diagnostic_build_kind_prefix.
(gfc_diagnostic_build_locus_prefix): Take an expanded_location
instead of diagnostic_info.
(gfc_diagnostic_build_locus_prefix): Add overload that takes two
expanded_location.
(gfc_diagnostic_starter): Handle two locations.
(gfc_warning_now_at): New.
(gfc_diagnostics_init): Initialize caret_chars array.
(gfc_diagnostics_finish): Reset caret_chars array to default.

gcc/cp/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* error.c (cp_diagnostic_starter): Use diagnostic_location
function.
(cp_print_error_function): Likewise.
(cp_printer): Replace locus pointer with accessor function.

gcc/c/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* c-objc-common.c (c_tree_printer): Replace locus pointer with
accessor function.

gcc/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* tree-pretty-print.c (percent_K_format): Replace locus pointer
with accessor function.
* tree-diagnostic.c (diagnostic_report_current_function): Use
diagnostic_location function.
(maybe_unwind_expanded_macro_loc): Likewise.
(virt_loc_aware_diagnostic_finalizer): Likewise.
(default_tree_printer): Replace locus pointer with accessor function.
* diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
(diagnostic_set_info_translated): Initialize second location.
(diagnostic_build_prefix): Use CARET_LINE_MARGIN.
(diagnostic_show_locus): Handle two locations. Call
diagnostic_print_caret_line.
(diagnostic_print_caret_line): New.
(default_diagnostic_starter): Use diagnostic_location function.
(diagnostic_report_diagnostic): Use diagnostic_location function.
(verbatim): Do not set text.locus.
* diagnostic.h (struct diagnostic_info): Remove location field.
(struct diagnostic_context): Make caret_chars an array of two.
(diagnostic_location): New inline.
(diagnostic_expand_location): Handle two locations.
(diagnostic_same_line): New inline.
(diagnostic_print_caret_line): Declare.
(CARET_LINE_MARGIN): New constant.
* pretty-print.c (pp_printf): Do not set text.locus.
(pp_verbatim): Do not set text.locus.
* pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
(struct text_info): Replace locus pointer with locations
array. Add accessor functions.

gcc/testsuite/ChangeLog:

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR fortran/44054
* lib/gfortran-dg.exp: Update regex to handle two locations for
the same diagnostic without caret.
* gfortran.dg/badline.f: Test also that line numbers are correct
before and after "left but not entered" warning.

From-SVN: r223236

9 years agore PR target/65768 (sub-optimimal code for constant Uses in loop)
Kugan Vivekanandarajah [Sat, 16 May 2015 09:35:52 +0000 (09:35 +0000)]
re PR target/65768 (sub-optimimal code for constant Uses in loop)

gcc/ChangeLog:

2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
    Zhenqiang Chen  <zhenqiang.chen@linaro.org>

PR target/65768
* config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
* config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
 large constants in register instead of splitting them.

gcc/testsuite/ChangeLog:

2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
    Zhenqiang Chen  <zhenqiang.chen@linaro.org>

PR target/65768
* gcc.target/arm/maskdata.c: New test.

Co-Authored-By: Zhenqiang Chen <zhenqiang.chen@linaro.org>
From-SVN: r223235

9 years ago2015-05-16 Mikael Morin <mikael@gcc.gnu.org
Mikael Morin [Sat, 16 May 2015 08:09:52 +0000 (08:09 +0000)]
2015-05-16  Mikael Morin  <mikael@gcc.gnu.org
    Paul Thomas  <pault@gcc.gnu.org>

PR fortran/65792
* trans-expr.c (gfc_trans_subcomponent_assign): Always assign
the expression component to the destination. In addition, if
the component has allocatable components, copy them and
deallocate those of the expression, if it is not a variable.
The expression is fixed if not a variable to prevent multiple
evaluations.

2015-05-16  Mikael Morin  <mikael@gcc.gnu.org>

PR fortran/65792
* gfortran.dg/derived_constructor_components_5: New test

From-SVN: r223234

9 years agore PR target/66140 (ICE at extract_insn, at recog.c:2343 when compiling for alpha...
Uros Bizjak [Sat, 16 May 2015 07:28:16 +0000 (09:28 +0200)]
re PR target/66140 (ICE at extract_insn, at recog.c:2343 when compiling for alpha with gcc-5.1.1)

PR target/66140
* config/alpha/alpha.c (get_aligned_mem): Also look for reload
replacements in memory addresses.
(get_unaligned_address): Ditto.

testsuite/ChangeLog:

PR target/66140
* gcc.target/alpha/pr66140.c: New test.

From-SVN: r223232

9 years agolibgo: Use __USING_SJLJ_EXCEPTIONS__ rather than configure test.
Ian Lance Taylor [Sat, 16 May 2015 00:17:46 +0000 (00:17 +0000)]
libgo: Use __USING_SJLJ_EXCEPTIONS__ rather than configure test.

From Eric Botcazou.

From-SVN: r223231

9 years agoDaily bump.
GCC Administrator [Sat, 16 May 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r223230

9 years agoops.cc (stat_type): Define alias for struct stat and use throughout the file.
Jonathan Wakely [Fri, 15 May 2015 18:37:25 +0000 (19:37 +0100)]
ops.cc (stat_type): Define alias for struct stat and use throughout the file.

* src/filesystem/ops.cc (stat_type): Define alias for struct stat and
use throughout the file.
(make_file_type): New function.
(file_size(const path&, error_code&)): Report an error for anything
that isn't a regular file.
(status(const path&), symlink_status(const path&)): Do not throw for
file_type::not_found.
(temp_directory_path()): Check additional environment variables.
* testsuite/experimental/filesystem/operations/exists.cc: New.
* testsuite/experimental/filesystem/operations/file_size.cc: New.
* testsuite/experimental/filesystem/operations/status.cc: New.
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
New.

From-SVN: r223224