platform/upstream/gcc.git
7 years agoFix some DEC I/O testcases.
Fritz Reese [Thu, 27 Oct 2016 14:14:44 +0000 (14:14 +0000)]
Fix some DEC I/O testcases.

gcc/testsuite/gfortran.dg/
* dec_io_5.f90, dec_io_6.f90: Don't use "test.txt", and use
dg-shouldfail/dg-output instead of XFAIL.

From-SVN: r241623

7 years agodwarf2out.c (gen_member_die): Only reparent_child instead of splice_child_die if...
Jakub Jelinek [Thu, 27 Oct 2016 13:57:47 +0000 (15:57 +0200)]
dwarf2out.c (gen_member_die): Only reparent_child instead of splice_child_die if...

* dwarf2out.c (gen_member_die): Only reparent_child instead of
splice_child_die if child doesn't have DW_AT_specification attribute.

From-SVN: r241622

7 years agoFix target selectors in uniform_inside_sphere_distribution tests
Jonathan Wakely [Thu, 27 Oct 2016 13:55:36 +0000 (14:55 +0100)]
Fix target selectors in uniform_inside_sphere_distribution tests

* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
default.cc: Fix effective target selector.
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
parms.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
equal.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
generate.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
inequal.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
serialize.cc: Likewise.

From-SVN: r241621

7 years ago* class.c (add_method): Allow using-declarations to coexist.
Jason Merrill [Thu, 27 Oct 2016 13:39:48 +0000 (09:39 -0400)]
* class.c (add_method): Allow using-declarations to coexist.

From-SVN: r241620

7 years agoAdd myself to the MAINTAINERS file
Andrew Burgess [Thu, 27 Oct 2016 13:04:19 +0000 (14:04 +0100)]
Add myself to the MAINTAINERS file

* MAINTAINERS (Reviewers): Add myself.
(Write After Approval): Add myself.

From-SVN: r241619

7 years agoAdjust precision of filesystem::last_write_time tests
Jonathan Wakely [Thu, 27 Oct 2016 11:01:49 +0000 (12:01 +0100)]
Adjust precision of filesystem::last_write_time tests

* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Use end() function to get end iterator.
* testsuite/experimental/filesystem/iterators/pop.cc: Remove printf
statements that were present for debugging.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Use end() function to get end
iterator.
* testsuite/experimental/filesystem/operations/last_write_time.cc:
Only require file timestamps to be accurate to one second.

From-SVN: r241616

7 years agoEnable ARMv8-M atomic and synchronization support for ARMv8-M Baseline
Thomas Preud'homme [Thu, 27 Oct 2016 10:19:27 +0000 (10:19 +0000)]
Enable ARMv8-M atomic and synchronization support for ARMv8-M Baseline

2016-10-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
    (TARGET_HAVE_LDREXBH): Likewise.
    (TARGET_HAVE_LDACQ): Likewise.

    gcc/testsuite/
    * gcc.target/arm/atomic-comp-swap-release-acquire-3.c: New test.
    * gcc.target/arm/atomic-op-acq_rel-3.c: Likewise.
    * gcc.target/arm/atomic-op-acquire-3.c: Likewise.
    * gcc.target/arm/atomic-op-char-3.c: Likewise.
    * gcc.target/arm/atomic-op-consume-3.c: Likewise.
    * gcc.target/arm/atomic-op-int-3.c: Likewise.
    * gcc.target/arm/atomic-op-relaxed-3.c: Likewise.
    * gcc.target/arm/atomic-op-release-3.c: Likewise.
    * gcc.target/arm/atomic-op-seq_cst-3.c: Likewise.
    * gcc.target/arm/atomic-op-short-3.c: Likewise.

From-SVN: r241615

7 years agoAdapt other atomic operations to ARMv8-M Baseline
Thomas Preud'homme [Thu, 27 Oct 2016 10:19:13 +0000 (10:19 +0000)]
Adapt other atomic operations to ARMv8-M Baseline

2016-10-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_split_atomic_op): Add function comment.  Add
    logic to to decide whether to copy over old value to register for new
    value.
    * config/arm/sync.md: Add comments explaning why mode and code
    attribute are not defined in iterators.md
    (thumb1_atomic_op_str): New code attribute.
    (thumb1_atomic_newop_str): Likewise.
    (thumb1_atomic_fetch_op_str): Likewise.
    (thumb1_atomic_fetch_newop_str): Likewise.
    (thumb1_atomic_fetch_oldop_str): Likewise.
    (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
    mirror the more restrictive constraints of the Thumb-1 insns after
    split compared to Thumb-2 counterpart insns.
    (atomic_<sync_optab><mode>): Likewise.  Add comment to keep constraints
    in sync with non atomic version.
    (atomic_nand<mode>): Likewise.
    (atomic_fetch_<sync_optab><mode>): Likewise.
    (atomic_fetch_nand<mode>): Likewise.
    (atomic_<sync_optab>_fetch<mode>): Likewise.
    (atomic_nand_fetch<mode>): Likewise.
    * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
    in sync with atomic version.
    (thumb1_subsi3_insn): Likewise.
    (thumb1_andsi3_insn): Likewise.
    (thumb1_iorsi3_insn): Likewise.
    (thumb1_xorsi3_insn): Likewise.

From-SVN: r241614

7 years agoplugin.c (register_plugin_info): Produce an error message if the plugin is not found...
Nick Clifton [Thu, 27 Oct 2016 08:38:07 +0000 (08:38 +0000)]
plugin.c (register_plugin_info): Produce an error message if the plugin is not found in the hash table.

* plugin.c (register_plugin_info): Produce an error message if the
plugin is not found in the hash table.

From-SVN: r241613

7 years agomatch.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): New pattern.
Bin Cheng [Thu, 27 Oct 2016 08:31:01 +0000 (08:31 +0000)]
match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): New pattern.

* match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
New pattern.

gcc/testsuite
* gcc.dg/fold-convmaxconv-1.c: New test.
* gcc.dg/fold-convminconv-1.c: New test.

From-SVN: r241612

7 years agore PR fortran/78092 (ICE when calling SIZEOF on CLASS(*) entry)
Steven G. Kargl [Thu, 27 Oct 2016 03:08:13 +0000 (03:08 +0000)]
re PR fortran/78092 (ICE when calling SIZEOF on CLASS(*) entry)

2016-10-26  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/78092
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof):  Fix reference to an
array element of type CLASS.

2016-10-26  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/78092
* gfortran.dg/pr78092.f90: New test.

From-SVN: r241610

