gcc.git
8 years agoReplace KISS PRNG with xorshift1024* using per-thread state.
Janne Blomqvist [Thu, 11 Aug 2016 08:58:55 +0000 (11:58 +0300)]
Replace KISS PRNG with xorshift1024* using per-thread state.

frontend:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* check.c (gfc_check_random_seed): Use new seed size in check.
* intrinsic.texi (RANDOM_NUMBER): Updated documentation.
(RANDOM_SEED): Likewise.

testsuite:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* gfortran.dg/random_7.f90: Take into account that the last seed
value is the special p value.
* gfortran.dg/random_seed_1.f90: Seed size is now constant.

libgfortran:
2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsics/random.c: Replace KISS with xorshift1024* using
per-thread state.
* runtime/main.c (init): Don't call random_seed_i4.

From-SVN: r239356

8 years agotree-ssa-threadbackward.c (pass_data_thread_jumps): Remove unconditional TODO_cleanup...
Richard Biener [Thu, 11 Aug 2016 08:49:56 +0000 (08:49 +0000)]
tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove unconditional TODO_cleanup_cfg.

2016-08-11  Richard Biener  <rguenther@suse.de>

* tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
unconditional TODO_cleanup_cfg.
(pass_thread_jumps::execute): Initialize loops, perform a CFG
cleanup only if we threaded a jump.

* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust.

From-SVN: r239355

8 years agoDaily bump.
GCC Administrator [Thu, 11 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239351

8 years agomissed from last commit
Alan Modra [Wed, 10 Aug 2016 23:12:56 +0000 (08:42 +0930)]
missed from last commit

From-SVN: r239343

8 years ago[LRA] Reload of slow mems
Alan Modra [Wed, 10 Aug 2016 23:12:11 +0000 (08:42 +0930)]
[LRA] Reload of slow mems

pr71680.c -m64 -O1 -mlra, ira output showing two problem insns.
(insn 7 5 26 3 (set (reg:SI 159 [ a ])
        (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])) pr71680.c:13 464 {*movsi_internal1}
     (expr_list:REG_EQUIV (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])
        (nil)))
(insn 26 7 27 3 (set (reg:DI 162)
        (unspec:DI [
                (fix:SI (subreg:SF (reg:SI 159 [ a ]) 0))
            ] UNSPEC_FCTIWZ)) pr71680.c:13 372 {fctiwz_sf}
     (expr_list:REG_DEAD (reg:SI 159 [ a ])
        (nil)))
Insn 26 requires that reg 159 be of class FLOAT_REGS.

