1. 29 Jul, 2016 25 commits
  2. 28 Jul, 2016 15 commits
    • re PR fortran/71067 (ICE on data initialization with insufficient value) · 89f1f37e
      2016-07-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71067
      	* decl.c (match_data_constant): On error, set 'result' to NULL.
      
      2016-07-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71067
      	* gfortran.dg/pr71067_1.f90: New test.
      	* gfortran.dg/pr71067_2.f90: Ditto.
      
      From-SVN: r238842
      Steven G. Kargl committed
    • * sv.po: Update. · 204ada0c
      From-SVN: r238839
      Joseph Myers committed
    • rs6000-protos.h (rs6000_split_vec_extract_var): New declaration. · e0d32185
      [gcc]
      2016-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
      	New declaration.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Add support for vec_extract of vector double or vector long having
      	a variable element number on 64-bit ISA 2.07 systems or newer.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_extract):
      	Likewise.
      	(rs6000_split_vec_extract_var): New function to split a
      	vec_extract built-in function with variable element number.
      	(rtx_is_swappable_p): Variable vec_extracts and shifts are not
      	swappable.
      	* config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
      	(UNSPEC_VSX_EXTRACT): Likewise.
      	(vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
      	direct move instructions to be generated on 64-bit ISA 2.07
      	systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
      	instruction.
      	(vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
      	arguments for vec_extract variable element.
      	(vsx_extract_<mode>_var, VSX_D iterator): New insn to support
      	vec_extract with variable element on V2DFmode and V2DImode
      	vectors.
      	* config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
      	-mupper-regs-df requirement, since it isn't needed.
      	(TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
      	do direct moves on 64-bit systems, which allows optimization of
      	vec_extract on 64-bit ISA 2.07 systems and newer.
      
      [gcc/testsuite]
      2016-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vec-extract-1.c: New test.
      
      From-SVN: r238838
      Michael Meissner committed
    • Fix DR 438 container tests to pass in C++98 mode · 1a2196e4
      	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
      	Adjust dg-prune-output pattern for error in C++98 mode.
      	* testsuite/23_containers/deque/requirements/dr438/
      	constructor_1_neg.cc: Likewise.
      	* testsuite/23_containers/deque/requirements/dr438/
      	constructor_2_neg.cc: Likewise.
      	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/
      	constructor_1_neg.cc: Likewise.
      	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
      	Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
      	Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/
      	constructor_1_neg.cc: Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/
      	constructor_2_neg.cc: Likewise.
      	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
      	Likewise.
      
      From-SVN: r238837
      Jonathan Wakely committed
    • Fix std::vector test to pass in C++98 mode · e539b4ff
      	* testsuite/23_containers/vector/check_construct_destroy.cc: Account
      	for different construct/destroy counts in C++98 mode.
      
      From-SVN: r238836
      Jonathan Wakely committed
    • Use dg-additional-options in libstdc++ tests · c3c2f973
      	* testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
      	dg-options to dg-additional-options so that default options are used.
      	* testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
      	Likewise.
      	* testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
      	* testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
      	Likewise.
      	* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
      	Use dg-additional-options instead of repeating the common options.
      
      From-SVN: r238835
      Jonathan Wakely committed
    • Fix invalid dg-do directives in libstdc++ tests · 2de6b254
      	* testsuite/22_locale/conversions/string/1.cc: Remove unintended
      	dg-do compile directive.
      	* testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
      	dg-do directive.
      	* testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
      
      From-SVN: r238834
      Jonathan Wakely committed
    • re PR fortran/71799 (ICE in DO loop code emission (gfc_resolve_iterator)) · c851722d
      2016-07-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71799
      	* resolve.c(gfc_resolve_iterator): Failure of type conversion need
      	not ICE.
      
      2016-07-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71799
      	* gfortran.dg/pr71799.f90: New test.
      
      From-SVN: r238830
      Steven G. Kargl committed
    • re PR c++/71665 (ICE on invalid C++ code with non-integral constant enumerator… · f064da6a
      re PR c++/71665 (ICE on invalid C++ code with non-integral constant enumerator value: in cxx_eval_constant_expression, at cp/constexpr.c:3918)
      
      /cp
      2016-07-28  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71665
      	* decl.c (build_enumerator): Check the type of the enumerator before
      	calling cxx_constant_value.
      
      /testsuite
      2016-07-28  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71665
      	* g++.dg/cpp0x/pr71665-1.C: New.
      	* g++.dg/cpp0x/pr71665-2.C: Likewise.
      	* g++.dg/cpp0x/enum29.C: Adjust dg-error string.
      	* g++.dg/ext/label10.C: Likewise.
      	* g++.dg/parse/constant5.C: Likewise.
      
      From-SVN: r238828
      Paolo Carlini committed
    • re PR fortran/71859 (ICE on same variable/subroutine name (verify_gimple failed)) · 1b70aaad
      2016-07-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71859
      	* check.c(numeric_check): Prevent ICE.  Issue error for invalid
      	subroutine as an actual argument when numeric argument is expected.
      
      2016-07-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71859
      	* gfortran.dg/pr71859.f90: New test.
      	* gfortran.dg/intrinsic_numeric_arg.f: Update error message.
      	* gfortran.dg/coarray_collectives_1.f90: Ditto.
      
      From-SVN: r238825
      Steven G. Kargl committed
    • re PR c/7652 (-Wswitch-break : Warn if a switch case falls through) · 717a7673
      	PR c/7652
      	* jcf-dump.c (print_constant): Add break.
      
      From-SVN: r238824
      Marek Polacek committed
    • Implement std::string_view and P0254r2, · ca8f2cb1
      	Integrating std::string_view and std::string.
      	* include/Makefile.am: Add string_view and string_view.tcc
      	to the exported headers.
      	* include/Makefile.in: Likewise.
      	* include/bits/basic_string.h: Include <string_view> in C++17 mode.
      	(__sv_type): New.
      	(basic_string(__sv_type, const _Alloc&)): Likewise.
      	(operator=(__sv_type)): Likewise.
      	(operator __sv_type()): Likewise.
      	(operator+=(__sv_type)): Likewise.
      	(append(__sv_type __sv)): Likewise.
      	(append(__sv_type, size_type, size_type)): Likewise.
      	(assign(__sv_type)): Likewise.
      	(assign(__sv_type, size_type, size_type)): Likewise.
      	(insert(size_type, __sv_type)): Likewise.
      	(insert(size_type, __sv_type, size_type, size_type)): Likewise.
      	(replace(size_type, size_type, __sv_type)): Likewise.
      	(replace(size_type, size_type, __sv_type, size_type, size_type)):
      	Likewise.
      	(replace(const_iterator, const_iterator, __sv_type)): Likewise.
      	(find(__sv_type, size_type)): Likewise.
      	(rfind(__sv_type, size_type)): Likewise.
      	(find_first_of(__sv_type, size_type)): Likewise.
      	(find_last_of(__sv_type, size_type)): Likewise.
      	(find_first_not_of(__sv_type, size_type)): Likewise.
      	(find_last_not_of(__sv_type, size_type)): Likewise.
      	(compare(__sv_type)): Likewise.
      	(compare(size_type, size_type, __sv_type)): Likewise.
      	(compare(size_type, size_type, __sv_type, size_type, size_type)):
      	Likewise.
      	* include/bits/string_view.tcc: New.
      	* include/std/string_view: Likewise.
      	* testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
      	* testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
      	* testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/operations/find/char/5.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
      	* testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/char/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/include.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/range_access/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
      
      From-SVN: r238823
      Ville Voutilainen committed
    • [multiple changes] · a23404c9
      2016-07-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      	    Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/71883
      	* frontend-passes.c (gfc_run_passes): Bail out if there are any
      	errors.
      	* error.c (gfc_internal_error): If there are any errors in the
      	buffer, exit with EXIT_FAILURE.
      
      2016-07-28  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/71883
      	* gfortran.dg/pr71883.f90 : New test.
      
      From-SVN: r238822
      Paul Thomas committed
    • On AArch64 the UXTB and UXTH instructions are aliases of UBFM, · 63715e5e
      which does a shift as part of its operation. An AND immediate is a
      simpler operation, and might be faster on some implementations, so
      it is better to emit this this instead of UBFM.
      
      Benchmarking showed no difference on implementations where UBFM has
      the same performance as AND, and minor speedups across several
      benchmarks on an implementation where UBFM is slower than AND.
      
      Bootstrapped and tested on aarch64-none-elf.
      
          gcc/
      	* config/aarch64/aarch64.md
      	(zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
      	statement and type.
      	(<optab>qihi2_aarch64): Likewise, and split into two.
      	(extendqihi2_aarch64): New.
      	(zero_extendqihi2_aarch64): New.
      	* config/aarch64/iterators.md (ldrxt): Remove.
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
      	uxtb/uxth.
      
      From-SVN: r238821
      Wilco Dijkstra committed
    • This patchset improves zero extend costs and code generation. · dde23f43
      When zero extending a 32-bit register, we emit a "mov", but currently
      report the cost of the "mov" incorrectly.
      
      In terms of speed, we currently say the cost is that of an extend
      operation. But the cost of a "mov" is the cost of 1 instruction, so fix
      that.
      
      In terms of size, we currently say that the "mov" takes 0 instructions.
      Fix it by changing it to 1.
      
      Bootstrapped and tested on aarch64-none-elf.
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
      
      From-SVN: r238820
      Kristina Martsenko committed