7 years agoDaily bump.
GCC Administrator [Thu, 27 Oct 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241609

7 years agostl_map.h (map()): Make default.
François Dumont [Wed, 26 Oct 2016 20:52:21 +0000 (20:52 +0000)]
stl_map.h (map()): Make default.

2016-10-26  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_map.h (map()): Make default.
* include/bits/stl_multimap.h (multimap()): Likewise.
* include/bits/stl_multiset.h (multiset()): Likewise.
* include/bits/stl_set.h (set()): Likewise.
* include/bits/stl_tree.h (_Rb_tree_impl()): Add conditional noexcept.
(_Rb_tree()): Make default.

From-SVN: r241601

7 years agosh.c (output_branch): Add missing fallthru comments.
Jeff Law [Wed, 26 Oct 2016 20:25:06 +0000 (14:25 -0600)]
sh.c (output_branch): Add missing fallthru comments.

* config/sh/sh.c (output_branch): Add missing fallthru comments.
(gen_shl_and): Likewise.
* config/sh/sh.md (movsicc): Add missing fallthru comments.

From-SVN: r241600

7 years agore PR target/78056 (build failure on Power7)
Kelvin Nilsen [Wed, 26 Oct 2016 20:19:39 +0000 (20:19 +0000)]
re PR target/78056 (build failure on Power7)

gcc/ChangeLog:

2016-10-26  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/78056
* config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
define builtin functions from the bdesc_spe_predicates or
bdesc_spe_evsel arrays if the builtin mask is not compatible with
the current compiler configuration.
(paired_init_builtins): Modify loop to not define define builtin
functions from the bdesc_paried_preds array if the builtin mask is
not compatible with the current compiler configuration.
(altivec_init_builtins): Modify loops to not define the
__builtin_altivec_stxvl function nor the builtin functions from
the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
builtin mask is not compatible with the current compiler
configuration.

gcc/testsuite/ChangeLog:

2016-10-26  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/78056
* gcc.target/powerpc/vsu/vec-any-eqz-7.c (test_any_equal): Change
expected error message.
* gcc.target/powerpc/vsu/vec-xst-len-12.c (store_data): Change
expected error message.
* gcc.target/powerpc/vsu/vec-all-nez-7.c
(test_all_not_equal_and_not_zero): Change expected error message.

From-SVN: r241599

7 years agomips.c (mips16_constant_cost): Add missing fallthru comments.
Jeff Law [Wed, 26 Oct 2016 20:16:57 +0000 (14:16 -0600)]
mips.c (mips16_constant_cost): Add missing fallthru comments.

* config/mips/mips.c (mips16_constant_cost): Add missing
fallthru comments.
(mips16_build_call_stub): Increase buffer size.  Adjust
fallthru comment.

From-SVN: r241597

7 years agoShow INSN_UIDs in compact mode
David Malcolm [Wed, 26 Oct 2016 18:25:14 +0000 (18:25 +0000)]
Show INSN_UIDs in compact mode

gcc/ChangeLog:
* print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
INSN_UIDs for all insns in compact mode.
(rtx_writer::print_rtx): Likewise.
* print-rtl.h (rtx_writer::flag_compact): Update comment.
* rtl-tests.c (selftest::test_dumping_insns): Update expected
output to include INSN_UID.
(selftest::test_uncond_jump): Likewise.

From-SVN: r241593

7 years agore PR libstdc++/78110 (freestanding libstdc++ fails to compile)
Bernd Edlinger [Wed, 26 Oct 2016 17:26:00 +0000 (17:26 +0000)]
re PR libstdc++/78110 (freestanding libstdc++ fails to compile)

2016-10-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR libstdc++/78110
        * libsupc++/new_opa.cc: Don't include <malloc.h> in a free standing
        environment.  Declare memalign directly in that case.

From-SVN: r241591

7 years agohaifa-sched.c (call_used_regs_num): Rename to...
Pat Haugen [Wed, 26 Oct 2016 17:07:55 +0000 (17:07 +0000)]
haifa-sched.c (call_used_regs_num): Rename to...

* haifa-sched.c (call_used_regs_num): Rename to...
(call_saved_regs_num): ...this.
(fixed_regs_num): New variable.
(sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
regs not call_used.
(alloc_global_sched_pressure_data): Compute call_saved and fixed regs.

From-SVN: r241590

7 years agomicroblaze.c (tls_mentioned_p): Avoid fallthru.
Jeff Law [Wed, 26 Oct 2016 17:00:18 +0000 (11:00 -0600)]
microblaze.c (tls_mentioned_p): Avoid fallthru.

* config/microblaze/microblaze.c (tls_mentioned_p): Avoid
fallthru.

From-SVN: r241587

7 years agoIntroduce class rtx_writer
David Malcolm [Wed, 26 Oct 2016 16:51:53 +0000 (16:51 +0000)]
Introduce class rtx_writer

gcc/ChangeLog:
* print-rtl-function.c (print_rtx_function): Rewrite in terms of
class rtx_writer.
* print-rtl.c (outfile): Delete global.
(sawclose): Likewise.
(indent): Likewise.
(in_call_function_usage): Likewise.
(flag_compact): Likewise.
(flag_simple): Likewise.
(rtx_writer::rtx_writer): New ctor.
(print_rtx_operand_code_0): Convert to...
(rtx_writer::print_rtx_operand_code_0): ...this.
(print_rtx_operand_code_e): Convert to...
(rtx_writer::print_rtx_operand_code_e): ...this.
(print_rtx_operand_codes_E_and_V): Convert to...
(rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
(print_rtx_operand_code_i): Convert to...
(rtx_writer::print_rtx_operand_code_i): ...this.
(print_rtx_operand_code_r): Convert to...
(rtx_writer::print_rtx_operand_code_r): ...this.
(print_rtx_operand_code_u): Convert to...
(rtx_writer::print_rtx_operand_code_u): ...this.
(print_rtx_operand): Convert to...
(rtx_writer::print_rtx_operand): ...this.
(print_rtx): Convert to...
(rtx_writer::print_rtx): ...this.
(print_inline_rtx): Rewrite in terms of class rtx_writer.
(debug_rtx): Likewise.
(print_rtl): Convert to...
(rtx_writer::print_rtl): ...this.
(print_rtl): Reimplement in terms of class rtx_writer.
(print_rtl_single): Rewrite in terms of class rtx_writer.
(print_rtl_single_with_indent): Convert to..
(rtx_writer::print_rtl_single_with_indent): ...this.
(print_simple_rtl): Rewrite in terms of class rtx_writer.
* print-rtl.h (flag_compact): Delete decl.
(class rtx_writer): New class.
* rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
class rtx_writer.

From-SVN: r241586

7 years agoarc.c (acr_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:33:22 +0000 (10:33 -0600)]
arc.c (acr_print_operand): Adjust fallthru comment.

* config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
(check_if_valid_sleep_operand): Add missing fallthru comment.
(arc_register_move_cost): Increase buffer size.
* config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
comment.
* config/arc/predicates.md (move_str_operand): Avoid fallthru.

From-SVN: r241585

7 years agocr16.c (cr16_print_operand): Add missing fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:27:44 +0000 (10:27 -0600)]
cr16.c (cr16_print_operand): Add missing fallthru comment.

* config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
comment.  Add gcc_unreachable for path that should never happen.

From-SVN: r241584

7 years agoFix test for recursive_directory_iterator::pop
Jonathan Wakely [Wed, 26 Oct 2016 16:25:44 +0000 (17:25 +0100)]
Fix test for recursive_directory_iterator::pop

* testsuite/experimental/filesystem/iterators/pop.cc: Remove
unreliable dependency on directory order.

From-SVN: r241583

7 years agoepiphany.c (epiphany_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:23:27 +0000 (10:23 -0600)]
epiphany.c (epiphany_print_operand): Adjust fallthru comment.

* config/epiphany/epiphany.c (epiphany_print_operand): Adjust
fallthru comment.

From-SVN: r241582

7 years agore PR fortran/77973 (ICE in scan_omp_1_op, at omp-low.c:3841)
Jakub Jelinek [Wed, 26 Oct 2016 16:21:56 +0000 (18:21 +0200)]
re PR fortran/77973 (ICE in scan_omp_1_op, at omp-low.c:3841)

PR fortran/77973
* gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
on outer context if any.

* gfortran.dg/gomp/pr77973.f90: New test.

Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r241581

7 years agogen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p] by increment rather...
Jakub Jelinek [Wed, 26 Oct 2016 16:20:54 +0000 (18:20 +0200)]
gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p] by increment rather than double it.

* gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p]
by increment rather than double it.
(insert_remove_pass): Strip leading whitespace from args[3].  Don't
emit a space before args[4].
(END): Don't emit a space before with_arg.

