aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-10-04re PR c++/71946 (asm in toplevel lambda function rejected)Paolo Carlini5-0/+25
/cp 2017-10-04 Paolo Carlini <paolo.carlini@oracle.com> Andrew Pinski <apinski@cavium.com> PR c++/71946 * parser.c (cp_parser_lambda_body): Set parser->in_function_body. /testsuite 2017-10-04 Paolo Carlini <paolo.carlini@oracle.com> Andrew Pinski <apinski@cavium.com> PR c++/71946 * g++.dg/cpp0x/lambda/lambda-asm1.C: New. * g++.dg/cpp0x/lambda/lambda-stmtexpr1.C: Likewise. Co-Authored-By: Andrew Pinski <apinski@cavium.com> From-SVN: r253423
2017-10-04[PATCH][AArch64] Add BIC-imm and ORR-imm SIMD patternSudakshina Das7-58/+177
This patch adds the support for BIC (vector, immediate) and ORR (vector, immediate) SIMD patterns to the AArch64 backend. Committed on behalf of Sudi Das. Reviewed-by: Richard Earnshaw <Richard.Earnshaw@arm.com> Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com> gcc/ * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New check type for aarch64_simd_valid_immediate. (aarch64_output_simd_mov_immediate): Update prototype. (aarch64_simd_valid_immediate): Update prototype. * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add support for ORR-immediate. (and<mode>3): modified pattern to add support for BIC-immediate. * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function now checks for valid immediate for BIC and ORR based on new enum argument. (aarch64_output_simd_mov_immediate): Function now used to output BIC/ORR imm as well based on new enum argument. * config/aarch64/constraints.md (Do): New vector immediate constraint. (Db) : Likewise. * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate. (aarch64_reg_or_bic_imm): Likewise. gcc/testsuite/ * gcc.target/aarch64/bic_imm_1.c: New test. * gcc.target/aarch64/orr_imm_1.c: Likewise. From-SVN: r253422
2017-10-04[C++ PATCH] Move mangling alias out of ::Nathan Sidwell9-75/+93
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00199.html gcc/cp/ Move mangling aliases out of global namespace. * cp-tree.h (record_mangling): New. (maybe_remove_implicit_alias): Delete. * decl2.c (mangled_decls): New hash map. (generate_mangling_alias): Reimplement using mangled_decls. (record_mangling): New. * mangle.c (decl_implicit_alias_p, maybe_remove_implicit_alias): Delete. (mangle_decl): Use record_mangling. * name-lookup.c (supplement_binding_1): Remove maybe_remove_implicit_alias check. * call.c (convert_arg_to_ellipsis): Correct comment about passing by reference. gcc/testsuite/ * g++.dg/abi/mangle41.C: Adjust diagnostics. libcc1/ * libcp1plugin.cc (supplement_binding): Don't use maybe_remove_implicit_alias. From-SVN: r253421
2017-10-04S/390: Fix mode in vector merge pattern.Andreas Krebbel2-6/+11
vec_unpacks_hi_v4sf/vec_unpacks_lo_v4sf expand vec_mergeh and vec_mergel patterns also for z13 with V4SF modes so the patterns should better accept this. Fixed by changing the mode iterator to V_128_NOSINGLE which accepts V4SF unconditionally. gcc/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/vx-builtins.md ("vec_mergeh<mode>") ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE. From-SVN: r253420
2017-10-04Revert r253399:Wilco Dijkstra3-15/+108
PR rtl-optimization/82396 * haifa-sched.c (autopref_multipass_init): Simplify initialization. (autopref_rank_data): Simplify sort order. * sched-int.h (autopref_multipass_data_): Remove multi_mem_insn_p, min_offset and max_offset. From-SVN: r253419
2017-10-04re PR c++/82373 (syntax error in error message)Jakub Jelinek4-2/+34
PR c++/82373 * error.c (dump_function_decl): If show_return, call dump_type_suffix on the same return type dump_type_prefix has been called on. * g++.dg/cpp1y/pr82373.C: New test. From-SVN: r253418
2017-10-042017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>Petr Ovtchenkov3-37/+48
François Dumont <fdumont@gcc.gnu.org> * include/bits/streambuf_iterator.h (istreambuf_iterator<>::operator*()): Do not capture iterator state in Debug assertion. (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check. (istreambuf_iterator<>::operator++(int)): Likewise. (istreambuf_iterator<>::_M_get()): Remove _M_c assignment. (istreambuf_iterator<>::_S_is_eof()): New. (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter. (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)): Return an iterator with _M_c set to eof to capture streambuf state on evaluation. (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks. Co-Authored-By: François Dumont <fdumont@gcc.gnu.org> From-SVN: r253417
2017-10-04PR c++/81525 - broken handling of auto in generic lambda.Jason Merrill5-11/+60
* pt.c (tsubst_decl) [VAR_DECL]: Use strip_innermost_template_args. From-SVN: r253414
2017-10-04C: underline parameters in mismatching function callsDavid Malcolm9-42/+206
In r253096 ("C++: underline parameters in mismatching function calls" aka 5d78d423a5f7a1d135c7bb678e82007678d1313c https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01546.html ) I updated the C++ FE's handling of mismatched types in function calls so that it underlines the pertinent param of the callee, rather than just the function name. The following patch does the same for the C frontend. Given e.g. this type mismatch: extern int callee (int one, const char *two, float three); int caller (int first, int second, float third) { return callee (first, second, third); } the C FE currently emits (trunk): test.c: In function 'caller': test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from integer without a cast [-Wint-conversion] return callee (first, second, third); ^~~~~~ test.c:1:12: note: expected 'const char *' but argument is of type 'int' extern int callee (int one, const char *two, float three); ^~~~~~ whereas with this patch the note underlines the pertinent param of the callee: test.c: In function 'caller': test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from integer without a cast [-Wint-conversion] return callee (first, second, third); ^~~~~~ test.c:1:41: note: expected 'const char *' but argument is of type 'int' extern int callee (int one, const char *two, float three); ~~~~~~~~~~~~^~~ making the problem more obvious to the user. As with the C++ patch, the patch: (a) updates the locations of the params to cover the range of all of their tokens, putting the caret on the first character of the param name (if present), otherwise at the start of the first token (doing so requires adding a last_token_location to the c_parser, so we can determine the location of the last consumed token). (b) updates the "note" to use the param location, rather than the fndecl location gcc/c/ChangeLog: * c-decl.c (push_parm_decl): Store c_parm's location into the PARAM_DECL. (build_c_parm): Add "loc" param and store it within the c_parm. * c-parser.c (struct c_parser): Add "last_token_location" field. (c_parser_consume_token): Store location of the token into the new field. (c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS when handling a FUNCTION_DECL, if it doesn't already have them. (c_parser_parameter_declaration): Generate a location for the parameter, and pass it to the call to build_c_parm. * c-tree.h (struct c_parm): Add field "loc". (build_c_parm): Add location_t param. * c-typeck.c (get_fndecl_argument_location): New function. (inform_for_arg): New function. (convert_for_assignment): Use inform_for_arg when dealing with ic_argpass. gcc/testsuite/ChangeLog: * gcc.dg/diagnostic-range-bad-called-object.c: Update expected underlining for param. * gcc.dg/param-type-mismatch.c: Update expected results to reflect highlighting of parameters; add test coverage for trivial parameter decls, and for callback parameters. * gcc.dg/pr68533.c: Update location of two errors to reflect location of params. From-SVN: r253411
2017-10-04call.c (convert_arg_to_ellipsis): Correct comment about passing by reference.Nathan Sidwell2-2/+8
* call.c (convert_arg_to_ellipsis): Correct comment about passing by reference. From-SVN: r253410
2017-10-04jit: implement gcc_jit_context_new_rvalue_from_vectorDavid Malcolm18-521/+1231
This patch implements a new API entrypoint: /* Build a vector rvalue from an array of elements. "vec_type" should be a vector type, created using gcc_jit_type_get_vector. This API entrypoint was added in LIBGCCJIT_ABI_10; you can test for its presence using #ifdef LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector */ extern gcc_jit_rvalue * gcc_jit_context_new_rvalue_from_vector (gcc_jit_context *ctxt, gcc_jit_location *loc, gcc_jit_type *vec_type, size_t num_elements, gcc_jit_rvalue **elements); gcc/jit/ChangeLog: * docs/cp/topics/expressions.rst (Vector expressions): New section. * docs/topics/compatibility.rst (LIBGCCJIT_ABI_10): New ABI tag. * docs/topics/expressions.rst (Vector expressions): New section. * docs/topics/types.rst (gcc_jit_type_get_vector): Add link to gcc_jit_context_new_rvalue_from_vector. * jit-common.h (gcc::jit:recording::vector_type): New forward decl. * jit-playback.c (gcc::jit::playback::context::new_rvalue_from_vector): New method. * jit-playback.h (gcc::jit::playback::context::new_rvalue_from_vector): New method. * jit-recording.c: In namespace gcc::jit:: (class comma_separated_string): New class. (comma_separated_string::comma_separated_string): New ctor, adapted from recording::call::make_debug_string. (comma_separated_string::~comma_separated_string): New dtor. In namespace gcc::jit::recording:: (context::new_rvalue_from_vector): New method. (type::get_vector): Update for renaming of memento_of_get_vector. (class memento_of_get_vector): Rename to... (class vector_type): ..this. (memento_of_new_rvalue_from_vector::memento_of_new_rvalue_from_vector): New ctor. (memento_of_new_rvalue_from_vector::replay_into): New method. (memento_of_new_rvalue_from_vector::visit_children): New method. (memento_of_new_rvalue_from_vector::make_debug_string): New method. (memento_of_new_rvalue_from_vector::write_reproducer): New method. (call::make_debug_string): Split out arg-printing code into ctor for comma_separated_string. * jit-recording.h: In namespace gcc::jit::recording:: (context::new_rvalue_from_vector): New method. (type::dyn_cast_vector_type): New virtual function. (class memento_of_get_vector): Rename to... (class vector_type): ...this. (vector_type::unqualified): Remove this vfunc override in favor of... (vector_type::get_element_type): ...this new method. (vector_type::get_num_units): New method. (vector_type::dyn_cast_vector_type): New vfunc override. (class memento_of_new_rvalue_from_vector): New class. * libgccjit++.h (gccjit::context::new_rvalue): Add overload for vector of rvalue. * libgccjit.c (gcc_jit_context_new_binary_op): Strip off type qualifications when checking that both operands have same type. (gcc_jit_context_new_rvalue_from_vector): New API entrypoint. * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector): New macro. (gcc_jit_context_new_rvalue_from_vector): New API entrypoint. * libgccjit.map (LIBGCCJIT_ABI_10): New ABI tag. gcc/testsuite/ChangeLog: * jit.dg/test-expressions.c (make_test_of_vectors): New function. (create_code): Call it. * jit.dg/test-vector-rvalues.cc: New test case. From-SVN: r253409
2017-10-04New target check: vect_peeling_profitableAndreas Krebbel5-1/+39
gcc/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * doc/sourcebuild.texi: Document vect_peeling_profitable. gcc/testsuite/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * g++.dg/vect/slp-pr56812.cc: xfail for targets which don't want vector loop peeling. * lib/target-supports.exp (check_effective_target_vect_peeling_profitable): New proc. From-SVN: r253407
2017-10-04New target check for double<->int conversionsAndreas Krebbel9-5/+95
gcc/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * doc/sourcebuild.texi: Document vect_intdouble_cvt and vect_doubleint_cvt. gcc/testsuite/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.dg/vect/pr66251.c: Replace vect_floatint_cvt with vect_doubleint_cvt and vect_intfloat_cvt with vect_intdouble_cvt. * gcc.dg/vect/vect-floatint-conversion-2.c: Replace vect_floatint_cvt with vect_doubleint_cvt. * gcc.dg/vect/vect-intfloat-conversion-3.c: Replace vect_intfloat_cvt with vect_intdouble_cvt. * gfortran.dg/vect/pr60510.f: Require vect_intdouble_cvt. * gfortran.dg/vect/vect-8.f90: Make number of vectorized loops depend on vect_intdouble_cvt. * lib/target-supports.exp (check_effective_target_vect_doubleint_cvt) (check_effective_target_vect_intdouble_cvt): New procs. From-SVN: r253406
2017-10-04New target check: vect_long_multAndreas Krebbel5-1/+39
We don't have a 64 bit vector integer multiply on z. Add a specific check for that. gcc/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * doc/sourcebuild.texi: Document vect_long_mult. gcc/testsuite/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.dg/vect/pr60656.c: Check vect_long_mult. * lib/target-supports.exp (check_effective_target_vect_long_mult): New proc. From-SVN: r253405
2017-10-04Testcases using dg-options require at least -mzarch.Andreas Krebbel3-0/+7
Testcases which override the vect default options using dg-options need at least -mzarch on S/390 32 bit. gcc/testsuite/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gfortran.dg/vect/fast-math-mgrid-resid.f: Use -mzarch on S/390. * gfortran.dg/vect/pr77848.f: Likewise. From-SVN: r253404
2017-10-04Enable vect_float with S/390 VXE and adjust testcasesAndreas Krebbel18-3/+42
The target supports routines provide vect_double and vect_float but these do not appear to be used consequently in the vect testcases. With z13 we only have support for vector double but with z14 also for vector float. This patch adds vect_float to the testcases using the float data type and make the vect_float target check to return 1 only on z14. gcc/testsuite/ChangeLog: 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * lib/target-supports.exp (check_effective_target_vect_float): Return 1 being on a S/390 with VXE. * gcc.dg/vect/pr31699.c: Require vec_float. * gcc.dg/vect/pr61194.c: Likewise. * gcc.dg/vect/pr65947-10.c: Likewise. * gcc.dg/vect/pr66142.c: Likewise. * gcc.dg/vect/slp-10.c: Likewise. * gcc.dg/vect/slp-11c.c: Likewise. * gcc.dg/vect/slp-12b.c: Likewise. * gcc.dg/vect/slp-18.c: Likewise. * gcc.dg/vect/slp-33.c: Likewise. * gcc.dg/vect/slp-cond-2-big-array.c: Likewise. * gcc.dg/vect/slp-cond-2.c: Likewise. * gcc.dg/vect/vect-cond-10.c: Likewise. * gcc.dg/vect/vect-cond-8.c: Likewise. * gcc.dg/vect/vect-cond-9.c: Likewise. * gcc.dg/vect/vect-float-extend-1.c: Likewise. * gcc.dg/vect/vect-float-truncate-1.c: Likewise. From-SVN: r253403
2017-10-04Adjust test cases for attributes propagation changes for OMP outlined regionsThomas Schwinge4-3/+11
PR tree-optimization/82374 * c-c++-common/goacc/kernels-double-reduction-n.c: Adjust for attributes propagation changes for OMP outlined regions. * c-c++-common/goacc/kernels-double-reduction.c: Likewise. * c-c++-common/goacc/kernels-reduction.c: Likewise. From-SVN: r253402
2017-10-04PR82413: Mismatched precisions in build_range_checkRichard Sandiford4-1/+15
build_range_check explicitly allows LOW and HIGH to be a different type from EXP, so we need to use w::to_widest when comparing a value based on HIGH with a value based on EXP's type. 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/82413 * fold-const.c (build_range_check): Use widest_int when comparing the maximum ETYPE value with HIGH. gcc/testsuite/ PR tree-optimization/82413 * g++.dg/pr82413.C: New test. From-SVN: r253401
2017-10-04re PR fortran/60458 (Error message on associate: deferred type parameter and ↵Paul Thomas7-4/+171
requires either the pointer or allocatable attribute) 2017-10-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/60458 PR fortran/77296 * resolve.c (resolve_assoc_var): Deferred character type associate names must not receive an integer conatant length. * symbol.c (gfc_is_associate_pointer): Deferred character length functions also require an associate pointer. * trans-decl.c (gfc_get_symbol_decl): Deferred character length functions or derived type components require the assoc name to have variable string length. * trans-stmt.c (trans_associate_var): Set the string length of deferred string length associate names. The address expression is not needed for allocatable, pointer or dummy targets. Change the comment about defered string length targets. 2017-10-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/77296 * gfortran.dg/associate_32.f03 : New test. From-SVN: r253400
2017-10-04Fix PR82396: qsort comparator non-negative on sorted outputWilco Dijkstra3-97/+24
r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling behaviour on AArch64 as autopref scheduling no longer checks the base. This patch fixes the bootstrap failure and cleans up autopref scheduling. The code is greatly simplified. Sort accesses on the offset first, and only if the offsets are the same fall back to other comparisons in rank_for_schedule. This doesn't at all restore the original behaviour since we no longer compare the base address, but it now defines a total sorting order. More work will be required to improve the sorting so that only loads/stores with the same base are affected. gcc/ PR rtl-optimization/82396 * haifa-sched.c (autopref_multipass_init): Simplify initialization. (autopref_rank_data): Simplify sort order. * sched-int.h (autopref_multipass_data_): Remove multi_mem_insn_p, min_offset and max_offset. From-SVN: r253399
2017-10-04Fix openacc float reduction testcasesTom de Vries4-3/+20
2017-10-04 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c (main): Reduce sum of arr elements. Assert that hres is exactly representable in 32-bit floating point. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c (main): Reduce sum of arr elements. Assert that hres and hmres are exactly representable in 32-bit floating point. * testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same. From-SVN: r253398
2017-10-04re PR c++/78816 ([c++14] Static auto variable usage in generic/variadic ↵Paolo Carlini2-0/+24
lambda fails to compile) 2017-10-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78816 * g++.dg/cpp1y/lambda-generic-variadic6.C: New. From-SVN: r253397
2017-10-04re PR tree-optimization/82381 (internal compiler error: qsort checking failed)Jakub Jelinek2-39/+46
PR tree-optimization/82381 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other is not. From-SVN: r253396
2017-10-04re PR tree-optimization/82374 (#pragma GCC optimize is not applied to ↵Jakub Jelinek4-0/+52
openmp-generated functions) PR tree-optimization/82374 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES, DECL_FUNCTION_SPECIFIC_OPTIMIZATION, DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from current_function_decl to the new decl. * gcc.dg/gomp/pr82374.c: New test. From-SVN: r253395
2017-10-04id-17.f: For ilp32 allow graphite codegen errors and scan for one.Richard Biener10-3/+31
2017-10-04 Richard Biener <rguenther@suse.de> * gfortran.dg/graphite/id-17.f: For ilp32 allow graphite codegen errors and scan for one. * gfortran.dg/graphite/id-19.f: Likewise. * gfortran.dg/graphite/pr29832.f90: Likewise. * gfortran.dg/graphite/pr42326-1.f90: Likewise. * gfortran.dg/graphite/pr42326.f90: Likewise. * gfortran.dg/graphite/pr68550-2.f90: Likewise. * gfortran.dg/graphite/run-id-2.f90: Likewise. * gfortran.dg/graphite/run-id-3.f90: Likewise. * gfortran.dg/graphite/pr42393-1.f90: Dump graphite. From-SVN: r253394
2017-10-04Daily bump.GCC Administrator1-1/+1
From-SVN: r253393
2017-10-03rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE ↵Michael Meissner6-13/+296
float128 hardware built-in functions. [gcc] 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128 hardware built-in functions. (SQRTF128_ODD): Add built-in functions with the round-to-odd semantics. (TRUNCF128_ODD): Likewise. (ADDF128_ODD): Likewise. (SUBF128_ODD): Likewise. (MULF128_ODD): Likewise. (DIVF128_ODD): Likewise. (FMAF128_ODD): Likewise. * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to UNSPEC_TRUNC_ROUND_TO_ODD. (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise. (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit floating point round to odd instructions. (UNSPEC_SUB_ROUND_TO_ODD): Likewise. (UNSPEC_MUL_ROUND_TO_ODD): Likewise. (UNSPEC_DIV_ROUND_TO_ODD): Likewise. (UNSPEC_FMA_ROUND_TO_ODD): Likewise. (UNSPEC_SQRT_ROUND_TO_ODD): Likewise. (trunc<mode>sf2_hw): Change the truncate with round to odd expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. (add<mode>3_odd): Add insns for IEEE 128-bit floating point round to odd hardware instructions. (sub<mode>3_odd): Likewise. (mul<mode>3_odd): Likewise. (div<mode>3_odd): Likewise. (sqrt<mode>2_odd): Likewise. (fma<mode>4_odd): Likewise. (fms<mode>4_odd): Likewise. (nfma<mode>4_odd): Likewise. (nfms<mode>4_odd): Likewise. (trunc<mode>df2_odd): Change the truncate with round to odd expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator function. * doc/extend.texi (PowerPC built-in functions): Update documentation for existing IEEE float128-bit built-in functions. Add built-in functions that generate the IEEE 128-bit floating point round to odd instructions. [gcc/testsuite] 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/float128-odd.c: New test. From-SVN: r253389
2017-10-03re PR c++/70343 (internal compiler error: in tsubst_copy, wrong code with ↵Paolo Carlini2-0/+29
lambda in template fn) 2017-10-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70343 * g++.dg/cpp0x/lambda/lambda-70343.C: New. From-SVN: r253388
2017-10-03Import from libffi master repository.Tony Reix5-9/+595
2017-08-31 Tony Reix <tony.reix@atos.net> * src/powerpc/aix.S (ffi_call_AIX): Add debugging pseudo-op and labels for EH. (ffi_call_go_AIX): New function. (_GLOBAL__F_libffi_src_powerpc_aix): New EH frame. * src/powerpc/aix_closure.S (ffi_closure_ASM): Add debugging pseudo-op and labels for EH. (ffi_go_closure_ASM): New function. (_GLOBAL__F_libffi_src_powerpc_aix_closure): New EH frame. * src/powrpc/ffi_darwin.c (ffi_call_go): New function. (ffi_prep_go_closure): New function. (ffi_closure_helper_common): Rename from ffi_closure_helper_DARWIN. (ffi_closure_helper_DARWIN): Call ffi_closure_helper_common. (ffi_go_closure_helper_DARWIN): Call ffi_closure_helper_common. * src/powerpc/ffitarget.h (FFI_GO_CLOSURES): Define. From-SVN: r253386
2017-10-03re PR target/82358 (i386/stack-check-11.c fail)Jeff Law2-1/+6
PR target/82358 * gcc.target/i386/stack-check-11.c: Use -mtune=generic. From-SVN: r253385
2017-10-03simplify-rtx: Remove non-simplifying simplification (PR77729)Segher Boessenkool2-25/+6
If we have (X&C1)|C2 simplify_binary_operation_1 makes C1 as small as possible. This makes worse code in common cases like when the AND with C1 is from a zero-extension. This patch fixes it by removing this transformation (twice). PR rtl-optimization/77729 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2 to (X&(C1&~C2))|C2 transformations. From-SVN: r253384
2017-10-03[BRIGFE] Fix (more) crash with calls with more than 4 args.Henry Linjamäki2-1/+7
It missed a reference which is required because vector expansion can move the object to another location. From-SVN: r253382
2017-10-03io.c (match_wait_element): Correctly match END and EOR tags.Thomas Koenig3-2/+42
2017-10-03 Thomas Koenig <tkoenig@gcc.gnu.org> * io.c (match_wait_element): Correctly match END and EOR tags. * dump-parse-tree.c (show_code_node): Handle EXEC_WAIT. From-SVN: r253381
2017-10-03[PR 82363] Fix thinko in SRA subaccess propagationMartin Jambor4-1/+62
2017-10-03 Martin Jambor <mjambor@suse.cz> PR tree-optimization/82363 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable mismatch, mark lacc written regardless of racc. testsuite/ * gcc.dg/tree-ssa/pr82363.c: New test. From-SVN: r253380
2017-10-03re PR tree-optimization/82381 (internal compiler error: qsort checking failed)Jakub Jelinek4-19/+47
PR tree-optimization/82381 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check stmt_to_insert nor wheather SSA_NAMEs are default defs. Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal, fallthrough into reassoc_stmt_dominates_stmt_p. * gcc.c-torture/compile/pr82381.c: New test. From-SVN: r253379
2017-10-03re PR target/82386 (internal compiler error: Segmentation fault on 32-bit ↵Jakub Jelinek4-0/+55
powerpc BE targets) PR target/82386 * combine.c (combine_instructions): Don't combine in unreachable basic blocks. * gcc.dg/pr82386.c: New test. From-SVN: r253378
2017-10-03ztest.c: #include <errno.h>.Ian Lance Taylor6-22/+48
* ztest.c: #include <errno.h>. (TEST_TIMING): Don't define, don't test. (xclock_gettime, xclockid_t): Define if !HAVE_CLOCK_GETTIME. (clockid_t, clock_gettime, CLOCK_REALTIME): Likewise. (ZLIB_CLOCK_GETTIME_ARG): Define. * configure.ac: Change clock_gettime_link to CLOCK_GETTIME_LINK. * Makefile.am: Likewise. * configure, Makefile.in: Rebuild. From-SVN: r253377
2017-10-03Daily bump.GCC Administrator1-1/+1
From-SVN: r253376
2017-10-02Clean up more fallout from r252976.Martin Sebor4-5/+21
libatomic/ChangeLog: 2017-10-02 Martin Sebor <msebor@redhat.com> PR c/81854 * acinclude.m4 (LIBAT_CHECK_IFUNC): Have ifunc resolver return a function pointer rather than void* to avoid GCC 8 warnings. * configure: Regenerate. * libatomic_i.h: Declare ifunc resolvers to return function pointers rather than void*. From-SVN: r253372
2017-10-03charconv (__unsigned_least_t): Fix number of closing >s for ↵Jakub Jelinek2-1/+10
!_GLIBCXX_USE_INT128. * include/std/charconv (__unsigned_least_t): Fix number of closing >s for !_GLIBCXX_USE_INT128. From-SVN: r253371
2017-10-02re PR c++/70570 (Assembler error "symbol already defined" from nested ↵Paolo Carlini2-0/+21
lambdas and function-static variable) 2017-10-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70570 * g++.dg/cpp1y/lambda-generic-70570.C: New. From-SVN: r253370
2017-10-02re PR c++/79590 (ICE (internal compiler error) in nothrow_spec_p with ↵Paolo Carlini2-0/+15
generic lambda and `noexcept(noexcept(...))` expression) 2017-10-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79590 * g++.dg/cpp1y/lambda-generic-noexcept1.C: New. From-SVN: r253369
2017-10-02re PR c++/79005 (Use of a captured variable within nested generic lambdas ↵Paolo Carlini2-0/+26
provokes internal compiler error.) 2017-10-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79005 * g++.dg/cpp1y/lambda-generic-79005.C: New. From-SVN: r253368
2017-10-02re PR ada/82384 (s-taprop.adb failed to compile for x32)Eric Botcazou3-6/+15
PR ada/82384 * libgnarl/s-linux__x32.ads (suseconds_t): New subtype. (time_t): Change from derived type to subtype. (timeval): Use suseconds_t for tv_usec. * libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause. From-SVN: r253366
2017-10-02re PR fortran/82312 ([OOP] Pointer assignment to component of class variable ↵Paul Thomas5-28/+136
results wrong vptr for the variable.) 2017-10-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/82312 * resolve.c (gfc_resolve_code): Simplify condition for class pointer assignments becoming regular assignments by asserting that only class valued targets are permitted. * trans-expr.c (trans_class_pointer_fcn): New function using a block of code from gfc_trans_pointer_assignment. (gfc_trans_pointer_assignment): Call the new function. Tidy up a minor whitespace issue. 2017-10-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/82312 * gfortran.dg/typebound_proc_36.f90 : New test. From-SVN: r253362
2017-10-02re PR target/80210 (ICE in in extract_insn, at recog.c:2311 on ppc64 for ↵Peter Bergner5-88/+87
with __builtin_pow) gcc/ PR target/80210 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite function to not use the have_cpu variable. Do not set cpu_index, rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT or the default cpu. (rs6000_valid_attribute_p): Remove duplicate initializations of old_optimize and func_optimize. (rs6000_pragma_target_parse): Call rs6000_activate_target_options (). (rs6000_activate_target_options): Make global. * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add prototype. gcc/testsuite/ PR target/80210 * gcc.target/powerpc/pr80210-2.c: New test. From-SVN: r253358
2017-10-02tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + ↵Jakub Jelinek4-1/+36
*pmax_size overflows in HOST_WIDE_INT. * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size overflows in HOST_WIDE_INT. Set *poffset to 0 and *psize and *pmax_size to -1 if *poffset + *psize overflows in HOST_WIDE_INT. * gcc.dg/pr82389.c: New test. From-SVN: r253357
2017-10-02re PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu ↵Jakub Jelinek6-2/+76
in 64-bit mode) PR tree-optimization/82387 PR tree-optimization/82388 PR tree-optimization/82389 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled instead of live_bytes non-NULL. * gcc.c-torture/compile/pr82389.c: New test. * gcc.c-torture/execute/pr82387.c: New test. * gcc.c-torture/execute/pr82388.c: New test. From-SVN: r253356
2017-10-02C++17 P0067R5 std::to_chars and std::from_chars (partial)Jonathan Wakely13-0/+1883
This adds the integral overloads of std::to_chars and std::from_chars, including the changes made by P0682R0. Support for floating point types is absent. * include/Makefile.am: Add new <charconv> header. * include/Makefile.in: Regenerate. * include/precompiled/stdc++.h: Include <charconv>. * include/std/charconv: New file. (to_chars_result, to_chars, from_chars_result, from_chars): Define. * testsuite/20_util/from_chars/1.cc: New test. * testsuite/20_util/from_chars/1_neg.cc: New test. * testsuite/20_util/from_chars/2.cc: New test. * testsuite/20_util/from_chars/requirements.cc: New test. * testsuite/20_util/to_chars/1.cc: New test. * testsuite/20_util/to_chars/1_neg.cc: New test. * testsuite/20_util/to_chars/2.cc: New test. * testsuite/20_util/to_chars/requirements.cc: New test. From-SVN: r253353
2017-10-02backtrace-rename.h (backtrace_uncompress_zdebug): Define.Jakub Jelinek2-0/+6
* libbacktrace/backtrace-rename.h (backtrace_uncompress_zdebug): Define. From-SVN: r253351