first lra action:
deleting insn with uid = 7.
Changing pseudo 159 in operand 1 of insn 26 on equiv [r158:DI]
      Creating newreg=164, assigning class ALL_REGS to subreg reg r164
   26: r162:DI=unspec[fix(r164:SI#0)] 7
      REG_DEAD r159:SI
    Inserting subreg reload before:
   30: r164:SI=[r158:DI]
[snip]
      Change to class FLOAT_REGS for r164

Well, that didn't do much.  lra tried the equiv mem, found that didn't
work, and had to reload.  Effectively getting back to the two original
insns but r159 replaced with r164.  simplify_operand_subreg did not do
anything in this case because SLOW_UNALIGNED_ACCESS was true (wrongly
for power8, but that's beside the point).  So now we have, using
abbreviated rtl notation:
r164:SI=[r158:DI]
r162:DI=unspec[fix(r164:SI)]
The problem here is that the first insn isn't valid, due to the rs6000
backend not supporting SImode in fprs, and r164 must be an fpr to make
the second insn valid.

next lra action:
      Creating newreg=165 from oldreg=164, assigning class GENERAL_REGS to r165
   30: r165:SI=[r158:DI]
    Inserting insn reload after:
   31: r164:SI=r165:SI
so now we have
r165:SI=[r158:DI]
r164:SI=r165:SI
r162:DI=unspec[fix(r164:SI)]

This ought to be good on power8, except for one little thing.
r165 is GENERAL_REGS so the first insn is good, a gpr load from mem.
r164 is FLOAT_REGS, making the last insn good, a fctiwz.
The second insn ought to be a sldi, mtvsrd, xscvspdpn combination, but
that is only supported for SFmode.  So lra continue on reloading the
second insn, but in vain because it never tries anything other than
SImode and as noted above, SImode is not valid in fprs.

What this patch does is arrange to emit the two reloads needed for the
SLOW_UNALIGNED_ACCESS case at once, moving the subreg to the second
insn in order to switch modes, producing:

r164:SI=[r158:DI]
r165:SF=r164:SI#0
r162:DI=unspec[fix(r165:SF)]

I've also tidied a couple of other things:
1) "old" is unnecessary as it duplicated "operand".
2) Rejecting mem subregs due to SLOW_UNALIGNED_ACCESS only makes sense
if the original mode was not slow.

PR target/71680
* lra-constraints.c (simplify_operand_subreg): Allow subreg
mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
slow.  Emit two reloads for slow mem case, first loading in
fast innermode, then converting to required mode.
testsuite/
* gcc.target/powerpc/pr71680.c: New.

From-SVN: r239342

8 years ago* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
Jason Merrill [Wed, 10 Aug 2016 22:38:34 +0000 (18:38 -0400)]
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.

From-SVN: r239340

8 years agoImplement C++17 constexpr if.
Jason Merrill [Wed, 10 Aug 2016 21:58:23 +0000 (17:58 -0400)]
Implement C++17 constexpr if.

* cp-tree.h (IF_STMT_CONSTEXPR_P): New.
* name-lookup.c (push_to_top_level, pop_from_top_level_1): Handle it.
* parser.h (struct cp_parser): Add in_discarded_stmt field.
* parser.c (cp_parser_selection_statement): Handle 'if constexpr'.
(cp_parser_jump_statement): Avoid deducing from a discarded return.
* pt.c (tsubst_expr): Only instantiate taken branch of constexpr if.
* semantics.c (begin_if_stmt): Set the binding level this_entity.
(finish_if_stmt_cond): Require the condition of a
constexpr if to be constant.
* decl.c (level_for_constexpr_if): New.
(named_label_entry): Add in_constexpr_if field.
(poplevel_named_label_1): Set it.
(check_goto): Check it.
(check_previous_goto_1): Check level_for_constexpr_if.

From-SVN: r239338

8 years agoaltivec.h (vec_extract_exp): New macro.
Kelvin Nilsen [Wed, 10 Aug 2016 19:04:13 +0000 (19:04 +0000)]
altivec.h (vec_extract_exp): New macro.

gcc/ChangeLog:

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

* config/rs6000/altivec.h (vec_extract_exp): New macro.
(vec_extract_sig): New macro.
(vec_insert_exp): New macro.
(vec_test_data_class): New macro.
(scalar_extract_exp): New macro.
(scalar_extract_sig): New macro.
(scalar_insert_exp): New macro.
(scalar_test_data_class): New macro.
(scalar_test_neg): New macro.
(scalar_cmp_exp_gt): New macro.
(scalar_cmp_exp_lt): New macro.
(scalar_cmp_exp_eq): New macro.
(scalar_cmp_exp_unordered): New macro.
* config/rs6000/predicates.md (u7bit_cint_operand): New predicate
to enforce constraint that operand is a 7-bit unsigned literal.
* config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
for power9 built-ins.
(BU_P9V_VSX_2): Likewise.
(BU_P9V_64BIT_VSX_2): Likewise.
(VSEEDP): Add scalar extract exponent support.
(VSEESP): Add scalar extract signature support.
(VSTDCNDP): Add scalar test negative support.
(VSTDCNSP): Likewise.
(VSIEDP): Add scalar insert exponent support.
(VSCEDPGT): Add scalar compare exponent greater than support.
(VSCEDPLT): Add scalar compare exponent less than support.
(VSCEDPEQ): Add scalar compare exponent test-for-equality support.
(VSCEDPUO): Add scalar compare exponent test-for-unordered support.
(VSTDCDP): Add scalar test data class support.
(VSTDCSP): Likewise.
(VSEEDP): Add overload support for scalar extract exponent
operation.
(VSESDP): Add overload support for scalar extract signature
operation.
(VSTDCN): Add overload support for scalar test negative
operation.
(VSTDCNDP): Add overload support for scalar test negative
operation.
(VSTDCNSP): Add overload support for scalar test negative
operation.
(VSIEDP): Add overload support for scalar insert exponent
operation.
(VSTDC): Add overload support for scalar test data class
operation.
(VSTDCDP): Add overload support for scalar test data class
operation.
(VSTDCSP): Add overload support for scalar test data class
opreation.
(VSCEDPGT): Add overload support for scalar compare exponent
greater than operation.
(VSCEDPLT): Add overload support for scalar compare exponent
less than operation.
(VSCEDPEQ): Add overload support for scalar compare exponent
test-for-equality operation.
(VSCEDPUO): Add overload support for scalar compare exponent
test-for-unordered operation.
(VEEDP): Add vector extract exponent support.
(VEESP): Likewise.
(VESDP): Add vector extract significand support.
(VESSP): Likewise.
(VIEDP): Add vector insert exponent support.
(VIESP): Likewise.
(VTDCDP): Add vector test data class support.
(VTDCSP): Likewise.
(VES): Add overload support for vector extract significand operation.
(VESDP): Likewise.
(VESSP): Likewise
(VEE): Add overload support for vector extract exponent operation.
(VEEDP): Likewise.
(VEESP): Likewise.
(VTDC): Add overload support for vector test data class operation.
(VTDCDP): Likewise.
(VTDCSP): Likewise.
(VIE): Add overload support for vector insert exponent operation.
(VIEDP): Likewise.
(VIESP): Likewise.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
overloaded binary floating point functions.
(altivec_resolve_overloaded_builtin): Improve error messages to
distinguish between functions not supported in the current
compiler configuration and functions that were invoked with an
invalid parameter combination, and include the built-in function
name in both error messages.
* config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
New prototype.
* config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
function.
(rs6000_expand_binop_builtin): Add check to enforce that argument
2 of the test data class operations is a 7-bit unsigned literal.
(rs6000_invalid_builtin): Add code to issue an error message if a
built-in function that requires the power9_vector and -m32
command-line options is compiled without these options.
* config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
(UNSPEC_VSX_SXSIGDP): New value.
(UNSPEC_VSX_SXSIGPDP): New value.
(UNSPEC_VSX_SIEXPDP): New value.
(UNSPEC_VSX_SCMPEXPDP): New value.
(UNSPEC_VSX_STSTDC): New value.
(UNSPEC_VSX_VXEXP): New value.
(UNSPEC_VSX_VXSIG): New value.
(UNSPEC_VSX_VIEXP): New value.
(UNSPEC_VSX_VTSTDC): New value.
(xsxexpdp): New insn for scalar extract exponent.
(xsxsigdp): New insn for scalar extract significand.
(xsiexpdp): New insn for scalar insert exponent.
(xscmpexpdp_<code>): New expansion for scalar compare exponents.
(*xscmpexpdp): New insn for scalar compare exponents.
(xststdc<Fvsx): New expansion for both single- and
double-precision scalar test data class operations.
(xststdcneg<Fvsx>): New expansion for both single- and
double-precision scalar test for negative value operations.
(*xststdc<Fvsx>): New insn for scalar test data class
operation.
(xvxexp<VSs>): New insn for single- and double-precision
vector extract exponent operation.
(xvxsig<VSs>): New insn for single- and double-precision
vector extract significand operation.
(xviexp<VSs>): New insn for single- and double-precision
vector insert exponent operation.
(xvtstdc<VSs>): New insn for single- and double-precision
vector test data class operation.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
built-in functions to represent the Power9 binary floating-point
support instructions.

gcc/testsuite/ChangeLog:

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

* gcc.target/powerpc/bfp/bfp.exp: New file.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-0.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-1.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-0.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-1.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-0.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-1.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-0.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-1.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-3.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-0.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-1.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-2.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-3.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-0.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-1.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-2.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-3.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-0.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-1.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-2.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-3.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-0.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-1.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-2.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-3.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-4.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-5.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-6.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-7.c: New test.

From-SVN: r239334

8 years agocompiler: annotate or fix fall through cases in switch statements
Ian Lance Taylor [Wed, 10 Aug 2016 18:56:35 +0000 (18:56 +0000)]
compiler: annotate or fix fall through cases in switch statements

    A new GCC warning, -Wimplicit-fallthrough, detected these three cases
    where a switch case falls through to another.  One of them looks like
    a bug, so I fixed it; the two other look like intended fall throughs
    so I just added a "fall through" comment to suppress the GCC warning.

    Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.

    Reviewed-on: https://go-review.googlesource.com/26695

From-SVN: r239332

8 years ago* doc/sourcebuild.texi (@item vect_cond_mixed): New item.
Bin Cheng [Wed, 10 Aug 2016 15:47:58 +0000 (15:47 +0000)]
* doc/sourcebuild.texi (@item vect_cond_mixed): New item.

From-SVN: r239330

8 years agotarget-supports.exp (check_effective_target_vect_cond_mixed): Add aarch64*-*-*.
Bin Cheng [Wed, 10 Aug 2016 15:45:25 +0000 (15:45 +0000)]
target-supports.exp (check_effective_target_vect_cond_mixed): Add aarch64*-*-*.

gcc/testsuite
* lib/target-supports.exp (check_effective_target_vect_cond_mixed):
Add aarch64*-*-*.

From-SVN: r239329

8 years agoiterators.md (V_cmp_mixed, [...]): New.
Bin Cheng [Wed, 10 Aug 2016 15:34:23 +0000 (15:34 +0000)]
iterators.md (V_cmp_mixed, [...]): New.

* config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
(aarch64_vcond_internal<mode><mode>): Delete pattern.
(aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
(vcond<v_cmp_result><mode>): Ditto.
(vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
(vcondu<mode><mode>): Ditto.
(vcond<v_cmp_mixed><mode>): New pattern.
(vcondu<mode><v_cmp_mixed>): New pattern.
(aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
of aarch64_vcond_internal.

gcc/testsuite
* gcc.target/aarch64/simd/vcond-ne.c: New test.

From-SVN: r239328

8 years agoaarch64-simd.md (vec_cmp<mode><mode>): New pattern.
Alan Lawrence [Wed, 10 Aug 2016 15:26:14 +0000 (15:26 +0000)]
aarch64-simd.md (vec_cmp<mode><mode>): New pattern.

* config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
(vec_cmp<mode><v_cmp_result>): New pattern.
(vec_cmpu<mode><mode>): New pattern.
(vcond_mask_<mode><v_cmp_result>): New pattern.

Co-Authored-By: Bin Cheng <bin.cheng@arm.com>
Co-Authored-By: Renlin Li <renlin.li@arm.com>
From-SVN: r239327

8 years agore PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
Yuri Rumyantsev [Wed, 10 Aug 2016 15:03:02 +0000 (15:03 +0000)]
re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90   -O3 -g  execution test)

Fix PR tree-optimization/71734

2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/71734
* tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
REF_LOOP, invoke ref_indep_loop_p_1.
(outermost_indep_loop): Pass LOOP argumnet where REF was defined
to ref_indep_loop_p.
(ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
is inside LOOP, do not cache dpendence value for loops with
non-zero SAFELEN.
(ref_indep_loop_p_2): Delete function.
(can_sm_ref_p): Pass LOOP as additional argument to
ref_indep_loop_p.

From-SVN: r239326

8 years agore PR target/72853 (gcc/testsuite/gcc.c-torture/execute/20021120-1.c generates incorr...
Michael Meissner [Wed, 10 Aug 2016 13:49:12 +0000 (13:49 +0000)]
re PR target/72853 (gcc/testsuite/gcc.c-torture/execute/20021120-1.c generates incorrect stxssp op with -mcpu=power9)

[gcc]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72853
* config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
being an offsettable address.

[gcc/testsuite]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72853
* gcc.target/powerpc/pr72853.c: New test.

From-SVN: r239325

8 years agoAdd new *_atomic counter update function
Martin Liska [Wed, 10 Aug 2016 13:14:56 +0000 (15:14 +0200)]
Add new *_atomic counter update function

PR gcov-profile/58306
* Makefile.in: New functions (modules) are added.
* libgcov-profiler.c (__gcov_interval_profiler_atomic): New
function.
(__gcov_pow2_profiler_atomic): New function.
(__gcov_one_value_profiler_body): New argument is instroduced.
(__gcov_one_value_profiler): Call with the new argument.
(__gcov_one_value_profiler_atomic): Likewise.
(__gcov_indirect_call_profiler_v2): Likewise.
(__gcov_time_profiler_atomic): New function.
(__gcov_average_profiler_atomic): Likewise.
(__gcov_ior_profiler_atomic): Likewise.
* libgcov.h: Declare the aforementioned functions.
PR gcov-profile/58306
* gcc.dg/tree-prof/val-profiler-threads-1.c: New test.
PR gcov-profile/58306
* tree-profile.c (gimple_init_edge_profiler): Create conditionally
atomic variants of profile update functions.

From-SVN: r239324

8 years agoCherry-pick fprofile-generate-atomic from google/gcc-4_9
Martin Liska [Wed, 10 Aug 2016 13:11:42 +0000 (15:11 +0200)]
Cherry-pick fprofile-generate-atomic from google/gcc-4_9

Cherry picked (and modified) from google-4_7 branch
2012-12-26  Rong Xu  <xur@google.com>
* common.opt (fprofile-update): Add new flag.
* coretypes.h: Define enum profile_update.
* doc/invoke.texi: Document -fprofile-update.
* gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
* tree-profile.c (gimple_init_edge_profiler): Generate
also atomic profiler update.
(gimple_gen_edge_profiler): Likewise.
* g++.dg/gcov/gcov-threads-1.C: New test.

From-SVN: r239323

8 years agotoplev.c: set FILE * globals to NULL after fclose
David Malcolm [Wed, 10 Aug 2016 13:08:13 +0000 (13:08 +0000)]
toplev.c: set FILE * globals to NULL after fclose

gcc/ChangeLog:
* toplev.c (finalize): Set aux_info_file, asm_out_file, and
stack_usage_file to NULL after fclose calls.

From-SVN: r239322

8 years agoFix PR 71873 - ICE in push_reload
Senthil Kumar Selvaraj [Wed, 10 Aug 2016 12:35:57 +0000 (12:35 +0000)]
Fix PR 71873 - ICE in push_reload

Extend computation of subreg_in_class to constants and plus expressions
inside SUBREGs, before recursively calling push_reload. SYMBOL_REFs are
also CONSTANT_P, so remove explicit handling of SYMBOL_REFs.

gcc/ChangeLog

PR target/71873
* reload.c (push_reload): Compute subreg_in_class for
subregs of constants and plus expressions. Remove special
handling of SYMBOL_REFs.

gcc/testsuite/ChangeLog

PR target/71873
* gcc.target/avr/pr71873.c: New test.

From-SVN: r239321

8 years ago[RS6000] e500 part of pr71680
Alan Modra [Wed, 10 Aug 2016 05:43:36 +0000 (15:13 +0930)]
[RS6000] e500 part of pr71680

The fallback part of HARD_REGNO_CALLER_SAVE_MODE, choose_hard_reg_mode,
returns DFmode for SImode when TARGET_E500_DOUBLE.  This confuses
lra when attempting to save ctr around a call.

PR target/71680
* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
SImode for TARGET_E500_DOUBLE when given SImode.

From-SVN: r239317

8 years agogccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and -fgo-debug-escae.
Ian Lance Taylor [Wed, 10 Aug 2016 05:19:23 +0000 (05:19 +0000)]
gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and -fgo-debug-escae.

* gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and
-fgo-debug-escae.
(Compiler Directives): New chapter.
(Function Names): Describe using //go:linkname.  Suggest using
-fgo-pkgpath rather than -fgo-prefix.

From-SVN: r239316

8 years agocompiler: implement go:noinline and go:nosplit directives
Ian Lance Taylor [Wed, 10 Aug 2016 00:46:35 +0000 (00:46 +0000)]
compiler: implement go:noinline and go:nosplit directives

    Reviewed-on: https://go-review.googlesource.com/26652

From-SVN: r239315

8 years agoDaily bump.
GCC Administrator [Wed, 10 Aug 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239314

8 years agocompiler: implement go:linkname compiler directive
Ian Lance Taylor [Tue, 9 Aug 2016 23:08:32 +0000 (23:08 +0000)]
compiler: implement go:linkname compiler directive

    Implement the go:linkname compiler directive for functions (both
    function definitions and function declarations).  At least for now, give
    an error for code that tries to use go:linkname with a non-function.

    Reviewed-on: https://go-review.googlesource.com/26651

From-SVN: r239311

8 years agoavx512fintrin.h (_mm512_cvtsepi64_epi32): Remove unused variable __O.
David Wohlferd [Tue, 9 Aug 2016 22:24:40 +0000 (22:24 +0000)]
avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove unused variable __O.

* config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
unused variable __O.

From-SVN: r239310

8 years agoPR c++/68703 - bogus error with dependent vector length
Jason Merrill [Tue, 9 Aug 2016 22:03:07 +0000 (18:03 -0400)]
PR c++/68703 - bogus error with dependent vector length

gcc/c-family/
* c-common.c (c_common_attribute_table): vector_size affects type
identity.
gcc/cp/
* decl2.c (any_dependent_type_attributes_p): New.
* pt.c (dependent_type_p_r, type_dependent_expression_p): Check it.
* semantics.c (finish_id_expression): Check it.
* typeck.c (finish_class_member_access_expr): Check it.

From-SVN: r239309

8 years agoAdd tests for __gcov_dump and __gcov_reset
Martin Liska [Tue, 9 Aug 2016 21:03:39 +0000 (23:03 +0200)]
Add tests for __gcov_dump and __gcov_reset

* g++.dg/gcov/gcov-dump-1.C: New test.
* g++.dg/gcov/gcov-dump-2.C: New test.

From-SVN: r239308

8 years agoFix typo in gcov.texi
Martin Liska [Tue, 9 Aug 2016 21:02:24 +0000 (23:02 +0200)]
Fix typo in gcov.texi

* doc/gcov.texi: Change _gcov_dump to __gcov_dump and
_gcov_reset to __gcov_reset.
* doc/gcov-tool.texi: Fix typo.
* libgcov-util.c: Fix typo and GNU coding style.

From-SVN: r239307

8 years agoRemove __gcov_indirect_call_profiler
Martin Liska [Tue, 9 Aug 2016 21:01:19 +0000 (23:01 +0200)]
Remove __gcov_indirect_call_profiler

* Makefile.in: Remove __gcov_indirect_call_profiler.
* libgcov-profiler.c (__gcov_indirect_call_profiler): Remove
function.
* libgcov.h: And the declaration of the function.

From-SVN: r239306

8 years agoFix usage of POW2 histogram
Martin Liska [Tue, 9 Aug 2016 20:57:39 +0000 (22:57 +0200)]
Fix usage of POW2 histogram

* value-prof.c (gimple_divmod_values_to_profile): Do not
instrument MOD histogram if a value is not a SSA name.
* gcc.dg/tree-prof/val-prof-9.c: New test.

From-SVN: r239305

8 years agoFix POW2 histogram
Martin Liska [Tue, 9 Aug 2016 20:57:14 +0000 (22:57 +0200)]
Fix POW2 histogram

* gcc.dg/tree-prof/val-prof-8.c: New test.
* value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
values.
* libgcov-profiler.c (__gcov_pow2_profiler): Consider 0 as not
power of two.

From-SVN: r239304

8 years agoSet +x for two python scripts.
Martin Liska [Tue, 9 Aug 2016 20:42:58 +0000 (20:42 +0000)]
Set +x for two python scripts.

From-SVN: r239303

8 years agore PR bootstrap/72833 (error in fortran/parse.c (unexpected_eof) on Mac OS X 10.7)
Bernd Edlinger [Tue, 9 Aug 2016 17:58:00 +0000 (17:58 +0000)]
re PR bootstrap/72833 (error in fortran/parse.c (unexpected_eof) on Mac OS X 10.7)

2016-08-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR bootstrap/72833
        * fixincl.tpl (version-compare): Fix generation with autogen 5.18.
        * inclhack.def (darwin_longjmp_noreturn): New fix.
        * fixincl.x: Regenerated.
        * tests/base/i386/setjmp.h [DARWIN_LONGJMP_NORETURN_CHECK]: new test.

From-SVN: r239301

8 years ago[PATCH][PR64971]Convert function pointer to Pmode when emit call.
Renlin Li [Tue, 9 Aug 2016 17:20:14 +0000 (17:20 +0000)]
[PATCH][PR64971]Convert function pointer to Pmode when emit call.

gcc/

2016-08-04  Renlin Li  <renlin.li@arm.com>

PR middle-end/64971
* calls.c (prepare_call_address): Convert funexp to Pmode when
necessary.
* config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
(sibcall_value): Likewise.

From-SVN: r239300

8 years agoPR c++/71712 - ABI tags on conversion ops.
Jason Merrill [Tue, 9 Aug 2016 16:55:08 +0000 (12:55 -0400)]
PR c++/71712 - ABI tags on conversion ops.

* class.c (check_abi_tags): Don't duplicate tags for conversion ops.

From-SVN: r239299

8 years agoAdjust mangling of ABI tags on class template member functions.
Jason Merrill [Tue, 9 Aug 2016 16:55:01 +0000 (12:55 -0400)]
Adjust mangling of ABI tags on class template member functions.

* class.c (missing_abi_tags): New.
(check_abi_tags): Don't check template. Add just_checking mode.
* mangle.c (abi_flag_at_least, any_abi_below, equal_abi_tags): New.
(sorted_abi_tags): Split out from write_abi_tags.
(struct releasing_vec): New.
(write_unqualified_name): Only look for the primary
template for types.  Implement backward compatibility.

From-SVN: r239298

8 years agore PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
Marek Polacek [Tue, 9 Aug 2016 16:39:28 +0000 (16:39 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)

PR c/7652
gcc/c-family/
* c-ada-spec.c (dump_generic_ada_node): Add return.
gcc/
* cselib.c (cselib_expand_value_rtx_1): Add return.
* gengtype.c (dbgprint_count_type_at): Likewise.
* hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
* reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.

From-SVN: r239297

8 years agomksysinfo.sh: always define CLONE_NEWNET
Ian Lance Taylor [Tue, 9 Aug 2016 16:38:23 +0000 (16:38 +0000)]
mksysinfo.sh: always define CLONE_NEWNET

    CLONE_NEWNET is needed to compile the syscall tests on GNU/Linux.
    The symbol is not defined in the CentOS 5.11 header files.

    Patch from Uros Bizjak.

    Reviewed-on: https://go-review.googlesource.com/26630

From-SVN: r239296

8 years ago[PR ipa/71981] Make get_dynamic_type grok MEM_REF
Martin Jambor [Tue, 9 Aug 2016 16:05:30 +0000 (18:05 +0200)]
[PR ipa/71981] Make get_dynamic_type grok MEM_REF

2016-08-09  Martin Jambor  <mjambor@suse.cz>

        PR ipa/71981
        * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
        if instance is a MEM_REF.

testsuite/
        PR ipa/71981
        * gcc.dg/ipa/pr71981.c: New test.

From-SVN: r239294

8 years agore PR rtl-optimization/72843 (internal compiler error: in lra_set_insn_recog_data...
Uros Bizjak [Tue, 9 Aug 2016 15:35:34 +0000 (17:35 +0200)]
re PR rtl-optimization/72843 (internal compiler error: in lra_set_insn_recog_data, at lra.c:964)

PR target/72843
* config/i386/i386.md (*movtf_internal): Use
lra_in_progress || reload_completed instead of !can_create_pseudo_p
in the insn constraint.
(*movxf_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.

From-SVN: r239293

8 years agore PR tree-optimization/33707 (scev not handling unsigned conversion)
Bin Cheng [Tue, 9 Aug 2016 15:10:55 +0000 (15:10 +0000)]
re PR tree-optimization/33707 (scev not handling unsigned conversion)

gcc/testsuite
PR tree-optimization/33707
* gcc.dg/vect/pr33707.c: New test.

From-SVN: r239292

8 years agore PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)
Bin Cheng [Tue, 9 Aug 2016 15:08:02 +0000 (15:08 +0000)]
re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)

PR tree-optimization/72772
* tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
for expanded base.

gcc/testsuite
PR tree-optimization/pr72772
* gcc.dg/tree-ssa/pr72772.c: New test.

From-SVN: r239291

8 years agore PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)
Bin Cheng [Tue, 9 Aug 2016 15:01:49 +0000 (15:01 +0000)]
re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)

PR tree-optimization/72772
* tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
parameter STOP.
* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
parameter STOP and update calls.  Move expand_simple_operations
function call from here...
(simplify_using_initial_conditions): ...to here.  Delete parameter
STOP.
(tree_simplify_using_condition): Delete parameter STOP.
* tree-scalar-evolution.c (simple_iv_with_niters): Update call to
simplify_using_initial_conditions.

From-SVN: r239290

8 years agoPR c++/72849 - ICE with incomplete class.
Jason Merrill [Tue, 9 Aug 2016 14:37:12 +0000 (10:37 -0400)]
PR c++/72849 - ICE with incomplete class.

* constexpr.c (cxx_eval_constant_expression): Check
COMPLETE_TYPE_P before calling is_really_empty_class.
* class.c (is_really_empty_class): Don't call complete_type.

From-SVN: r239289

8 years agoMIPS: Skip gcc.dg/loop-8.c due to additional invariants
Matthew Fortune [Tue, 9 Aug 2016 14:36:45 +0000 (14:36 +0000)]
MIPS: Skip gcc.dg/loop-8.c due to additional invariants

gcc/
PR rtl-optimization/66669
* gcc.dg/loop-8.c: Skip for MIPS due to extra invariants.

From-SVN: r239288

8 years agoPR c++/56701 - wrong type of &*this
Jason Merrill [Tue, 9 Aug 2016 14:08:33 +0000 (10:08 -0400)]
PR c++/56701 - wrong type of &*this

* typeck.c (cp_build_addr_expr_1): Remove special *this handling.

From-SVN: r239285

8 years agocompiler: rewrite compiler directive support
Ian Lance Taylor [Tue, 9 Aug 2016 14:05:17 +0000 (14:05 +0000)]
compiler: rewrite compiler directive support

    Rewrite the compiler directive support to recognize all the compiler
    directives implemented by the current gc compiler.  The directives other
    than go:linkname are now turned into GOPRAGMA flags attached to a
    function or function declaration.  The go:linkname directive is turned
    into a map attached to the Lex object.  No new directives are actually
    implemented yet, they are just recognized.

    Reviewed-on: https://go-review.googlesource.com/26610

From-SVN: r239282

8 years agoMIPS: Use create_tmp_var_raw in mips_atomic_assign_expand_fenv
Matthew Fortune [Tue, 9 Aug 2016 12:36:18 +0000 (12:36 +0000)]
MIPS: Use create_tmp_var_raw in mips_atomic_assign_expand_fenv

gcc/
PR c/65345
* config/mips/mips.c (mips_atomic_assign_expand_fenv):
Use create_tmp_var_raw instead of create_tmp_var.

From-SVN: r239278

8 years agotree-ssa-threadbackward.c (profitable_jump_thread_path): Treat same SSA names related.
Richard Biener [Tue, 9 Aug 2016 08:09:21 +0000 (08:09 +0000)]
tree-ssa-threadbackward.c (profitable_jump_thread_path): Treat same SSA names related.

2016-08-09  Richard Biener  <rguenther@suse.de>

* tree-ssa-threadbackward.c (profitable_jump_thread_path):
        Treat same SSA names related.

From-SVN: r239276

8 years agore PR tree-optimization/72824 (Signed floating point zero semantics broken at optimiz...
Jakub Jelinek [Tue, 9 Aug 2016 07:49:14 +0000 (09:49 +0200)]
re PR tree-optimization/72824 (Signed floating point zero semantics broken at optimization level -O3 (tree-loop-distribute-patterns))

PR tree-optimization/72824
* tree-loop-distribution.c (const_with_all_bytes_same): Verify
real_zerop is not negative.

* gcc.c-torture/execute/ieee/pr72824.c: New test.

From-SVN: r239275

8 years agore PR tree-optimization/71802 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in...
Richard Biener [Tue, 9 Aug 2016 07:40:50 +0000 (07:40 +0000)]
re PR tree-optimization/71802 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in expand_LOOP_VECTORIZED)

2016-08-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71802
* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
all merge opportunities with the predecessor.

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

From-SVN: r239274

8 years agore PR target/68273 (Wrong code on mips/mipsel due to (invalid?) peeking at alignments...
Richard Biener [Tue, 9 Aug 2016 07:38:13 +0000 (07:38 +0000)]
re PR target/68273 (Wrong code on mips/mipsel due to (invalid?) peeking at alignments in function_arg.)

2016-08-09  Richard Biener  <rguenther@suse.de>

PR ipa/68273
* ipa-prop.c (ipa_modify_formal_parameters): Build
parameter types with natural alignment also for the
over-aligned case.

From-SVN: r239273

8 years agore PR c++/72809 (ICE on x86_64-linux-gnu (Segmentation fault, tree_check))
Jakub Jelinek [Tue, 9 Aug 2016 07:23:47 +0000 (09:23 +0200)]
re PR c++/72809 (ICE on x86_64-linux-gnu (Segmentation fault, tree_check))

PR c++/72809
* rtti.c (get_pseudo_ti_index): Return TK_CLASS_TYPE for
builtin aggregate types without TYPE_BINFO.

* g++.dg/eh/stdarg1.C: New test.

From-SVN: r239272

8 years agoImplement C++17 constexpr lambda.
Jason Merrill [Tue, 9 Aug 2016 04:33:58 +0000 (00:33 -0400)]
Implement C++17 constexpr lambda.

gcc/c-family/
* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
C++17 constexpr lambdas.
gcc/cp/
* class.c (finalize_literal_type_property): Handle lambdas.
* constexpr.c (is_valid_constexpr_fn): Likewise.  No longer static.
(explain_invalid_constexpr_fn, cxx_eval_call_expression): Handle
lambdas.
(cxx_eval_constant_expression): Handle capture proxy.
(var_in_constexpr_fn): Don't check for C++14.
(var_in_maybe_constexpr_fn): New.
(potential_constant_expression_1): Use it.  Check DECL_EXPR for
declarations not allowed in constexpr function.
* decl.c (make_rtl_for_nonlocal_decl): Use var_in_maybe_constexpr_fn.
(finish_function): Set DECL_DECLARED_CONSTEXPR_P on lambda members.
* lambda.c (begin_lambda_type): Set CLASSTYPE_LITERAL_P.
(maybe_add_lambda_conv_op): Clear thunk CALL_EXPR location.
(lambda_static_thunk_p): New.
* parser.c (cp_keyword_starts_decl_specifier_p): Add RID_CONSTEXPR.
(CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): New enumerator.
(cp_parser_decl_specifier_seq): Handle it.
(cp_parser_lambda_declarator_opt): Use cp_parser_decl_specifier_seq.
* pt.c (instantiate_class_template_1): Set CLASSTYPE_LITERAL_P.
(tsubst_copy_and_build) [CALL_EXPR]: Propagate CALL_FROM_THUNK_P.
* error.c (dump_function_decl): Check TFF_NO_TEMPLATE_BINDINGS.
(dump_expr) [FUNCTION_DECL]: Pass it.

From-SVN: r239268

8 years agoFix empty class parameters with constexpr.
Jason Merrill [Tue, 9 Aug 2016 04:33:42 +0000 (00:33 -0400)]
Fix empty class parameters with constexpr.

PR c++/67131
* class.c (is_really_empty_class): Call complete_type.
* constexpr.c (cxx_eval_constant_expression): Check
is_really_empty_class.
(potential_constant_expression_1): Likewise.  Check for error type.

From-SVN: r239267

8 years agoFix warning breaking profiled bootstrap
Andi Kleen [Tue, 9 Aug 2016 02:48:44 +0000 (02:48 +0000)]
Fix warning breaking profiled bootstrap

This patch fixes an bootstrap error with autoprofiledbootstrap
due to uninitiliazed variables, because the compiler cannot
figure out they don't need to be initialized in an error path.
Just always initialize them.

gcc/:

2016-08-08  Andi Kleen  <ak@linux.intel.com>

* tree-vrp.c (get_single_symbol): Always initialize inv and neg.

From-SVN: r239266

8 years agoMake autofdo tests safer for parallel builds
Andi Kleen [Tue, 9 Aug 2016 02:47:25 +0000 (02:47 +0000)]
Make autofdo tests safer for parallel builds

There were some reports that the autofdo tests are non deterministic
with parallel builds. I wasn't able to reproduce this, but here are
two changes that may help:

- Always use unique file names for temporary files.
- Don't print file names in the test log because the directories
can vary (suggested by Jeff Law)

gcc/testsuite/:

2016-08-08  Andi Kleen  <ak@linux.intel.com>

* lib/profopt.exp: (auto-profopt-execute): Don't include full
test command line in failure log.
(profopt-execute): dito. Make autofdo file names unique.

From-SVN: r239265

8 years agoDaily bump.
GCC Administrator [Tue, 9 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239264

8 years agotext/template: reduce maxExecDepth for gccgo further
Ian Lance Taylor [Mon, 8 Aug 2016 22:55:29 +0000 (22:55 +0000)]
text/template: reduce maxExecDepth for gccgo further

    We already lowered the limit of recursive template invocations from
    100,000 to 10,000, but the tests still fail occasionally on
    x86_64-pc-linux-gnu when using GNU ld (so that split stacks are not
    fully functional).  Reduce the limit further, to 1000, enough so that
    the test passes consistently.

    Permitting 1000 recursive template invocations still seems capacious
    enough for real world use.

    Reviewed-on: https://go-review.googlesource.com/25590

From-SVN: r239261

8 years agoc-format.c: suggest the correct format string to use (PR c/64955)
David Malcolm [Mon, 8 Aug 2016 22:50:47 +0000 (22:50 +0000)]
c-format.c: suggest the correct format string to use (PR c/64955)

This adds fix-it hints to c-format.c so that it can (sometimes) suggest
the format string the user should have used.

The patch adds selftests for the new code in c-format.c.  These
selftests are thus lang-specific.  This is the first time we've had
lang-specific selftests, and hence the patch also adds a langhook for
running them.  (Note that currently the Makefile only invokes the
selftests for cc1).

gcc/c-family/ChangeLog:
PR c/64955
* c-common.h (selftest::c_format_c_tests): New declaration.
(selftest::run_c_tests): New declaration.
* c-format.c: Include "selftest.h.
(format_warning_va): Add param "corrected_substring" and use
it to add a replacement fix-it hint.
(format_warning_at_substring): Likewise.
(format_warning_at_char): Update for new param of
format_warning_va.
(argument_parser::check_argument_type): Pass "fki" to
check_format_types.
(check_format_types): Add param "fki" and pass it to
format_type_warning.
(deref_n_times): New function.
(get_modifier_for_format_len): New function.
(selftest::test_get_modifier_for_format_len): New function.
(get_format_for_type): New function.
(format_type_warning): Add param "fki" and use it to attempt
to provide hints for argument types when calling
format_warning_at_substring.
(selftest::get_info): New function.
(selftest::assert_format_for_type_streq): New function.
(ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
(selftest::test_get_format_for_type_printf): New function.
(selftest::test_get_format_for_type_scanf): New function.
(selftest::c_format_c_tests): New function.

gcc/c/ChangeLog:
PR c/64955
* c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
this up to selftest::run_c_tests.
(selftest::run_c_tests): New function.

gcc/ChangeLog:
PR c/64955
* langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
do-nothing langhook.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
* langhooks.h (struct lang_hooks): Add run_lang_selftests.
* selftest-run-tests.c: Include "tree.h" and "langhooks.h".
(selftest::run_tests): Call lang_hooks.run_lang_selftests.

gcc/testsuite/ChangeLog:
PR c/64955
* gcc.dg/format/diagnostic-ranges.c: Add fix-it hints to expected
output.

From-SVN: r239260

8 years agolibgo: don't have .lo depend on .lo.dep
Ian Lance Taylor [Mon, 8 Aug 2016 21:23:57 +0000 (21:23 +0000)]
libgo: don't have .lo depend on .lo.dep

    Having each .lo depend on the corresponding .lo.dep caused too many
    rebuilds, because the .lo.dep files are rebuilt when Makefile changes.
    Instead, if the .lo.dep file changes, remove the .lo file.

    Reviewed-on: https://go-review.googlesource.com/25588

From-SVN: r239258

8 years agoFix selftest::test_lexer_string_locations_ebcdic for systems without iconv (PR bootst...
David Malcolm [Mon, 8 Aug 2016 20:46:19 +0000 (20:46 +0000)]
Fix selftest::test_lexer_string_locations_ebcdic for systems without iconv (PR bootstrap/72844)

selftest::test_lexer_string_locations_ebcdic has this clause:

  /* EBCDIC support requires iconv.  */
  if (!HAVE_ICONV)
    return;

leading to a build failure on systems without iconv.  This conditional
works in libcpp due to this in libcpp/internal.h:

  #if HAVE_ICONV
  #include <iconv.h>
  #else
  #define HAVE_ICONV 0
  typedef int iconv_t;  /* dummy */
  #endif

Fix the problem by ensuring that HAVE_ICONV is always defined within
gcc/input.c.

gcc/ChangeLog:
PR bootstrap/72844
* input.c: Ensure that HAVE_ICONV is defined.

From-SVN: r239257

8 years agotestsuite: fix gotest for absolute srcdir
Ian Lance Taylor [Mon, 8 Aug 2016 20:34:05 +0000 (20:34 +0000)]
testsuite: fix gotest for absolute srcdir

    The recent changes to Makefile.am mean that if you configure with an
    absolute path as srcdir then gotest will be invoked with absolute paths
    for the files.  That case never worked.  This patch fixes it.

    Reviewed-on: https://go-review.googlesource.com/25587

From-SVN: r239256

8 years agopr71078-1.c: Add require-effective-target c99_runtime.
Prathamesh Kulkarni [Mon, 8 Aug 2016 20:17:36 +0000 (20:17 +0000)]
pr71078-1.c: Add require-effective-target c99_runtime.

2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
* gcc.dg/tree-ssa/pr71078-1.c: Add require-effective-target
c99_runtime.
* gcc.dg/tree-ssa/pr71078-1-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-3.c: Likewise.

From-SVN: r239255

8 years agoUse class substring_loc in c-format.c (PR c/52952)
David Malcolm [Mon, 8 Aug 2016 20:10:19 +0000 (20:10 +0000)]
Use class substring_loc in c-format.c (PR c/52952)

gcc/c-family/ChangeLog:
PR c/52952
* c-format.c: Include "diagnostic.h".
(location_column_from_byte_offset): Delete.
(location_from_offset): Delete.
(format_warning_va): New function.
(format_warning_at_substring): New function.
(format_warning_at_char): New function.
(check_format_arg): Capture location of format_tree and pass to
check_format_info_main.
(argument_parser): Add fields "start_of_this_format" and
"format_string_cst".
(flag_chars_t::validate): Add param "format_string_cst".  Convert
warning_at call using location_from_offset to call to
format_warning_at_char.
(argument_parser::argument_parser): Add param "format_string_cst_"
and use use it to initialize field "format_string_cst".
Initialize new field "start_of_this_format".
(argument_parser::read_format_flags): Convert warning_at call
using location_from_offset to a call to format_warning_at_char.
(argument_parser::read_any_format_left_precision): Likewise.
(argument_parser::read_any_format_precision): Likewise.
(argument_parser::read_any_other_modifier): Likewise.
(argument_parser::find_format_char_info): Likewise, in three places.
(argument_parser::parse_any_scan_set): Likewise, in one place.
(argument_parser::handle_conversions): Likewise, in two places.
(argument_parser::check_argument_type): Add param "fmt_param_loc"
and use it to make a substring_loc.  Pass the latter to
check_format_types.
(check_format_info_main): Add params "fmt_param_loc" and
"format_string_cst".  Convert warning_at calls using
location_from_offset to calls to format_warning_at_char.  Pass the
new params to the arg_parser ctor.  Pass "format_string_cst" to
flag_chars.validate.  Pass "fmt_param_loc" to
arg_parser.check_argument_type.
(check_format_types): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc".  Attempt
to extract the range of the relevant parameter and pass it
to format_type_warning.
(format_type_warning): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc".  Add
params "param_range" and "type".  Replace calls to warning_at
with calls to format_warning_at_substring.

gcc/testsuite/ChangeLog:
PR c/52952
* gcc.dg/cpp/pr66415-1.c: Likewise.
* gcc.dg/format/asm_fprintf-1.c: Update column numbers.
* gcc.dg/format/c90-printf-1.c: Likewise.
* gcc.dg/format/diagnostic-ranges.c: New test case.

From-SVN: r239253

8 years agore PR go/72814 (reflect FAILs on 32-bit Solaris/SPARC: SIGILL)
Ian Lance Taylor [Mon, 8 Aug 2016 19:53:44 +0000 (19:53 +0000)]
re PR go/72814 (reflect FAILs on 32-bit Solaris/SPARC: SIGILL)

PR go/72814

    runtime: treat zero-sized result value as void

    Change the FFI interface to treat a call to a function that returns a
    zero-sized result as a call to a function that returns void.

    This is part of the fix for https://gcc.gnu.org/PR72814.  On 32-bit
    SPARC systems, a call to a function that returns a non-zero-sized struct
    is followed by an unimp instruction that describes the size of the
    struct.  The function returns to the address after the unimp
    instruction.  The libffi library can not represent a zero-sized struct,
    so we wind up treating it as a 1-byte struct.  Thus in that case libffi
    calls the function with an unimp instruction, but the function does not
    adjust the return address.  The result is that the program attempts to
    execute the unimp instruction, causing a crash.

    This is part of a change that fixes the crash by treating all functions
    that return zero bytes as functions that return void.

    Reviewed-on: https://go-review.googlesource.com/25585

* go-gcc.cc (Gcc_backend::function_type): If the return type is
zero bytes, treat the function as returning void.
(return_statement): If the return type is zero bytes, don't
actually return any values.

From-SVN: r239252

8 years agore PR c++/58706 (ICE with lambda in OpenMP for-loop)
Jakub Jelinek [Mon, 8 Aug 2016 19:50:29 +0000 (21:50 +0200)]
re PR c++/58706 (ICE with lambda in OpenMP for-loop)

PR c++/58706
* parser.c: Include tree-iterator.h.
(cp_parser_omp_for_loop_init): Move lambda DECL_EXPRs from init
to FOR_BLOCK.
(cp_parser_omp_for_loop): Handle non-STATEMENT_LIST FOR_BLOCK
entries.

* testsuite/libgomp.c++/pr58706.C: New test.

From-SVN: r239251

8 years agore PR fortran/72716 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5156)
Jakub Jelinek [Mon, 8 Aug 2016 19:48:48 +0000 (21:48 +0200)]
re PR fortran/72716 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5156)

PR fortran/72716
* openmp.c (gfc_match_omp_declare_simd): Don't stick anything into
BLOCK DATA ns, it will be rejected later.

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

From-SVN: r239250

8 years agore PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)
Jakub Jelinek [Mon, 8 Aug 2016 19:46:36 +0000 (21:46 +0200)]
re PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)

PR middle-end/72781
* omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
private vars for lastprivate and for linear iterator.

* gcc.dg/gomp/pr72781.c: New test.

From-SVN: r239249

8 years agore PR middle-end/68762 (link error for inline function decorated with OpenMP declare...
Jakub Jelinek [Mon, 8 Aug 2016 19:45:53 +0000 (21:45 +0200)]
re PR middle-end/68762 (link error for inline function decorated with OpenMP declare simd)

PR middle-end/68762
* omp-simd-clone.c: Include varasm.h.
(simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
DECL_ONE_ONLY call make_decl_one_only.  Fix up spelling in comment and
update function name.

* g++.dg/vect/pr68762-1.cc: New test.
* g++.dg/vect/pr68762-2.cc: New test.
* g++.dg/vect/pr68762.h: New file.

From-SVN: r239248

8 years agoc-format.c: cleanup of check_format_info_main
David Malcolm [Mon, 8 Aug 2016 18:10:54 +0000 (18:10 +0000)]
c-format.c: cleanup of check_format_info_main

gcc/c-family/ChangeLog:
* c-format.c (class flag_chars_t): New class.
(struct length_modifier): New struct.
(class argument_parser): New class.
(flag_chars_t::flag_chars_t): New ctor.
(flag_chars_t::has_char_p): New method.
(flag_chars_t::add_char): New method.
(flag_chars_t::validate): New method.
(flag_chars_t::get_alloc_flag): New method.
(flag_chars_t::assignment_suppression_p): New method.
(argument_parser::argument_parser): New ctor.
(argument_parser::read_any_dollar): New method.
(argument_parser::read_format_flags): New method.
(argument_parser::read_any_format_width): New method.
(argument_parser::read_any_format_left_precision): New method.
(argument_parser::read_any_format_precision): New method.
(argument_parser::handle_alloc_chars): New method.
(argument_parser::read_any_length_modifier): New method.
(argument_parser::read_any_other_modifier): New method.
(argument_parser::find_format_char_info): New method.
(argument_parser::validate_flag_pairs): New method.
(argument_parser::give_y2k_warnings): New method.
(argument_parser::parse_any_scan_set): New method.
(argument_parser::handle_conversions): New method.
(argument_parser::check_argument_type): New method.
(check_format_info_main): Introduce classes argument_parser
and flag_chars_t, moving the code within the loop into methods
of these classes.  Make various locals "const".

From-SVN: r239247

8 years agodriver-avr.c (specfiles_doc_url): Remove.
Pitchumani Sivanupandi [Mon, 8 Aug 2016 17:37:57 +0000 (17:37 +0000)]
driver-avr.c (specfiles_doc_url): Remove.

* config/avr/driver-avr.c (specfiles_doc_url): Remove.
(avr_diagnose_devicespecs_error): Remove.
(avr_devicespecs_file): Remove composing absolute path for specfile
and its verbose info. Remove conditions to check specs-file,

From-SVN: r239246

8 years agoPR testsuite/72838 - FAIL: g++.dg/cpp0x/constexpr-cast.C
Martin Sebor [Mon, 8 Aug 2016 15:32:16 +0000 (15:32 +0000)]
PR testsuite/72838 - FAIL: g++.dg/cpp0x/constexpr-cast.C

gcc/testsuite/ChangeLog:
* gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C: Correct target selector.
* gcc/testsuite/g++.dg/warn/overflow-warn-3.C: Same.
* gcc/testsuite/g++.dg/warn/overflow-warn-4.C: Same.

From-SVN: r239242

8 years agore PR rtl-optimization/72821 (RTL check: expected elt 2 type 'B', have '0' (rtx barri...
Jakub Jelinek [Mon, 8 Aug 2016 13:58:46 +0000 (15:58 +0200)]
re PR rtl-optimization/72821 (RTL check: expected elt 2 type 'B', have '0' (rtx barrier) in BLOCK_FOR_INSN, at rtl.h:1424)

PR rtl-optimization/72821
* lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
just return false for them.

From-SVN: r239241

8 years ago[RS6000] TOC refs generated during reload
Alan Modra [Mon, 8 Aug 2016 12:05:11 +0000 (21:35 +0930)]
[RS6000] TOC refs generated during reload

The generic reload fix for pr72771 exposed a problem with recognizing
-mcmodel=medium/large TOC references generated during reload.

PR target/72771
* config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
toc refs created during reload.  Update function comment.

From-SVN: r239240

8 years agore PR fortran/71936 (ICE in wide_int_to_tree, at tree.c:1487)
Andre Vehreschild [Mon, 8 Aug 2016 09:58:21 +0000 (11:58 +0200)]
re PR fortran/71936 (ICE in wide_int_to_tree, at tree.c:1487)

gcc/fortran/ChangeLog:

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

PR fortran/71936
* trans-array.c (gfc_array_allocate): When SOURCE= is a function
stick with the ref of the object to allocate.

gcc/testsuite/ChangeLog:

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

PR fortran/71936
* gfortran.dg/allocate_with_source_21.f03: New test.

From-SVN: r239237

8 years agore PR fortran/72698 (ICE in lhd_incomplete_type_error, at langhooks.c:205)
Andre Vehreschild [Mon, 8 Aug 2016 09:49:37 +0000 (11:49 +0200)]
re PR fortran/72698 (ICE in lhd_incomplete_type_error, at langhooks.c:205)

gcc/testsuite/ChangeLog:

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

PR fortran/72698
* gfortran.dg/allocate_with_source_20.f03: New test.

gcc/fortran/ChangeLog:

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

PR fortran/72698
* trans-stmt.c (gfc_trans_allocate): Prevent generating code for
copy of zero sized string and with it an ICE.

From-SVN: r239236

8 years ago[RS6000] PR72802 part 2, reload ICE
Alan Modra [Mon, 8 Aug 2016 09:06:49 +0000 (18:36 +0930)]
[RS6000] PR72802 part 2, reload ICE

After fixing the constraint problem, we hit an "insn does not satisfy
its constraints" with -mno-lra on the following insn, a vector load
from mem which has an invalid offset:
(insn 631 630 1122 12 (set (reg:SF 108 31 [orig:260 pretmp_44 ] [260])
        (mem:SF (plus:DI (reg:DI 30 30 [orig:338 ivtmp.141 ] [338])
                (const_int 2 [0x2])) [5 MEM[base: _1, offset: 2B]+0 S4 A32])) 470 {movsf_hardfloat}
     (nil))

Here are the reload costs for the various alternatives of
movsf_hardfloat:
"=!r, !r,  m,  f, ww, ww, !r,  f, wb,  m, wY, wu,  Z,?wn, ?r,*c*l, !r, *h"
  "r,  m,  r,  f, ww,  j,  j,  m, wY,  f, wb,  Z, wu,  r, wn,   r, *h,  0"
 617 609  17  17   8   8 617   9   8  17  17   8  17  23  23   17 617  17

Notice that the cost for a vector<-vector move (ww,ww) is the same as
the cost for a vector<-mem move (wb,wY or wu,Z).  Since the
vector<-vector move comes first, it is chosen and the mem part of the
insn reloaded.  That just gives another copy of insn 631.

PR target/72802
* config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
alternatives.  Put loads first, then stores, and reg/reg moves
within same class later.  Delete attr length.
testsuite/
* gcc.c-torture/compile/pr72802.c: New.

From-SVN: r239234

8 years ago[RS6000] PR72802 part 1, fix constraints for lxssp/stxssp
Alan Modra [Mon, 8 Aug 2016 09:05:16 +0000 (18:35 +0930)]
[RS6000] PR72802 part 1, fix constraints for lxssp/stxssp

We can't use "o" constraint for lsxxp/stxssp since those insns have a
DS-form offset field, ie. the bottom two bits of the offset must be 0.
So use "wY" instead, but that leads to finding another problem.

mem_operand_gpr is only suitable for gpr loads/stores since it does
not enforce multiple-of-4 offsets when -m32.  So "wY" can't use
mem_operand_gpr, and the vsx tests in mem_operand_gpr are bogus.

I've deleted offsettable_mem_14bit_operand because it wasn't used
anywhere but in the wY constraint.  Note also that the new wY
constraint doesn't use memory_operand because that is redundant in a
constraint, having already been tested in the predicate.

PR target/72802
* config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
(mem_operand_ds_form): New predicate.
* config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
* config/rs6000/constraints.md (wY): Use mem_operand_df_form.
* config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
* config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
(extendsfdf2_fpr): Replace o constraint with wY.

From-SVN: r239233

8 years agore PR fortran/70524 (ICE when using -frepack-arrays -Warray-temporaries)
Andre Vehreschild [Mon, 8 Aug 2016 08:11:29 +0000 (10:11 +0200)]
re PR fortran/70524 (ICE when using  -frepack-arrays -Warray-temporaries)

gcc/testsuite/ChangeLog:

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

PR fortran/70524
* gfortran.dg/dependency_48.f90: New test.

gcc/fortran/ChangeLog:

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

PR fortran/70524
* trans-array.c (gfc_trans_dummy_array_bias): Ensure that the
location information is correctly set.
* trans-decl.c (gfc_trans_deferred_vars): Set the locus of the
current construct early.

From-SVN: r239230

8 years agoDaily bump.
GCC Administrator [Mon, 8 Aug 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239228

8 years agointernal/syscall/unix: fix syscalls for alpha, ia64, s390
Ian Lance Taylor [Sun, 7 Aug 2016 22:32:46 +0000 (22:32 +0000)]
internal/syscall/unix: fix syscalls for alpha, ia64, s390

    Also change the configure script to set GOARCH correctly for ia64, and
    add ia64 as a processor to match.sh and gotest.

    Reviewed-on: https://go-review.googlesource.com/25549

From-SVN: r239225

8 years agore PR fortran/70040 (ICE in gimplify.c with deferred-length strings)
Thomas Koenig [Sun, 7 Aug 2016 15:40:34 +0000 (15:40 +0000)]
re PR fortran/70040 (ICE in gimplify.c with deferred-length strings)

2016-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/70040
Corrected last ChangeLog entry.

From-SVN: r239222

8 years agore PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)
Thomas Koenig [Sun, 7 Aug 2016 15:25:56 +0000 (15:25 +0000)]
re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)

2016-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71961
* gfortran.dg/pr70040.f90:  New testcase.

From-SVN: r239221

8 years agore PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)
Thomas Koenig [Sun, 7 Aug 2016 13:24:32 +0000 (13:24 +0000)]
re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)

2016-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71961
* gfortran.dg/matmul_10.f90:  New testcase.

From-SVN: r239220

8 years agotree-ssa-threadbackward.c: Include tree-inline.h
Jan Hubicka [Sun, 7 Aug 2016 10:50:16 +0000 (12:50 +0200)]
tree-ssa-threadbackward.c: Include tree-inline.h

* tree-ssa-threadbackward.c: Include tree-inline.h
(profitable_jump_thread_path): Use estimate_num_insns to estimate
size of copied block; for cold paths reduce duplication.
(find_jump_threads_backwards): Remove redundant tests.
(pass_thread_jumps::gate): Enable for -Os.
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Update testcase.

From-SVN: r239219

8 years agore PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that contains ...
Jakub Jelinek [Sun, 7 Aug 2016 09:49:14 +0000 (11:49 +0200)]
re PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1282))

PR c/72816
* stor-layout.c (layout_decl): Fix up formatting.
(relayout_decl): Allow DECL to be FIELD_DECL.

* gcc.dg/pr72816.c: New test.

From-SVN: r239218

8 years ago[RS6000] Fix wrong mode reg
Alan Modra [Sun, 7 Aug 2016 03:22:12 +0000 (12:52 +0930)]
[RS6000] Fix wrong mode reg

Fix thinko in rev 239011 (git d1d05ab7).

* config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.

From-SVN: r239217

8 years agoDaily bump.
GCC Administrator [Sun, 7 Aug 2016 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239216

8 years agodata-streamer-in.c (streamer_read_wide_int): New.
Kugan Vivekanandarajah [Sat, 6 Aug 2016 21:11:26 +0000 (21:11 +0000)]
data-streamer-in.c (streamer_read_wide_int): New.

gcc/ChangeLog:

2016-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

* data-streamer-in.c (streamer_read_wide_int): New.
(streamer_read_widest_int): Renamed function.
* data-streamer-out.c (streamer_write_wide_int): New
(streamer_write_widest_int): Renamed function.
* lto-streamer-in.c (streamer_read_wi): Renamed and moved to
data-stream-in.c.
(input_cfg): Call renamed function.
* lto-streamer-out.c (streamer_write_wi): Renamed and moved to
data-stream-out.c.
(output_cfg): Call renamed function.
* data-streamer.h: Add declarations.

From-SVN: r239213

8 years agotree-ssa-ccp.c (extend_mask): New param sgn.
Prathamesh Kulkarni [Sat, 6 Aug 2016 18:11:24 +0000 (18:11 +0000)]
tree-ssa-ccp.c (extend_mask): New param sgn.

2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* tree-ssa-ccp.c (extend_mask): New param sgn.
Remove ORing with wi::mask.
(get_default_value): Adjust call to extend_mask to pass sign.
(evaluate_stmt): Likewise.

From-SVN: r239212

8 years agoFix crash in selftest::test_lexer_string_locations_ucn4 (PR bootstrap/72823)
David Malcolm [Sat, 6 Aug 2016 18:06:30 +0000 (18:06 +0000)]
Fix crash in selftest::test_lexer_string_locations_ucn4 (PR bootstrap/72823)

libcpp/ChangeLog:
PR bootstrap/72823
* charset.c (_cpp_valid_ucn): Replace overzealous assert with one
that allows for char_range to be non-NULL when loc_reader is NULL.

From-SVN: r239211

8 years agolibgo: fix getrandom build for 32-bit ppc
Ian Lance Taylor [Sat, 6 Aug 2016 15:58:22 +0000 (15:58 +0000)]
libgo: fix getrandom build for 32-bit ppc

    Add a ppc build constraint for internal/syscall/unix.

    Reviewed-on: https://go-review.googlesource.com/25547

From-SVN: r239210

8 years agoUpdate C++17 library status table
Jonathan Wakely [Sat, 6 Aug 2016 12:45:58 +0000 (13:45 +0100)]
Update C++17 library status table

* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.

From-SVN: r239209

8 years ago* testsuite/lib/libstdc++.exp: Fix typo in comment.
Jonathan Wakely [Sat, 6 Aug 2016 10:44:17 +0000 (11:44 +0100)]
* testsuite/lib/libstdc++.exp: Fix typo in comment.

From-SVN: r239193

8 years agogcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.
Jakub Jelinek [Sat, 6 Aug 2016 10:30:49 +0000 (12:30 +0200)]
gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.

* gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
INT64_MAX.

From-SVN: r239192

8 years agoUse ::new to avoid finding overloaded operator new
Jonathan Wakely [Sat, 6 Aug 2016 10:21:07 +0000 (11:21 +0100)]
Use ::new to avoid finding overloaded operator new

PR libstdc++/72820
* include/std/functional (_Function_base::_Base_manager::_M_clone):
Qualify new operator.
* testsuite/20_util/function/cons/72820.cc: New test.

From-SVN: r239191

8 years agomatch.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable transform if...
Prathamesh Kulkarni [Sat, 6 Aug 2016 05:04:07 +0000 (05:04 +0000)]
match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable transform if operand's type is pointer to function or method.

2016-08-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
transform if operand's type is pointer to function or method.

From-SVN: r239190

8 years agolibgo: change build procedure to use build tags
Ian Lance Taylor [Sat, 6 Aug 2016 00:36:33 +0000 (00:36 +0000)]
libgo: change build procedure to use build tags

    Previously the libgo Makefile explicitly listed the set of files to
    compile for each package.  For packages that use build tags, this
    required a lot of awkward automake conditionals in the Makefile.

    This CL changes the build to look at the build tags in the files.
    The new shell script libgo/match.sh does the matching.  This required
    adjusting a lot of build tags, and removing some files that are never
    used.  I verified that the exact same sets of files are compiled on
    amd64 GNU/Linux.  I also tested the build on i386 Solaris.

    Writing match.sh revealed some bugs in the build tag handling that
    already exists, in a slightly different form, in the gotest shell
    script.  This CL fixes those problems as well.

    The old code used automake conditionals to handle systems that were
    missing strerror_r and wait4.  Rather than deal with those in Go, those
    functions are now implemented in runtime/go-nosys.c when necessary, so
    the Go code can simply assume that they exist.

    The os testsuite looked for dir_unix.go, which was never built for gccgo
    and has now been removed.  I changed the testsuite to look for dir.go
    instead.

    Reviewed-on: https://go-review.googlesource.com/25546

From-SVN: r239189

8 years agoDaily bump.
GCC Administrator [Sat, 6 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239188