From-SVN: r241580

7 years ago* config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:19:55 +0000 (10:19 -0600)]
* config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.

From-SVN: r241579

7 years agoAdapt atomic compare and swap to ARMv8-M Baseline
Thomas Preud'homme [Wed, 26 Oct 2016 16:17:54 +0000 (16:17 +0000)]
Adapt atomic compare and swap to ARMv8-M Baseline

2016-10-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
    Baseline only alternatives to (i) hold store atomic success value in a
    return register rather than a scratch register, (ii) use a low register
    for it and to (iii) ensure the cbranchsi insn generated by the split
    respect the constraints of Thumb-1 cbranchsi4_insn and
    cbranchsi4_scratch.
    * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
    constraints must match those in atomic_compare_and_swap.
    (cbranchsi4_scratch): Likewise.

From-SVN: r241578

7 years agoRefactor atomic compare_and_swap to make it fit for ARMv8-M Baseline
Thomas Preud'homme [Wed, 26 Oct 2016 16:17:44 +0000 (16:17 +0000)]
Refactor atomic compare_and_swap to make it fit for ARMv8-M Baseline

2016-10-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
    variable.  Add the new parameter to the insn generator.  Set that
    parameter to be CC flag for 32-bit targets, bval otherwise.  Set the
    return value from the negation of that parameter for Thumb-1, keeping
    the logic unchanged otherwise except for using bdst as the destination
    register of the compare_and_swap insn.
    (arm_split_compare_and_swap): Add explanation about how is the value
    returned to the function comment.  Rename scratch variable to
    neg_bval.  Adapt initialization of variables holding operands to the
    new operand numbers.  Use return register to hold result of store
    exclusive for Thumb-1, scratch register otherwise.  Construct the
    appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
    for 32-bit targets.  Guard Z flag setting to restrict to 32bit targets.
    Use gen_cbranchsi4 rather than hand-written conditional branch to loop
    for strongly ordered compare_and_swap.
    * config/arm/predicates.md (cc_register_operand): New predicate.
    * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
    match_operand with the new predicate to accept either the CC flag or a
    destination register for the boolean return value, restricting it to
    CC flag only via constraint.  Adapt operand numbers accordingly.

From-SVN: r241577

7 years agofrv.c (comparison_string): Do not fall through after an error.
Jeff Law [Wed, 26 Oct 2016 16:15:38 +0000 (10:15 -0600)]
frv.c (comparison_string): Do not fall through after an error.

* config/frv/frv.c (comparison_string): Do not fall through after
an error.

From-SVN: r241576

7 years agoiq2000.c (iq2000_function_arg): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:10:40 +0000 (10:10 -0600)]
iq2000.c (iq2000_function_arg): Adjust fallthru comment.

* config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
comment.
(expand_one_builtin): Add missing break.

From-SVN: r241573

7 years agom32c.c (encode_pattern_1): Add fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:08:30 +0000 (10:08 -0600)]
m32c.c (encode_pattern_1): Add fallthru comment.

* config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
(m32c_legitimate_address_p): Likewise.

From-SVN: r241572

7 years ago* config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:02:58 +0000 (10:02 -0600)]
* config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.

From-SVN: r241571

7 years ago* config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.
Jeff Law [Wed, 26 Oct 2016 15:59:34 +0000 (09:59 -0600)]
* config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.

From-SVN: r241569

7 years agomicroblaze.c (microblaze_function_arg): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 15:52:41 +0000 (09:52 -0600)]
microblaze.c (microblaze_function_arg): Adjust fallthru comment.

* config/microblaze/microblaze.c (microblaze_function_arg): Adjust
fallthru comment.

From-SVN: r241568

7 years agomsp430.c (msp430_legitimate_address_p): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 15:49:25 +0000 (09:49 -0600)]
msp430.c (msp430_legitimate_address_p): Adjust fallthru comment.

* config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
fallthru comment.

From-SVN: r241567

7 years ago* config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.
Jeff Law [Wed, 26 Oct 2016 15:47:48 +0000 (09:47 -0600)]
* config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.

From-SVN: r241566

7 years agorl78.c (rl78_calculate_death_notes): Add fallthru comment.
Jeff Law [Wed, 26 Oct 2016 15:42:11 +0000 (09:42 -0600)]
rl78.c (rl78_calculate_death_notes): Add fallthru comment.

* config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
comment.
(rl78_asm_ctor_dtor): Increase buffer size.

From-SVN: r241565

7 years agostormy16.c (xstormy16_asm_output_destrutor): Increase buffer size.
Jeff Law [Wed, 26 Oct 2016 15:36:48 +0000 (09:36 -0600)]
stormy16.c (xstormy16_asm_output_destrutor): Increase buffer size.

* config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
buffer size.
(xstormy16_asm_output_constructor): Likewise.

From-SVN: r241564

7 years agoImplement uniform_inside_sphere_distribution extension.
Edward Smith-Rowland [Wed, 26 Oct 2016 15:34:18 +0000 (15:34 +0000)]
Implement uniform_inside_sphere_distribution extension.

2016-10-26  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement uniform_inside_sphere_distribution extension.
* include/ext/random: Implement uniform_inside_sphere_distribution.
* include/ext/random.tcc: Ditto.
* testsuite/ext/random/uniform_inside_sphere_distribution/
cons/default.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
cons/parms.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/equal.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/generate.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/inequal.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/serialize.cc: New.

From-SVN: r241562

7 years agopa.c (pa_asm_output_mi_thunk): Increase buffer size.
Jeff Law [Wed, 26 Oct 2016 15:25:27 +0000 (09:25 -0600)]
pa.c (pa_asm_output_mi_thunk): Increase buffer size.

* config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
size.

From-SVN: r241561

7 years agoh8300.c (h8300_print_operand): Adjust FALLTHRU comment to silence warning.
Jeff Law [Wed, 26 Oct 2016 15:20:33 +0000 (09:20 -0600)]
h8300.c (h8300_print_operand): Adjust FALLTHRU comment to silence warning.

* config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
comment to silence warning.

From-SVN: r241560

7 years agoAdd recursive_directory_iterator::pop(error_code&)
Jonathan Wakely [Wed, 26 Oct 2016 15:20:04 +0000 (16:20 +0100)]
Add recursive_directory_iterator::pop(error_code&)

* include/experimental/bits/fs_dir.h (recursive_directory_iterator):
Overload pop (LWG 2706).
* src/filesystem/dir.cc (recursive_directory_iterator::pop): Define
new overload.
* testsuite/experimental/filesystem/iterators/pop.cc: New test.

From-SVN: r241559

7 years agospu.c (spu_sched_reorder): Add missing fallthru comment.
Jeff Law [Wed, 26 Oct 2016 15:17:16 +0000 (09:17 -0600)]
spu.c (spu_sched_reorder): Add missing fallthru comment.

* config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment.
(spu_legitimate_address_p): Fix logic error and add missing fallthru
comment.

From-SVN: r241557

7 years agore PR fortran/78108 (Generic type-bound operator conflicts)
Paul Thomas [Wed, 26 Oct 2016 14:48:02 +0000 (14:48 +0000)]
re PR fortran/78108 (Generic type-bound operator conflicts)

2016-10-26  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/78108
* resolve.c (resolve_typebound_intrinsic_op): For submodules
suppress the error and return if the same procedure symbol
is added more than once to the interface.

2016-10-26  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/78108
* gfortran.dg/submodule_18.f08: New test.
* gfortran.dg/submodule_19.f08: New test.

From-SVN: r241555

7 years agoFix error handling in recursive_directory_iterator::increment
Jonathan Wakely [Wed, 26 Oct 2016 13:34:34 +0000 (14:34 +0100)]
Fix error handling in recursive_directory_iterator::increment

* src/filesystem/dir.cc (recursive_directory_iterator::increment):
Reset state on error.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Check state after increment error.

From-SVN: r241552

7 years agofix pr78060 pr78061 pr78088
Michael Matz [Wed, 26 Oct 2016 12:54:30 +0000 (12:54 +0000)]
fix pr78060 pr78061 pr78088

PR tree-optimization/78060
PR tree-optimization/78061
PR tree-optimization/78088
* tree-ssa-loop-split.c (easy_exit_values): New function.
(tree_ssa_split_loops): Use it.
(compute_new_first_bound): Change order of operations,
fix invalid use of types.

testsuite/
* g++.dg/pr78060.C: New test.
* gfortran.dg/pr78061.f: New test.
* g++.dg/pr78088.C: New test.

From-SVN: r241551

7 years agoNew I/O specifiers CARRIAGECONTROL, READONLY, SHARE with -fdec.
Fritz Reese [Wed, 26 Oct 2016 12:11:44 +0000 (12:11 +0000)]
New I/O specifiers CARRIAGECONTROL, READONLY, SHARE with -fdec.

gcc/fortran/
* gfortran.texi: Document.
* frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL.
* io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto.
* gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY.
* io.c (io_tag, match_open_element): Ditto.
* ioparm.def: Ditto.
* trans-io.c (gfc_trans_open): Ditto.
* io.c (match_dec_etag, match_dec_ftag): New functions.

libgfortran/io/
* libgfortran.h (IOPARM_OPEN_HAS_READONLY, IOPARM_OPEN_HAS_SHARE,
IOPARM_OPEN_HAS_CC): New for READONLY, SHARE, and CARRIAGECONTROL.
* close.c (st_close): Support READONLY.
* io.h (st_parameter_open, unit_flags): Support SHARE, CARRIAGECONTROL,
and READONLY.
* open.c (st_open): Ditto.
* transfer.c (data_transfer_init): Ditto.
* io.h (st_parameter_dt): New member 'cc' for CARRIAGECONTROL.
* write.c (write_check_cc, write_cc): New functions for CARRIAGECONTROL.
* transfer.c (next_record_cc): Ditto.
* file_pos.c (st_endfile): Support SHARE and CARRIAGECONTROL.
* io.h (st_parameter_inquire): Ditto.
* open.c (edit_modes, new_unit): Ditto.
* inquire.c (inquire_via_unit, inquire_via_filename): Ditto.
* io.h (unit_share, unit_cc, cc_fortran, IOPARM_INQUIRE_HAS_SHARE,
IOPARM_INQUIRE_HAS_CC): New for SHARE and CARRIAGECONTROL.
* open.c (share_opt, cc_opt): Ditto.
* read.c (read_x): Support CARRIAGECONTROL.
* transfer.c (read_sf, next_record_r, next_record_w): Ditto.
* write.c (list_formatted_write_scalar, write_a): Ditto.
* unix.h (close_share): New prototype.
* unix.c (open_share, close_share): New functions to handle SHARE.
* unix.c (open_external): Handle READONLY. Call open_share.
* close.c (st_close): Call close_share.

gcc/testsuite/
* dec_io_1.f90: New test.
        * dec_io_2.f90: New test.
        * dec_io_3.f90: New test.
        * dec_io_4.f90: New test.
        * dec_io_5.f90: New test.
        * dec_io_6.f90: New test.

From-SVN: r241550

7 years agoPR78111 fix fallback code for filesystem::canonical
Jonathan Wakely [Wed, 26 Oct 2016 11:29:36 +0000 (12:29 +0100)]
PR78111 fix fallback code for filesystem::canonical

PR libstdc++/78111
* src/filesystem/ops.cc (canonical): Set error for non-existent path.

From-SVN: r241549

7 years agoAdd missing header in Filesystem TS configure tests
Uros Bizjak [Wed, 26 Oct 2016 11:29:31 +0000 (13:29 +0200)]
Add missing header in Filesystem TS configure tests

2016-10-26  Uros Bizjak  <ubizjak@gmail.com>

* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Include <limits.h>
for PATH_MAX in realpath test.
* configure: Regenerate.

From-SVN: r241548

7 years agogen-pass-instances.awk is sensitive to the order in which passes are added...
Georg-Johann Lay [Wed, 26 Oct 2016 09:46:44 +0000 (09:46 +0000)]
gen-pass-instances.awk is sensitive to the order in which passes are added...

gen-pass-instances.awk is sensitive to the order in which
passes are added; passes that appear later have to be added first.
PR target/71676
PR target/71678
* config/avr/avr-passes.def: Swap order of directives for
gen-pass-instances.awk.

From-SVN: r241547

7 years agoDaily bump.
GCC Administrator [Wed, 26 Oct 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241545

7 years agovax.c (vad_address_cost_1): Add missing FALLTHRU comment.
Jeff Law [Tue, 25 Oct 2016 22:31:57 +0000 (16:31 -0600)]
vax.c (vad_address_cost_1): Add missing FALLTHRU comment.

* config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
(vax_notice_update_cc): Likewise.

From-SVN: r241542

7 years agoMAINTAINERS (Write After Approval): Add myself.
Will Schmidt [Tue, 25 Oct 2016 21:34:14 +0000 (21:34 +0000)]
MAINTAINERS (Write After Approval): Add myself.

2016-10-25  Will Schmidt  <will_schmidt@vnet.ibm.com>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r241541

7 years agore PR fortran/45516 ([F08] allocatable compontents of recursive type)
Paul Thomas [Tue, 25 Oct 2016 20:37:05 +0000 (20:37 +0000)]
re PR fortran/45516 ([F08] allocatable compontents of recursive type)

2016-10-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/45516
* class.c (gfc_find_derived_vtab): Detect recursive allocatable
derived type components. If present, add '_deallocate' field to
the vtable and build the '__deallocate' function.
* decl.c (build_struct): Allow recursive allocatable derived
type components for -std=f2008 or more.
(gfc_match_data_decl): Accept these derived types.
* expr.c (gfc_has_default_initializer): Ditto.
* resolve.c (resolve_component): Make sure that the vtable is
built for these derived types.
* trans-array.c(structure_alloc_comps) : Use the '__deallocate'
function for the automatic deallocation of these types.
* trans-expr.c : Generate the deallocate accessor.
* trans.h : Add its prototype.
* trans-types.c (gfc_get_derived_type): Treat the recursive
allocatable components in the same way as the corresponding
pointer components.

2016-10-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/45516
* gfortran.dg/class_2.f03: Set -std=f2003.
* gfortran.dg/finalize_21.f90: Modify tree-dump.
* gfortran.dg/recursive_alloc_comp_1.f08: New test.
* gfortran.dg/recursive_alloc_comp_2.f08: New test.
* gfortran.dg/recursive_alloc_comp_3.f08: New test.
* gfortran.dg/recursive_alloc_comp_4.f08: New test.

From-SVN: r241539

7 years agoconfig.gcc (sparc*-*-solaris2*): Adjust.
Eric Botcazou [Tue, 25 Oct 2016 20:15:44 +0000 (20:15 +0000)]
config.gcc (sparc*-*-solaris2*): Adjust.

* config.gcc (sparc*-*-solaris2*): Adjust.
(sparc64-*-linux*): Likewise.
* config/sparc/default-64.h: Rename to...
* config/sparc/default64.h: ...this.
* config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
with TARGET_ARCH64.
(sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
* config/sparc/sparc.h: Minor tweaks.
* config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
TARGET_ARCH32 throughout.  Minor various tweaks throughout.

From-SVN: r241538

7 years agore PR sanitizer/78106 (ASAN can't find heap-use-after-free with -O1)
Jakub Jelinek [Tue, 25 Oct 2016 20:15:20 +0000 (22:15 +0200)]
re PR sanitizer/78106 (ASAN can't find heap-use-after-free with -O1)

PR sanitizer/78106
* gcc.dg/asan/pr78106.c: Add -ffat-lto-objects to dg-options.

From-SVN: r241537

7 years agoinput.c/libcpp: fix lifetimes of path buffers
David Malcolm [Tue, 25 Oct 2016 19:24:01 +0000 (19:24 +0000)]
input.c/libcpp: fix lifetimes of path buffers

Running "make selftest-valgrind" showed various leaks of the form:

408 bytes in 24 blocks are definitely lost in loss record 572 of 679
   at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x1B0D057: xmalloc (xmalloc.c:148)
   by 0x1ACCAA1: append_file_to_dir(char const*, cpp_dir*) [clone .isra.3] (files.c:1567)
   by 0x1ACD56F: _cpp_find_file (files.c:390)
   by 0x1ACF8FB: cpp_read_main_file(cpp_reader*, char const*) (init.c:632)
   by 0x1AB3D97: selftest::lexer_test::lexer_test(selftest::line_table_case const&, char const*, selftest::lexer_test_options*) (input.c:2014)
   by 0x1AB792B: selftest::test_lexer_string_locations_u8(selftest::line_table_case const&) (input.c:2713)
   by 0x1ABA22A: selftest::for_each_line_table_case(void (*)(selftest::line_table_case const&)) (input.c:3227)
   by 0x1ABA381: selftest::input_c_tests() (input.c:3260)
   by 0x1A295F1: selftest::run_tests() (selftest-run-tests.c:62)
   by 0xF20DC4: toplev::run_self_tests() (toplev.c:2076)
   by 0xF20FCD: toplev::main(int, char**) (toplev.c:2153)

Fix the leak by freeing the file->path in destroy_cpp_file.
However, doing so would lead to a use-after-free in input.c's file cache
since the filenames in this cache are the libcpp file->path buffers.

Hence we need to ensure that any references to the file in the input.c
cache are purged before cleaning up file->path.  This is normally done
by the temp_source_file dtor.  Hence we need to reorder things to that
the temp_source_file dtor runs before cleaning up the cpp_parser.  The
patch does this by introducing a wrapper class around cpp_parser *, so
that the dtor can run after the dtor for temp_source_file.

gcc/ChangeLog:
* input.c (fcache::file_patch): Add comment about lifetime.
(selftest::cpp_reader_ptr): New class.
(selftest::lexer_test): Convert m_parser from cpp_reader *
to a cpp_reader_ptr, and move m_tempfile to after it.
(selftest::lexer_test::lexer_test): Update for above reordering.
(lexer_test::~lexer_test): Move cleanup of m_parser to
cpp_reader_ptr's dtor.

libcpp/ChangeLog:
* files.c (destroy_cpp_file): Free file->path.

From-SVN: r241536

7 years agoConvert logical ops on integers to bitwise equivalent with -fdec.
Fritz Reese [Tue, 25 Oct 2016 18:27:51 +0000 (18:27 +0000)]
Convert logical ops on integers to bitwise equivalent with -fdec.

gcc/fortran/
* gfortran.texi: Document.
* resolve.c (logical_to_bitwise): New function.
* resolve.c (resolve_operator): Wrap operands with logical_to_bitwise.

gcc/testsuite/gfortran.dg/
* dec_bitwise_ops_1.f90, dec_bitwise_ops_2.f90: New testcases.

From-SVN: r241534

7 years agoImplement ~line_maps ()
David Malcolm [Tue, 25 Oct 2016 18:10:44 +0000 (18:10 +0000)]
Implement ~line_maps ()

line_maps instances such as the global line_table are
GC-managed, but the htab within location_adhoc_data_map.htab
is not GC-managed.

Previously this was deleted manually by a call to
location_adhoc_data_fini within toplev::main.

However, on adding a call to forcibly_ggc_collect after the
selftests, all of the htabs for the various line_tables
created during the selftests start showing up as leaks
in "make selftest-valgrind", e.g.:

13,536 (1,344 direct, 12,192 indirect) bytes in 12 blocks are definitely lost in loss record 1,065 of 1,086
   at 0x4A081D4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x16DB3B0: xcalloc (xmalloc.c:163)
   by 0x16D8D34: htab_create_typed_alloc (hashtab.c:358)
   by 0x16D8DBD: htab_create_alloc (hashtab.c:286)
   by 0x16A2CCC: linemap_init(line_maps*, unsigned int) (line-map.c:353)
   by 0x1685605: selftest::line_table_test::line_table_test(selftest::line_table_case const&) (input.c:1624)
   by 0x167D09C: selftest::test_applying_fixits_modernize_named_init(selftest::line_table_case const&) (edit-context.c:1430)
   by 0x1686827: selftest::for_each_line_table_case(void (*)(selftest::line_table_case const&)) (input.c:3227)
   by 0x167F067: selftest::edit_context_c_tests() (edit-context.c:1658)
   by 0x1616E67: selftest::run_tests() (selftest-run-tests.c:71)
   by 0xC0DB25: toplev::run_self_tests() (toplev.c:2076)
   by 0x618EB4: toplev::main(int, char**) (toplev.c:2153)

This patch removes the manual one-time cleanup in favor of
adding a destructor to class line_maps, which cleans up
the non-GC-managed htab.

Doing so improves "make selftest-valgrind" from:

==61118== LEAK SUMMARY:
==61118==    definitely lost: 121,248 bytes in 1,515 blocks
==61118==    indirectly lost: 974,344 bytes in 959 blocks
==61118==      possibly lost: 0 bytes in 0 blocks
==61118==    still reachable: 1,332,599 bytes in 3,684 blocks
==61118==         suppressed: 0 bytes in 0 blocks

to:

==57182== LEAK SUMMARY:
==57182==    definitely lost: 13,840 bytes in 556 blocks
==57182==    indirectly lost: 0 bytes in 0 blocks
==57182==      possibly lost: 0 bytes in 0 blocks
==57182==    still reachable: 1,355,703 bytes in 3,684 blocks
==57182==         suppressed: 0 bytes in 0 blocks

gcc/ChangeLog:
* toplev.c (toplev::main): Remove call to
location_adhoc_data_fini.

libcpp/ChangeLog:
* include/line-map.h (line_maps::~line_maps): New dtor.
(location_adhoc_data_fini): Delete decl.
* line-map.c (line_maps::~line_maps): New dtor.
(location_adhoc_data_fini): Delete.

From-SVN: r241533

7 years agoconstexpr.c (maybe_constant_init): Pull out TARGET_EXPR_INITIAL.
Jason Merrill [Tue, 25 Oct 2016 17:23:44 +0000 (13:23 -0400)]
constexpr.c (maybe_constant_init): Pull out TARGET_EXPR_INITIAL.

* constexpr.c (maybe_constant_init): Pull out TARGET_EXPR_INITIAL.

(cxx_eval_outermost_constant_expr): Don't return a CONSTRUCTOR
with CONSTRUCTOR_NO_IMPLICIT_ZERO.
(cxx_eval_call_expression): Clear CONSTRUCTOR_NO_IMPLICIT_ZERO.

From-SVN: r241531

7 years agotree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
Eric Botcazou [Tue, 25 Oct 2016 17:11:49 +0000 (17:11 +0000)]
tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.

* tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
* tree.c (int_fits_type_p): Likewise.  Adjust head comment.

From-SVN: r241529

7 years agore PR fortran/72770 (ICE in make_ssa_name_fn, at tree-ssanames.c:263)
Andre Vehreschild [Tue, 25 Oct 2016 17:01:58 +0000 (19:01 +0200)]
re PR fortran/72770 (ICE in make_ssa_name_fn, at tree-ssanames.c:263)

gcc/testsuite/ChangeLog:

2016-10-25  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/72770
* gfortran.dg/alloc_comp_class_5.f03: Added test again that caused
this pr.

gcc/fortran/ChangeLog:

2016-10-25  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/72770
* class.c (find_intrinsic_vtab): No longer encode the string length
into vtype's name and use the char's kind for the size instead of
the string_length time the size.
* trans-array.c (gfc_conv_ss_descriptor): For deferred length char
arrays the dynamically sized type needs to be declared.
(build_class_array_ref): Address the i-th array element by multiplying
it with the _vptr->_size and the _len to make sure char arrays are
addressed correctly.
* trans-expr.c (gfc_conv_intrinsic_to_class): Made comment more
precise.

From-SVN: r241528

7 years agoExpose forcibly_ggc_collect and run it after all selftests
David Malcolm [Tue, 25 Oct 2016 16:46:54 +0000 (16:46 +0000)]
Expose forcibly_ggc_collect and run it after all selftests

gcc/ChangeLog:
* ggc-tests.c (forcibly_ggc_collect): Rename to...
(selftest::forcibly_ggc_collect): ...this, and remove "static".
(test_basic_struct): Update for above renaming.
(test_length): Likewise.
(test_union): Likewise.
(test_finalization): Likewise.
(test_deletable_global): Likewise.
(test_inheritance): Likewise.
(test_chain_next): Likewise.
(test_user_struct): Likewise.
(test_tree_marking): Likewise.
* selftest-run-tests.c (selftest::run_tests): Call
selftest::forcibly_ggc_collect at the end of the selftests.
* selftest.h (selftest::forcibly_ggc_collect): New decl.

From-SVN: r241527

7 years agore PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1)
Jakub Jelinek [Tue, 25 Oct 2016 16:26:12 +0000 (18:26 +0200)]
re PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1)

PR target/78102
* optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
* optabs.c (expand_vec_cond_expr): For comparison codes
EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
(expand_vec_cmp_expr): For comparison codes
EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
* optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
Add enum tree_code argument.
* optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
inline functions.
* optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument.  For
CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
fallback.
(expand_vec_cond_expr_p): Add CODE argument.  For CODE EQ_EXPR or
NE_EXPR, attempt to use vcondeq_optab as fallback.
* tree-vect-generic.c (expand_vector_comparison,
expand_vector_divmod, expand_vector_condition): Adjust
expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
* tree-vect-stmts.c (vectorizable_condition,
vectorizable_comparison): Likewise.
* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
check_bool_pattern, search_type_for_mask_1): Likewise.
* expr.c (do_store_flag): Likewise.
* doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
@code{vcondeq@var{m}@var{n}}): Document.
* config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
New expanders.
testsuite/
* gcc.target/i386/pr78102.c: New test.

From-SVN: r241525

7 years agointrinsic.texi (cosd): New mathop.
Cesar Philippidis [Tue, 25 Oct 2016 15:47:12 +0000 (08:47 -0700)]
intrinsic.texi (cosd): New mathop.

gcc/fortran/
* intrinsic.texi (cosd): New mathop.

From-SVN: r241523

7 years agoHandle negative times in filesystem::last_write_time
Jonathan Wakely [Tue, 25 Oct 2016 15:32:52 +0000 (16:32 +0100)]
Handle negative times in filesystem::last_write_time

* src/filesystem/ops.cc
(last_write_time(const path&, file_time_type, error_code&)): Handle
negative times correctly.
* testsuite/experimental/filesystem/operations/last_write_time.cc:
Test writing file times.

From-SVN: r241522

7 years agoFix error handling in copy_file and equivalent
Jonathan Wakely [Tue, 25 Oct 2016 15:32:37 +0000 (16:32 +0100)]
Fix error handling in copy_file and equivalent

* src/filesystem/ops.cc (do_copy_file): Report an error if source or
destination is not a regular file (LWG 2712).
(equivalent): Fix error handling and result when only one file exists.
* testsuite/experimental/filesystem/operations/copy.cc: Remove files
created by tests. Test copying directories.
* testsuite/experimental/filesystem/operations/copy_file.cc: Remove
files created by tests.
* testsuite/experimental/filesystem/operations/equivalent.cc: New.
* testsuite/experimental/filesystem/operations/is_empty.cc: New.
* testsuite/experimental/filesystem/operations/read_symlink.cc: Remove
file created by test.
* testsuite/experimental/filesystem/operations/remove_all.cc: New.
* testsuite/util/testsuite_fs.h (~scoped_file): Only try to remove
file if path is non-empty, to support removal by other means.

From-SVN: r241521

7 years agoEnable .XOR. operator with -std=legacy.
Fritz Reese [Tue, 25 Oct 2016 15:30:51 +0000 (15:30 +0000)]
Enable .XOR. operator with -std=legacy.

gcc/fortran/
* match.c (gfc_match_intrinsic_op): Match ".XOR." with -std=legacy.
* gfortran.texi: Document.

gcc/testsuite/gfortran.dg/
* dec_logical_xor_1.f90: New.
        * dec_logical_xor_2.f90: New.
        * dec_logical_xor_3.f03: New.

From-SVN: r241520

7 years agoEnable %LOC as an rvalue with -std=legacy.
Fritz Reese [Tue, 25 Oct 2016 15:27:39 +0000 (15:27 +0000)]
Enable %LOC as an rvalue with -std=legacy.

gcc/fortran/
        * primary.c (gfc_match_rvalue): Match %LOC as LOC with -std=legacy.
        * gfortran.texi: Document.

gcc/testsuite/gfortran.dg/
* dec_loc_rval_1.f90: New test.
        * dec_loc_rval_2.f90: New test.
        * dec_loc_rval_3.f90: New test.

From-SVN: r241519

7 years agoSupport TYPE as alias for PRINT with -fdec.
Fritz Reese [Tue, 25 Oct 2016 15:24:36 +0000 (15:24 +0000)]
Support TYPE as alias for PRINT with -fdec.

gcc/fortran/
* decl.c (gfc_match_type): New function.
* match.h (gfc_match_type): New function.
* match.c (gfc_match_if): Special case for one-line IFs.
* gfortran.texi: Update documentation.
* parse.c (decode_statement): Invoke gfc_match_type.

gcc/testsuite/gfortran.dg/
* dec_type_print.f90: New testcase.

From-SVN: r241518

7 years agoTreat form feed as whitespace.
Fritz Reese [Tue, 25 Oct 2016 15:20:36 +0000 (15:20 +0000)]
Treat form feed as whitespace.

gcc/fortran/
* gfortran.texi: Document.
* gfortran.h (gfc_is_whitespace): Include form feed ('\f').

gcc/testsuite/gfortran.dg/
* feed_1.f90, feed_2.f90: New testcases.

From-SVN: r241517

7 years agoCleanup -fdec.
Fritz Reese [Tue, 25 Oct 2016 15:13:43 +0000 (15:13 +0000)]
Cleanup -fdec.

gcc/fortran/
* invoke.texi, gfortran.texi: Touch up documentation of -fdec.
* gfortran.h (gfc_option): Move flag_dec_structure out of gfc_option.
* decl.c (match_record_decl, gfc_match_decl_type_spec,
gfc_match_structure_decl): Ditto.
* match.c (gfc_match_member_sep): Ditto.
* options.c (gfc_handle_option): Ditto.
* lang.opt (fdec-structure): Use Fortran Var for flag_dec_structure.
* lang.opt (fdec): Use Fortran Var to create flag_dec.
* options.c (set_dec_flags): With -fdec enable -fcray-pointer,
-fd-lines-as-comments (default), -fdollar-ok, and legacy std flags.

From-SVN: r241516

7 years agoAdd BZ marker to recent commit
Jeff Law [Tue, 25 Oct 2016 15:02:32 +0000 (09:02 -0600)]
Add BZ marker to recent commit

From-SVN: r241515

7 years agogo-lang.c: remove a redundant cast
David Malcolm [Tue, 25 Oct 2016 14:47:38 +0000 (14:47 +0000)]
go-lang.c: remove a redundant cast

gcc/go/ChangeLog:
* go-lang.c (go_langhook_type_for_mode): Remove redundant cast
from result of GET_MODE_CLASS.  Minor formatting fixes.

From-SVN: r241514

7 years agov850.c (v850_handle_data_area_attribute): Fix fallthru comment.
Jeff Law [Tue, 25 Oct 2016 14:39:34 +0000 (08:39 -0600)]
v850.c (v850_handle_data_area_attribute): Fix fallthru comment.

* config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
comment.
(v850_output_aligned_bss): Add missing break.

From-SVN: r241513

7 years ago* config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.
Jeff Law [Tue, 25 Oct 2016 14:33:16 +0000 (08:33 -0600)]
* config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.

From-SVN: r241512

7 years agoFix not caught use-after-scope with -O1 (PR sanitize/78106)
Martin Liska [Tue, 25 Oct 2016 14:16:10 +0000 (16:16 +0200)]
Fix not caught use-after-scope with -O1 (PR sanitize/78106)

PR sanitizer/78106
* sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
statements as they can also contain possibly a freeing call.
PR sanitizer/78106
* gcc.dg/asan/pr78106.c: New test.

From-SVN: r241511

7 years agoFix 2 typos in IPA ICF pass
Martin Liska [Tue, 25 Oct 2016 12:20:19 +0000 (12:20 +0000)]
Fix 2 typos in IPA ICF pass

* gcc.dg/ipa/ipa-icf-32.c: Removed one scanned pattern.
    Martin Liska  <mliska@suse.cz>

PR ipa/78099
* common.opt: Mark flag_ipa_icf_variables as Optimization flag.
* ipa-icf.c (sem_function::get_hash): Add target optimization
node to hash.

From-SVN: r241510

7 years ago* parser.c (cp_parser_postfix_expression): Adding missing break;.
Jakub Jelinek [Tue, 25 Oct 2016 10:47:47 +0000 (12:47 +0200)]
* parser.c (cp_parser_postfix_expression): Adding missing break;.

From-SVN: r241509

7 years agoWith -fpu=neon DI mode shifts are expanded after reload.
Wilco Dijkstra [Tue, 25 Oct 2016 10:25:28 +0000 (10:25 +0000)]
With -fpu=neon DI mode shifts are expanded after reload.

With -fpu=neon DI mode shifts are expanded after reload.  DI mode registers can
either fully or partially overlap on both ARM and Thumb-2.  However the shift
expansion code can only deal with the full overlap case, and generates incorrect
code for partial overlaps.  The fix is to add new variants that support either
full overlap or no overlap.

    gcc/
PR target/78041
* config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
Remove partial overlap check for shift by 1.
(ashldi3_neon): Likewise.
    testsuite/
* gcc.target/arm/pr78041.c: New test.

From-SVN: r241508

7 years agoconstraints.md (Q constraint): Document its use for Thumb-1.
Thomas Preud'homme [Tue, 25 Oct 2016 09:18:46 +0000 (09:18 +0000)]
constraints.md (Q constraint): Document its use for Thumb-1.

2016-10-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/constraints.md (Q constraint): Document its use for
    Thumb-1.
    (Pf constraint): New constraint for relaxed, consume or relaxed memory
    models.
    * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
    alternatives to allow any register when memory model matches Pf and
    thus lda is used, but only low registers otherwise.  Use unpredicated
    output template for Thumb-1 targets.
    (atomic_store<mode>): Likewise for stl.
    (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
    whose output template does not have predication.
    (arm_load_acquire_exclusive<mode>): Likewise.
    (arm_load_exclusivesi): Likewise.
    (arm_load_acquire_exclusivesi): Likewise.
    (arm_store_release_exclusive<mode>): Likewise.
    (arm_store_exclusive<mode>): Use unpredicated output template for
    Thumb-1 targets.

From-SVN: r241507

7 years agointernal-fn.def (LAUNDER): New internal function.
Jakub Jelinek [Tue, 25 Oct 2016 08:47:15 +0000 (10:47 +0200)]
internal-fn.def (LAUNDER): New internal function.

* internal-fn.def (LAUNDER): New internal function.
* internal-fn.c (expand_LAUNDER): New function.
c-family/
* c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
* c-common.c (c_common_reswords): Add __builtin_launder.
cp/
* cp-tree.h (finish_builtin_launder): Declare.
* parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_LAUNDER.
* semantics.c (finish_builtin_launder): New function.
* pt.c (tsubst_copy_and_build): Handle instantiation of IFN_LAUNDER.
* constexpr.c (cxx_eval_internal_function): Handle IFN_LAUNDER.
(potential_constant_expression_1): Likewise.
testsuite/
* g++.dg/cpp1z/launder1.C: New test.
* g++.dg/cpp1z/launder2.C: New test.

From-SVN: r241506

7 years agoTypo.
Georg-Johann Lay [Tue, 25 Oct 2016 08:37:01 +0000 (08:37 +0000)]
Typo.

From-SVN: r241505

7 years agoNew avt target pass to work around performance loss by PR fix.
Georg-Johann Lay [Tue, 25 Oct 2016 08:35:17 +0000 (08:35 +0000)]
New avt target pass to work around performance loss by PR fix.

gcc/
New avt target pass to work around performance loss by PR fix.
PR target/71676
PR target/71678
* config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
(*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
* config/avr/predicates.md (extend_operator): New.
* config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
* config/avr/avr-protos.h (avr_casei_sequence_check_operands)
(make_avr_pass_casesi): New prototypes.
* config/avr/avr.c (print-rtl.h): Include it.
(pass_data avr_pass_data_casesi): Data for new pass.
(avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
(make_avr_pass_casesi, avr_parallel_insn_from_insns)
(avr_is_casesi_sequence, avr_casei_sequence_check_operands)
(avr_optimize_casesi): New functions.
gcc/testsuite/
PR target/71676
PR target/71678
* gcc.target/avr/pr71676-2.c: New test.

From-SVN: r241504

7 years agore PR target/71676 ([avr] casesi won't handle switch values larger than 16 bits)
Georg-Johann Lay [Tue, 25 Oct 2016 08:26:59 +0000 (08:26 +0000)]
re PR target/71676 ([avr] casesi won't handle switch values larger than 16 bits)

gcc/
PR target/71676
PR target/71678
* config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
gcc/testsuite/
PR target/71676
PR target/71678
* gcc.target/avr/pr71676-1.c: New test.
* gcc.target/avr/pr71676-3.c: New test.
* gcc.target/avr/pr71676.c: New test.
* gcc.target/avr/pr71678.c: New test.

Co-Authored-By: Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
From-SVN: r241503

7 years agoDaily bump.
GCC Administrator [Tue, 25 Oct 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241502

7 years agotest_frame_common.h: Add noclone attribute such that cloned verions of tested functio...
Kugan Vivekanandarajah [Mon, 24 Oct 2016 22:31:14 +0000 (22:31 +0000)]
test_frame_common.h: Add noclone attribute such that cloned verions of tested functions are not created.

gcc/testsuite/ChangeLog:

2016-10-24  Kugan Vivekanandarajah  <kuganvi@linaro.org>

* gcc.target/aarch64/test_frame_common.h: Add noclone attribute
such that cloned verions of tested functions are not created.

From-SVN: r241499

7 years agore PR libfortran/77828 (Linking gfortran-7 compiled program with libgfortran of 5...
Jerry DeLisle [Mon, 24 Oct 2016 21:42:29 +0000 (21:42 +0000)]
re PR libfortran/77828 (Linking gfortran-7 compiled program with libgfortran of 5.x allowed but crashes when containing write to string)

2016-10-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/77828
* io/io.h (st_parameter_dt): Reorder for readability and sanity.
* io/transfer.c (data_transfer_init): Remove TODO and enable the
runtime error message, rec= specifier not allowed in STREAM
access.
* libtool-version: Bump major version of libgfortran to 4.

* ioparm.def: Reorder dt parameters to match libgfortran.
* libgfortran.h: Swap definitions of GFC_INTERNAL_UNIT and
GFC_INTERNAL_UNIT4.

From-SVN: r241497

7 years agore PR fortran/71895 (ICE in gfc_compare_derived_types, at fortran/interface.c:520)
Steven G. Kargl [Mon, 24 Oct 2016 19:21:42 +0000 (19:21 +0000)]
re PR fortran/71895 (ICE in gfc_compare_derived_types, at fortran/interface.c:520)

2016-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/71895
* interface.c (gfc_compare_derived_types):  Convert gcc_assert()
to a gfc_internal_error() to prevent an ICE.

2016-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/71895
* gfortran.dg/pr71895.f90: New test.

From-SVN: r241493

7 years agodwarf2out.c (gen_subprogram_die): Add DW_AT_reference or DW_AT_rvalue_reference attri...
Jakub Jelinek [Mon, 24 Oct 2016 18:44:30 +0000 (20:44 +0200)]
dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or DW_AT_rvalue_reference attributes.

* dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
DW_AT_rvalue_reference attributes.

* cp-objcp-common.c (cp_decl_dwarf_attribute): Handle DW_AT_reference
and DW_AT_rvalue_reference.

* g++.dg/debug/dwarf2/ref-2.C: New test.

From-SVN: r241492

7 years agoPR libgcc/78064: Add missing include directive to unwind-c.c
Florian Weimer [Mon, 24 Oct 2016 18:25:09 +0000 (20:25 +0200)]
PR libgcc/78064: Add missing include directive to unwind-c.c

PR libgcc/78064
* unwind-c.c: Include auto-target.h.

From-SVN: r241491

7 years agoc-common.c (c_common_truthvalue_conversion): Warn for multiplications in boolean...
Bernd Edlinger [Mon, 24 Oct 2016 17:14:41 +0000 (17:14 +0000)]
c-common.c (c_common_truthvalue_conversion): Warn for multiplications in boolean context.

2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-common.c (c_common_truthvalue_conversion): Warn for
        multiplications in boolean context.  Fix the quoting of '<<' and '<'
        in the shift warning.

gcc:
2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.text (Wint-in-bool-context): Update documentation.
        * value-prof.c (stringop_block_profile): Fix a warning.

testsuite:
2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-c++-common/Wint-in-bool-context-3.c: New test.

From-SVN: r241490

7 years agoPR middle-end/77735 - FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-1.c
Martin Sebor [Mon, 24 Oct 2016 16:53:20 +0000 (16:53 +0000)]
PR middle-end/77735 - FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-1.c

gcc/ChangeLog:

PR middle-end/77735
* builtins.c (string_length): New function.
(c_strlen): Use string_length.  Correctly handle wide strings.
* gimple-ssa-sprintf.c (target_max_value, target_size_max): New
functions.
(target_int_max): Call target_max_value.
(format_result::knownrange): New data member.
(fmtresult::fmtresult): Define default constructor.
(format_integer): Use it and set format_result::knownrange.
Handle global constants.
(format_floating_max): Add third argument.
(format_floating): Recompute maximum value for %a for each argument.
(get_string_length): Use fmtresult default ctor.
(format_string): Set format_result::knownrange.
(format_directive): Check format_result::knownrange.
(add_bytes): Same.  Correct caret placement in diagnostics.
(pass_sprintf_length::compute_format_length): Set
format_result::knownrange.
(pass_sprintf_length::handle_gimple_call): Use target_size_max.

gcc/testsuite/ChangeLog:

PR middle-end/77735
* gcc.dg/tree-ssa/builtin-sprintf-2.c: Add test cases.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Adjust/relax.
* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: Add test cases.
* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: XFAIL for LP64 only.
* gcc.dg/tree-ssa/builtin-sprintf.c: Add test cases.

From-SVN: r241489

7 years agoFix error handling in filesystem::is_empty
Jonathan Wakely [Mon, 24 Oct 2016 16:45:55 +0000 (17:45 +0100)]
Fix error handling in filesystem::is_empty

* src/filesystem/ops.cc (is_empty): Fix error handling.
* testsuite/experimental/filesystem/operations/is_empty.cc: New test.

From-SVN: r241488

7 years agoPR71337 fix filesystem::temp_directory_path error handling
Jonathan Wakely [Mon, 24 Oct 2016 16:45:51 +0000 (17:45 +0100)]
PR71337 fix filesystem::temp_directory_path error handling

PR libstdc++/71337
* src/filesystem/ops.cc (temp_directory_path): Pass error_code
argument to other filesystem operations.
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
Add testcase for inaccessible directory.

From-SVN: r241487

7 years agoMake directory iterators become end iterator on error
Jonathan Wakely [Mon, 24 Oct 2016 16:45:45 +0000 (17:45 +0100)]
Make directory iterators become end iterator on error

* src/filesystem/dir.cc (open_dir): Return same value for errors
whether ignored or not.
(_Dir::advance(error_code*, directory_options)): Return false on
error.
(directory_iterator(const path&, directory_options, error_code*)):
Create end iterator on error (LWG 2723).
(recursive_directory_iterator(const path&, directory_options,
error_code*)): Likewise.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Update expected behaviour on error.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Likewise.

From-SVN: r241486

7 years agoDo not retry failed close(3) in filesystem::copy
Jonathan Wakely [Mon, 24 Oct 2016 16:45:40 +0000 (17:45 +0100)]
Do not retry failed close(3) in filesystem::copy

* src/filesystem/ops.cc (close_fd): Remove.
(do_copy_file): Just use close(3) instead of close_fd, to prevent
retrying on error.

From-SVN: r241485

7 years agoImplement DR resolutions for filesystem::copy
Jonathan Wakely [Mon, 24 Oct 2016 16:45:31 +0000 (17:45 +0100)]
Implement DR resolutions for filesystem::copy

* src/filesystem/ops.cc (do_copy_file): Return an error if either
source or destination is not a regular file.
(copy): Update comment to refer to LWG 2681. Implement 2682 and 2683
resolutions.
(read_symlink): Add missing ec.clear().
* testsuite/experimental/filesystem/operations/copy.cc: Update
expected behaviour for copying directories with create_symlinks.
Verify that error_code arguments are cleared if there's no error.
* testsuite/experimental/filesystem/operations/read_symlink.cc: New.

From-SVN: r241484