gcc.git
8 years ago* mangle.c (mangle_decl): Fix mangled name change warning.
Jason Merrill [Mon, 1 Aug 2016 20:19:34 +0000 (16:19 -0400)]
* mangle.c (mangle_decl): Fix mangled name change warning.

From-SVN: r238964

8 years agoAdd non-const std::basic_string::data() for C++17
Jonathan Wakely [Mon, 1 Aug 2016 20:12:58 +0000 (21:12 +0100)]
Add non-const std::basic_string::data() for C++17

* include/bits/basic_string.h (data() const): Update comment.
(data()): Add non-const overload for C++17.
* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.

From-SVN: r238963

8 years agore PR target/71948 ([avr] Make progmem work on reduced Tiny cores by adding 0x4000...
Georg-Johann Lay [Mon, 1 Aug 2016 17:12:32 +0000 (17:12 +0000)]
re PR target/71948 ([avr] Make progmem work on reduced Tiny cores by adding 0x4000 to symbols)

PR target/71948
* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
does not overlap with other symbol flags.

From-SVN: r238961

8 years agoThis patch optimizes the prolog and epilog code to reduce the number of instructions...
Wilco Dijkstra [Mon, 1 Aug 2016 16:37:24 +0000 (16:37 +0000)]
This patch optimizes the prolog and epilog code to reduce the number of instructions and avoid multiple writes to SP.

This patch optimizes the prolog and epilog code to reduce the number of
instructions and avoid multiple writes to SP.  The key idea is that epilogs
are almost exact reverses of prologs, and thus all the decisions only need
to be taken once.  The frame layout is decided in aarch64_layout_frame()
and decisions recorded in the new aarch64_frame fields initial_adjust,
callee_adjust, callee_offset and final_adjust.

A generic frame setup consists of 5 basic steps:

1. sub sp, sp, initial_adjust
2. stp reg1, reg2, [sp, -callee_adjust]!      (push if callee_adjust != 0)
3. add fp, sp, callee_offset                  (if frame_pointer_needed)
4. stp reg3, reg4, [sp, callee_offset + N*16] (store remaining callee-saves)
5. sub sp, sp, final_adjust

The epilog reverses this, and may omit step 3 if alloca wasn't used.

    gcc/
* config/aarch64/aarch64.h (aarch64_frame):
Remove padding0 and hardfp_offset.  Add locals_offset,
initial_adjust, callee_adjust, callee_offset and final_adjust.
* config/aarch64/aarch64.c (aarch64_layout_frame):
Remove unused padding0 and hardfp_offset initializations.
Choose frame layout and set frame variables accordingly.
Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
(aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
(aarch64_pop_regs): Likewise.
(aarch64_expand_prologue): Remove all decision code, just emit
prolog according to frame variables.
(aarch64_expand_epilogue): Remove all decision code, just emit
epilog according to frame variables.
(aarch64_initial_elimination_offset): Use offset to local/arg area.

    testsuite/
* gcc.target/aarch64/test_frame_10.c: Fix test to check for a
single stack adjustment, no writeback.
* gcc.target/aarch64/test_frame_12.c: Likewise.
* gcc.target/aarch64/test_frame_13.c: Likewise.
* gcc.target/aarch64/test_frame_15.c: Likewise.
* gcc.target/aarch64/test_frame_6.c: Likewise.
* gcc.target/aarch64/test_frame_7.c: Likewise.
* gcc.target/aarch64/test_frame_8.c: Likewise.
* gcc.target/aarch64/test_frame_16.c: New test.

From-SVN: r238960

8 years agoDisable std::string and std::wstring extern templates for C++17
Jonathan Wakely [Mon, 1 Aug 2016 16:06:03 +0000 (17:06 +0100)]
Disable std::string and std::wstring extern templates for C++17

* include/bits/basic_string.tcc: Disable explicit instantiation
declarations for C++17.

From-SVN: r238959

8 years agoPR c++/72766 - ICE with VLA
Jason Merrill [Mon, 1 Aug 2016 15:01:03 +0000 (11:01 -0400)]
PR c++/72766 - ICE with VLA

* constexpr.c (cxx_eval_pointer_plus_expression): Check constancy
of nelts.
* cp-gimplify.c (cp_fully_fold): Only maybe_constant_value in
C++11 and up.

From-SVN: r238957

8 years agoConvert V1TImode register to TImode in debug insn
H.J. Lu [Mon, 1 Aug 2016 14:46:01 +0000 (14:46 +0000)]
Convert V1TImode register to TImode in debug insn

TImode register referenced in debug insn can be converted to V1TImode by
scalar to vector optimization.  When converting a TImode store to V1TImode,
we need to check all debug insns on its use chain to convert the V1TImode
register to SUBREG TImode if source register is undefined.

gcc/

PR target/72748
* config/i386/i386.c (timode_scalar_chain::convert_insn): Call
fix_debug_reg_uses after changing source register mode to
V1TImode if source register is undefined.

gcc/testsuite/

PR target/72748
* gcc.target/i386/pr72748.c: New test.

From-SVN: r238956

8 years agore PR tree-optimization/71818 (ICE in as_a, at is-a.h:192 w/ -O2 -ftree-vectorize)
Alan Hayward [Mon, 1 Aug 2016 14:33:23 +0000 (14:33 +0000)]
re PR tree-optimization/71818 (ICE in as_a, at is-a.h:192 w/ -O2 -ftree-vectorize)

2016-08-01  Alan Hayward  <alan.hayward@arm.com>

gcc/
PR tree-optimization/71818
* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
with non invariant evolutions

testsuite/
PR tree-optimization/71818
* gcc.dg/vect/pr71818.c: New

From-SVN: r238955

8 years agoRemove ignored "xfail" from dg-do compile directives
Jonathan Wakely [Mon, 1 Aug 2016 14:13:06 +0000 (15:13 +0100)]
Remove ignored "xfail" from dg-do compile directives

* testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
ignored "xfail" from { dg-do compile { xfail selector } } directive.
* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++11.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++98.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c.cc: Likewise.

From-SVN: r238954

8 years agoChange dump expectation in PR71857
Martin Liska [Mon, 1 Aug 2016 13:31:24 +0000 (15:31 +0200)]
Change dump expectation in PR71857

PR tree-optimization/71857
* gcc.dg/tree-ssa/ivopt_mult_4.c: Change expectation.

From-SVN: r238953

8 years agoFix __gnu_cxx::hash_set test to pass in C++98 mode
Jonathan Wakely [Mon, 1 Aug 2016 12:45:47 +0000 (13:45 +0100)]
Fix __gnu_cxx::hash_set test to pass in C++98 mode

* testsuite/backward/hash_set/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.

From-SVN: r238952

8 years ago* include/cpplib.h: Fix comment typo.
Andreas Schwab [Mon, 1 Aug 2016 12:45:32 +0000 (12:45 +0000)]
* include/cpplib.h: Fix comment typo.

From-SVN: r238951

8 years agore PR target/72767 ([avr] Some branches report too small insn length)
Georg-Johann Lay [Mon, 1 Aug 2016 12:36:11 +0000 (12:36 +0000)]
re PR target/72767 ([avr] Some branches report too small insn length)

PR target/72767
* config/avr/avr.md (length) [branch]: Correct insn length
attribute for forward branches.

From-SVN: r238948

8 years agoextend.texi (AVR Built-in Functions): Document __builtin_avr_nops.
Georg-Johann Lay [Mon, 1 Aug 2016 12:23:17 +0000 (12:23 +0000)]
extend.texi (AVR Built-in Functions): Document __builtin_avr_nops.

* doc/extend.texi (AVR Built-in Functions): Document
__builtin_avr_nops.
* config/avr/builtins.def (NOPS): New.
* config/avr/avr.c (avr_expand_nops): New static function.
(avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.

From-SVN: r238947

8 years agoRemove "-x c" from dg-options in libstdc++ C++ test
Jonathan Wakely [Mon, 1 Aug 2016 12:18:23 +0000 (13:18 +0100)]
Remove "-x c" from dg-options in libstdc++ C++ test

* testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.

From-SVN: r238946

8 years agoLimit std::tuple tests to run for C++11 and later
Jonathan Wakely [Mon, 1 Aug 2016 12:18:18 +0000 (13:18 +0100)]
Limit std::tuple tests to run for C++11 and later

* testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
later.
* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
Likewise.

From-SVN: r238945

8 years agoMake libstdc++ debug mode test valid for C++98
Jonathan Wakely [Mon, 1 Aug 2016 12:18:13 +0000 (13:18 +0100)]
Make libstdc++ debug mode test valid for C++98

* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
C++98-compatible initialization for array.

From-SVN: r238944

8 years agoRemove unused headers and variables from libstdc++ tests
Jonathan Wakely [Mon, 1 Aug 2016 12:18:08 +0000 (13:18 +0100)]
Remove unused headers and variables from libstdc++ tests

* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
unused header and variable from compile-only test.
* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
* testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
* testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
Likewise.

From-SVN: r238943

8 years agoRemove duplicate dg-options directive in string_view test
Jonathan Wakely [Mon, 1 Aug 2016 12:17:59 +0000 (13:17 +0100)]
Remove duplicate dg-options directive in string_view test

* testsuite/experimental/string_view/operations/rfind/char/2.cc:
Remove duplicate dg-options directive.

From-SVN: r238942

8 years agoUse -std=gnu++98 instead of -std=gnu++03 in test
Jonathan Wakely [Mon, 1 Aug 2016 12:17:54 +0000 (13:17 +0100)]
Use -std=gnu++98 instead of -std=gnu++03 in test

* testsuite/20_util/specialized_algorithms/uninitialized_copy/
808590.cc: Use -std=gnu++98 instead of -std=gnu++03.

From-SVN: r238941

8 years agoRemove linker options from compile-only tests
Jonathan Wakely [Mon, 1 Aug 2016 12:17:49 +0000 (13:17 +0100)]
Remove linker options from compile-only tests

* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
linker options from compile-only tests.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.

From-SVN: r238940

8 years agoRun std::ios_base enum tests for C++11 and up
Jonathan Wakely [Mon, 1 Aug 2016 12:17:43 +0000 (13:17 +0100)]
Run std::ios_base enum tests for C++11 and up

* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
supported for C++11 and later.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r238939

8 years ago[AArch64] Allow multiple-of-8 immediate offsets for TImode LDP/STP
Kyrylo Tkachov [Mon, 1 Aug 2016 10:20:03 +0000 (10:20 +0000)]
[AArch64] Allow multiple-of-8 immediate offsets for TImode LDP/STP

        * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
        performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
        addresses.

        * gcc.target/aarch64/ldp_stp_unaligned_1.c: New test.

From-SVN: r238938

8 years agoaarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size.
Virendra Pathak [Mon, 1 Aug 2016 10:17:08 +0000 (10:17 +0000)]
aarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size.

2016-08-01  Virendra Pathak  <virendra.pathak@broadcom.com>

* config/aarch64/aarch64.c (vulcan_tunings): Update
vulcan L1 cache_line_size.

From-SVN: r238937

8 years agoextend shift count warnings to vector types
Jan Beulich [Mon, 1 Aug 2016 09:39:52 +0000 (09:39 +0000)]
extend shift count warnings to vector types

gcc/c/
2016-08-01  Jan Beulich  <jbeulich@suse.com>

* c-fold.c (c_fully_fold_internal): Also emit shift count
warnings for vector types.
* c-typeck.c (build_binary_op): Likewise.

gcc/testsuite/
2016-08-01  Jan Beulich  <jbeulich@suse.com>

* gcc.dg/vshift-6.c, gcc.dg/vshift-7.c: New.

From-SVN: r238936

8 years agobaseline_symbols.txt: Update.
Uros Bizjak [Mon, 1 Aug 2016 07:35:22 +0000 (09:35 +0200)]
baseline_symbols.txt: Update.

* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r238934

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

From-SVN: r238933

8 years agoChange std::conditional test to compile-only
Jonathan Wakely [Sun, 31 Jul 2016 19:37:14 +0000 (20:37 +0100)]
Change std::conditional test to compile-only

* testsuite/20_util/conditional/requirements/typedefs.cc: Change to
compile-only test.

From-SVN: r238930

8 years agoEnsure std::atomic test is compiled with optimization
Jonathan Wakely [Sun, 31 Jul 2016 19:30:16 +0000 (20:30 +0100)]
Ensure std::atomic test is compiled with optimization

* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
Ensure test is compiled with optimization.

From-SVN: r238929

8 years agoFix DR 438 std::list test to pass in C++98 mode
Jonathan Wakely [Sun, 31 Jul 2016 19:21:59 +0000 (20:21 +0100)]
Fix DR 438 std::list test to pass in C++98 mode

* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Adjust dg-prune-output pattern for error in C++98 mode.

From-SVN: r238928

8 years agoEnable std::regex test for C++11 or later
Jonathan Wakely [Sun, 31 Jul 2016 18:54:31 +0000 (19:54 +0100)]
Enable std::regex test for C++11 or later

* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
run for C++11 or later.

From-SVN: r238927

8 years agoFix non-portable std::regex test and test more cases
Jonathan Wakely [Sun, 31 Jul 2016 18:46:30 +0000 (19:46 +0100)]
Fix non-portable std::regex test and test more cases

* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
test to not rely on GNU extension (escaped normal characters in POSIX
BRE). Enable tests for other strings which are now supported.

From-SVN: r238926

8 years agoAllow std::pair test to run in C++11 mode too
Jonathan Wakely [Sun, 31 Jul 2016 18:12:28 +0000 (19:12 +0100)]
Allow std::pair test to run in C++11 mode too

* testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
c++11 instead of setting -std=gnu++14.

From-SVN: r238925

8 years agolibstdc++/72745 add static assertion for invalid tuple access
Jonathan Wakely [Sun, 31 Jul 2016 17:08:52 +0000 (18:08 +0100)]
libstdc++/72745 add static assertion for invalid tuple access

PR libstdc++/72745
* include/std/array (get): Use positive message for static assertions.
* include/std/functional (_Safe_tuple_element_t): Fix indentation.
* include/std/tuple (tuple_element<I, tuple<>>): Add partial
specialization for invalid indices, with static assertion.
* testsuite/20_util/tuple/element_access/get_neg.cc: New test.

From-SVN: r238924

8 years agoMove dg-error directives to relevant lines
Jonathan Wakely [Sun, 31 Jul 2016 16:51:08 +0000 (17:51 +0100)]
Move dg-error directives to relevant lines

* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
dg-error to relevant line.
* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
Likewise.
* testsuite/26_numerics/random/linear_congruential_engine/
requirements/non_uint_neg.cc: Likewise.
* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
Likewise. Also test for std::atomic_address.

From-SVN: r238923

8 years agoOops, ChangeLog didn't commit
William Schmidt [Sun, 31 Jul 2016 15:15:28 +0000 (15:15 +0000)]
Oops, ChangeLog didn't commit

From-SVN: r238922

8 years agoAdd missing variable traits, fix testsuite failures.
Ville Voutilainen [Sun, 31 Jul 2016 14:52:53 +0000 (17:52 +0300)]
Add missing variable traits, fix testsuite failures.

* include/bits/uses_allocator.h (uses_allocator_v): New.
* include/std/functional (is_bind_expression_v, is_placeholder_v):
Likewise.
* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/duration/literals/range.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
New.

From-SVN: r238921

8 years agodivkc3-1.c: Require POWER8 hardware.
William Schmidt [Sun, 31 Jul 2016 14:27:32 +0000 (14:27 +0000)]
divkc3-1.c: Require POWER8 hardware.

2016-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/divkc3-1.c: Require POWER8 hardware.
* gcc.target/powerpc/mulkc3-1.c: Likewise.

From-SVN: r238919

8 years agoCheck __STRICT_ANSI__ for 128-bit arithmetic types
Jonathan Wakely [Sun, 31 Jul 2016 13:06:38 +0000 (14:06 +0100)]
Check __STRICT_ANSI__ for 128-bit arithmetic types

* testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
not test 128-bit types.
* testsuite/20_util/is_floating_point/value.cc: Likewise.
* testsuite/20_util/is_integral/value.cc: Likewise.
* testsuite/20_util/is_signed/value.cc: Likewise.
* testsuite/20_util/is_unsigned/value.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.

From-SVN: r238918

8 years agoFix file extension of libstdc++ test
Jonathan Wakely [Sun, 31 Jul 2016 13:03:46 +0000 (14:03 +0100)]
Fix file extension of libstdc++ test

* testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.

From-SVN: r238917

8 years agoMake check_effective_target_c++ work for libstdc++
Jonathan Wakely [Sun, 31 Jul 2016 13:02:17 +0000 (14:02 +0100)]
Make check_effective_target_c++ work for libstdc++

* lib/target-supports.exp (check_effective_target_c): Fix indentation.
(check_effective_target_c++): Likewise. Also match for libstdc++.

From-SVN: r238916

8 years agore PR fortran/41922 (Diagnostic: No location shown for overlappingly initialized...
Steven G. Kargl [Sun, 31 Jul 2016 01:51:37 +0000 (01:51 +0000)]
re PR fortran/41922 (Diagnostic: No location shown for overlappingly initialized EQUIVALENCEd character vars)

2016-07-30  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/41922
* target-memory.c (expr_to_char): Pass in locus and use it in error
messages.
(gfc_merge_initializers): Ditto.
* target-memory.h: Update prototype for gfc_merge_initializers ().
* trans-common.c (get_init_field): Use the correct locus.

2016-07-30  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/41922
* gfortran.dg/equiv_constraint_5.f90: Adjust the error message.
* gfortran.dg/equiv_constraint_7.f90: Ditto.
* gfortran.dg/pr41922.f90: New test.

From-SVN: r238915

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

From-SVN: r238914

8 years agore PR fortran/68566 (ICE on using unusable array in reshape (double free or corruption))
Steven G. Kargl [Sat, 30 Jul 2016 23:01:06 +0000 (23:01 +0000)]
re PR fortran/68566 (ICE on using unusable array in reshape (double free or corruption))

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68566
* check.c (gfc_check_reshape): Check for constant expression.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68566
* gfortran.dg/pr68566.f90: new test.

From-SVN: r238911

8 years agoPR c++/60760 - arithmetic on null pointers should not be allowed in constant
Martin Sebor [Sat, 30 Jul 2016 22:36:56 +0000 (22:36 +0000)]
PR c++/60760 - arithmetic on null pointers should not be allowed in constant

PR c++/60760 - arithmetic on null pointers should not be allowed in constant
PR c++/71091 - constexpr reference bound to a null pointer dereference

gcc/cp/ChangeLog:

PR c++/60760
PR c++/71091
        * constexpr.c (cxx_eval_binary_expression): Reject invalid expressions
        involving null pointers.
        (cxx_eval_component_reference): Reject null pointer dereferences.
        (cxx_eval_indirect_ref): Reject indirecting through null pointers.
        (cxx_eval_constant_expression): Reject invalid expressions involving
        null pointers.

gcc/testsuite/ChangeLog:

PR c++/60760
PR c++/71091
* g++.dg/cpp0x/constexpr-cast.C: New test.
        * g++.dg/cpp0x/constexpr-nullptr-2.C: New test.
        * g++.dg/cpp1y/constexpr-sfinae.C: Correct.
        * g++.dg/ubsan/pr63956.C: Correct.

From-SVN: r238909

8 years agors6000-protos.h (rs6000_adjust_vec_address): New function that takes a vector memory...
Michael Meissner [Sat, 30 Jul 2016 22:31:16 +0000 (22:31 +0000)]
rs6000-protos.h (rs6000_adjust_vec_address): New function that takes a vector memory address...

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

* config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
function that takes a vector memory address, a hard register, an
element number and a temporary base register, and recreates an
address that points to the appropriate element within the vector.
* config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
(rs6000_split_vec_extract_var): Add support for the target of a
vec_extract with variable element number being a scalar memory
location.
(rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
swappable.
* config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
vsx_extract_<mode>_load insn with a new insn that optimizes
storing either element to a memory location, using scratch
registers to pick apart the vector and reconstruct the address.
(vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
(vsx_extract_<mode>_store): Rework alternatives to more correctly
support Altivec registers.  Add support for ISA 3.0 Altivec d-form
store instruction.
(vsx_extract_<mode>_var): Add support for extracting a variable
element number from memory.

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

* gcc.target/powerpc/vec-extract-2.c: New tests for vec_extract of
vector double or vector long where the vector is in memory.
* gcc.target/powerpc/vec-extract-3.c: Likewise.
* gcc.target/powerpc/vec-extract-4.c: Likewise.

From-SVN: r238908

8 years agore PR fortran/69867 (ICE on initializing character in type with array of incompatible...
Steven G. Kargl [Sat, 30 Jul 2016 20:05:10 +0000 (20:05 +0000)]
re PR fortran/69867 (ICE on initializing character in type with array of incompatible data)

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69867
* decl.c (build_struct): Ensure that pointers point to something.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69867
* gfortran.dg/pr69867.f90: New test.

From-SVN: r238907

8 years agore PR fortran/69962 (ICE on missing parameter attribute, in gfc_set_constant_characte...
Steven G. Kargl [Sat, 30 Jul 2016 19:24:49 +0000 (19:24 +0000)]
re PR fortran/69962 (ICE on missing parameter attribute, in gfc_set_constant_character_len)

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69962
* decl.c (gfc_set_constant_character_len):  if expr is not
constant issue an error instead of an ICE.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69962
* gfortran.dg/pr69962.f90: New test.

From-SVN: r238906

8 years agore PR fortran/70006 (Duplicate errors "label not defined")
Steven G. Kargl [Sat, 30 Jul 2016 18:18:49 +0000 (18:18 +0000)]
re PR fortran/70006 (Duplicate errors "label not defined")

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/70006
* io.c (gfc_resolve_dt): Use correct locus.
* resolve.c (resolve_branch): Ditto.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/70006
* gfortran.dg/pr70006.f90: New test.

From-SVN: r238905

8 years agore PR fortran/71730 (ICE when character length specification uses an undefined variable)
Steven G. Kargl [Sat, 30 Jul 2016 16:19:14 +0000 (16:19 +0000)]
re PR fortran/71730 (ICE when character length specification uses an undefined variable)

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/71730
* decl.c (char_len_param_value): Check return value of
gfc_reduce_init_expr().

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/71730
* gfortran.dg/pr71730.f90: New test.
* gfortran.dg/bounds_check_strlen_2.f90: Fix invalid code.
* gfortran.dg/array_constructor_27.f03: Update dg-error message.
* gfortran.dg/array_constructor_26.f03: Ditto.

From-SVN: r238904

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

From-SVN: r238902

8 years ago_divkc3.c: Add copyright/license boilerplate.
Bill Schmidt [Fri, 29 Jul 2016 20:15:54 +0000 (20:15 +0000)]
_divkc3.c: Add copyright/license boilerplate.

2016-07-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/_divkc3.c: Add copyright/license boilerplate.
* config/rs6000/_mulkc3.c: Likewise.

From-SVN: r238894

8 years agoImplement C++17 variable templates for type traits.
Ville Voutilainen [Fri, 29 Jul 2016 19:01:39 +0000 (22:01 +0300)]
Implement C++17 variable templates for type traits.

* include/std/chrono (treat_as_floating_point_v): New.
* include/std/ratio (ratio_equal_v, ratio_not_equal_v)
(ratio_less_v, ratio_less_equal_v, ratio_greater_v)
(ratio_greater_equal_v): Likewise.
* include/std/system_error (is_error_code_enum_v)
(is_error_condition_enum_v): Likewise.
* include/std/tuple (tuple_size_v): Likewise.
* type_traits (conjunction_v, disjunction_v, negation_v)
(is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
(is_array_v, is_pointer_v, is_lvalue_reference_v)
(is_rvalue_reference_v, is_member_object_pointer_v)
(is_member_function_pointer_v, is_enum_v, is_union_v)
(is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
(is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
(is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
(is_trivially_copyable_v, is_standard_layout_v)
(is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
(is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
(is_constructible_v, is_default_constructible_v)
(is_copy_constructible_v, is_move_constructible_v)
(is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
(is_destructible_v, is_trivially_constructible_v)
(is_trivially_default_constructible_v)
  (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
(is_trivially_assignable_v, is_trivially_copy_assignable_v)
(is_trivially_move_assignable_v, is_trivially_destructible_v)
(is_nothrow_constructible_v, is_nothrow_default_constructible_v)
(is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
(is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
(is_nothrow_move_assignable_v, is_nothrow_destructible_v)
(has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
(is_same_v, is_base_of_v, is_convertible_v): Likewise.
* testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
Likewise.
* testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
* testsuite/20_util/variable_templates_for_traits.cc: Likewise.

From-SVN: r238892

8 years agopr70098.C: Remove XFAIL for powerpc64_no_dm.
William Schmidt [Fri, 29 Jul 2016 18:29:01 +0000 (18:29 +0000)]
pr70098.C: Remove XFAIL for powerpc64_no_dm.

2016-07-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* g++.dg/pr70098.C: Remove XFAIL for powerpc64_no_dm.
* gcc.target/powerpc/pr71763.c: Likewise.

From-SVN: r238891

8 years agore PR c/71926 (wrong location for -Wparentheses warning)
Marek Polacek [Fri, 29 Jul 2016 17:39:39 +0000 (17:39 +0000)]
re PR c/71926 (wrong location for -Wparentheses warning)

PR c/71926
* c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
parentheses warning.

* semantics.c (maybe_convert_cond): Use the location of COND for the
parentheses warning.

* g++.dg/warn/Wparentheses-30.C: New test.
* gcc.dg/Wparentheses-14.c: New test.

From-SVN: r238886

8 years agore PR c/71573 (ICE on invalid C code on x86_64-linux-gnu (tree check: expected functi...
Marek Polacek [Fri, 29 Jul 2016 17:36:46 +0000 (17:36 +0000)]
re PR c/71573 (ICE on invalid C code on x86_64-linux-gnu (tree check: expected function_decl, have var_decl in implicitly_declare))

PR c/71573
* c-decl.c (implicitly_declare): Return decl early not only for
error_mark_nodes, but for anything that is not a FUNCTION_DECL.

* gcc.dg/noncompile/pr71573.c: New test.

From-SVN: r238885

8 years agore PR c/71853 (ICE on an ill-formed case statement in c_do_switch_warnings)
Marek Polacek [Fri, 29 Jul 2016 17:34:55 +0000 (17:34 +0000)]
re PR c/71853 (ICE on an ill-formed case statement in c_do_switch_warnings)

PR c/71853
* c-parser.c (c_parser_switch_statement): Initialize ce.original_type
to error node for invalid code.

* gcc.dg/noncompile/pr71853.c: New test.

From-SVN: r238884

8 years agore PR c/71742 (Wrong formulation of "error: flexible array member in otherwise empty...
Marek Polacek [Fri, 29 Jul 2016 17:32:27 +0000 (17:32 +0000)]
re PR c/71742 (Wrong formulation of "error: flexible array member in otherwise empty struct")

PR c/71742
* c-decl.c (finish_struct): Rephrase an error message.

* gcc.dg/940510-1.c: Adjust dg-error.
* gcc.dg/c99-flex-array-1.c: Likewise.
* gcc.dg/c99-flex-array-typedef-1.c: Likewise.

From-SVN: r238883

8 years agolibiberty.h (MAX_ALLOCA_SIZE): New macro.
Aldy Hernandez [Fri, 29 Jul 2016 16:40:55 +0000 (16:40 +0000)]
libiberty.h (MAX_ALLOCA_SIZE): New macro.

include/
* libiberty.h (MAX_ALLOCA_SIZE): New macro.

libiberty/
* make-relative-prefix.c (make_relative_prefix_1): Fall back to
malloc if alloca argument is greater than MAX_ALLOCA_SIZE.

From-SVN: r238880

8 years agoavr.c (avr_out_compare): Use const0_rtx instead of 0 when testing for compares agains...
Georg-Johann Lay [Fri, 29 Jul 2016 16:09:39 +0000 (16:09 +0000)]
avr.c (avr_out_compare): Use const0_rtx instead of 0 when testing for compares against constants of the...

* config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
when testing for compares against constants of the form 0xabab.

From-SVN: r238879

8 years agopr59833.c: Use dg-add-options ieee.
Uros Bizjak [Fri, 29 Jul 2016 16:07:09 +0000 (18:07 +0200)]
pr59833.c: Use dg-add-options ieee.

* gcc.dg/pr59833.c: Use dg-add-options ieee.

From-SVN: r238878

8 years agore PR tree-optimization/57558 (Loop not vectorized if iteration count could be infinite)
Bin Cheng [Fri, 29 Jul 2016 15:48:25 +0000 (15:48 +0000)]
re PR tree-optimization/57558 (Loop not vectorized if iteration count could be infinite)

PR tree-optimization/57558
* tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
function.
(vect_loop_versioning): Support versioning with niter assumptions.
* tree-vect-loop.c (tree-ssa-loop.h): Include header file.
(vect_get_loop_niters): New parameter.  Reimplement to support
assumptions in loop niter info.
(vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
(new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
(vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
Support loop versioning for niters.
* tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
(vect_free_loop_info_assumptions): New function.
(vectorize_loops): Free loop niter info for loops with flag
LOOP_F_ASSUMPTIONS set if vectorization failed.
* tree-vectorizer.h (struct _loop_vec_info): New field
num_iters_assumptions.
(LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
(LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
(LOOP_REQUIRES_VERSIONING): New macro.
(vect_free_loop_info_assumptions): New decl.

gcc/testsuite
PR tree-optimization/57558
* gcc.dg/vect/pr57558-1.c: New test.
* gcc.dg/vect/pr57558-2.c: New test.

From-SVN: r238877

8 years agocfgloop.h (struct loop): New field constraints.
Bin Cheng [Fri, 29 Jul 2016 15:44:00 +0000 (15:44 +0000)]
cfgloop.h (struct loop): New field constraints.

* cfgloop.h (struct loop): New field constraints.
(LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
(loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
functions.
* cfgloop.c (alloc_loop): Initialize new field.
* cfgloopmanip.c (copy_loop_info): Copy constraints.
* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
Adjust niter analysis wrto loop constraints.
* doc/loop.texi (@node Number of iterations): Add description for loop
constraints.

From-SVN: r238876

8 years ago2016-07-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Prathamesh Kulkarni [Fri, 29 Jul 2016 15:37:23 +0000 (15:37 +0000)]
2016-07-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
gcc.dg/pr70920-4.c: Restrict to lp64 targets and make scan-tree-dump
to scan forwprop1 dump pass.

From-SVN: r238874

8 years ago* decl.c (build_enumerator): Tweak diagnostic.
Jason Merrill [Fri, 29 Jul 2016 15:10:58 +0000 (11:10 -0400)]
* decl.c (build_enumerator): Tweak diagnostic.

From-SVN: r238873

8 years ago* config/avr/avr.md: Fix " in comment.
Georg-Johann Lay [Fri, 29 Jul 2016 14:54:04 +0000 (14:54 +0000)]
* config/avr/avr.md: Fix " in comment.

From-SVN: r238871

8 years agore PR c++/51488 (ICE on infinite template recursion)
Paolo Carlini [Fri, 29 Jul 2016 14:49:03 +0000 (14:49 +0000)]
re PR c++/51488 (ICE on infinite template recursion)

2016-07-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/51488
* g++.dg/template/pr51488.C: New.

From-SVN: r238870

8 years agoPR c++/72457 - ICE with list-value-initialized base.
Jason Merrill [Fri, 29 Jul 2016 14:03:26 +0000 (10:03 -0400)]
PR c++/72457 - ICE with list-value-initialized base.

* init.c (expand_aggr_init_1): Only handle value-init of bases.
* constexpr.c (build_data_member_initialization): Handle multiple
initializers for the same field.

From-SVN: r238867

8 years agore PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
Marek Polacek [Fri, 29 Jul 2016 12:39:25 +0000 (12:39 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)

PR c/7652
* config/i386/i386.c (ix86_expand_args_builtin): Add break.
(ix86_expand_round_builtin): Likewise.

From-SVN: r238864

8 years agore PR rtl-optimization/71976 (insn-combiner deletes a live 64-bit shift)
Segher Boessenkool [Fri, 29 Jul 2016 12:34:21 +0000 (14:34 +0200)]
re PR rtl-optimization/71976 (insn-combiner deletes a live 64-bit shift)

gcc/
PR rtl-optimization/71976
* combine.c (get_last_value): Return 0 if the argument for which
the function is called has a wider mode than the recorded value.

Co-Authored-By: Georg-Johann Lay <avr@gjlay.de>
From-SVN: r238863

8 years agore PR c/71969 (Wrong setting of DECL_DISREGARD_INLINE_LIMITS in the C FE)
Jakub Jelinek [Fri, 29 Jul 2016 12:00:43 +0000 (14:00 +0200)]
re PR c/71969 (Wrong setting of DECL_DISREGARD_INLINE_LIMITS in the C FE)

PR c/71969
* c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
on GNU extern inline functions.

* gcc.dg/alias-11.c (add_cfi, new_cfi): Change __inline__ to
static __inline__.
* gcc.dg/pr71969-1.c: New test.
* gcc.dg/pr71969-2.c: New test.
* gcc.dg/pr71969-3.c: New test.

From-SVN: r238862

8 years agore PR c/71583 (ICE on invalid code on x86_64-linux-gnu (in c_parser_postfix_expressio...
Marek Polacek [Fri, 29 Jul 2016 11:48:36 +0000 (11:48 +0000)]
re PR c/71583 (ICE on invalid code on x86_64-linux-gnu (in c_parser_postfix_expression_after_paren_type, at c/c-parser.c:8192))

PR c/71583
* c-parser.c (c_parser_postfix_expression_after_paren_type): Also
check expr.value.

* gcc.dg/noncompile/pr71583.c: New test.

From-SVN: r238861

8 years agoUpdate libstdc++ baseline symbols for aarch64, ia64, m68k
Andreas Schwab [Fri, 29 Jul 2016 11:41:05 +0000 (11:41 +0000)]
Update libstdc++ baseline symbols for aarch64, ia64, m68k

* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r238860

8 years agore PR c/71574 (ICE on code with alloc_align attribute on x86_64-linux-gnu: in default...
Marek Polacek [Fri, 29 Jul 2016 11:28:57 +0000 (11:28 +0000)]
re PR c/71574 (ICE on code with alloc_align attribute on x86_64-linux-gnu: in default_conversion, at c/c-typeck.c:2126)

PR c/71574
* c-common.c (handle_alloc_align_attribute): Also check FUNCTION_DECL.

* c-c++-common/pr71574.c: New test.

From-SVN: r238859

8 years agore PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
Marek Polacek [Fri, 29 Jul 2016 11:16:20 +0000 (11:16 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)

PR c/7652
* config/rs6000/rs6000.c (altivec_expand_ld_builtin): Likewise.
(altivec_expand_st_builtin): Likewise.

From-SVN: r238856

8 years agoUpdate libstdc++ docs for library version history
Jonathan Wakely [Fri, 29 Jul 2016 10:55:03 +0000 (11:55 +0100)]
Update libstdc++ docs for library version history

* doc/xml/manual/abi.xml: Document 6.0.22 library version.
* doc/html/manual/abi.html: Regenerate.

From-SVN: r238855

8 years agoNew libstdc++ symbol version for new basic_string symbols
Jonathan Wakely [Fri, 29 Jul 2016 10:42:17 +0000 (11:42 +0100)]
New libstdc++ symbol version for new basic_string symbols

* acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
* config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
symbols.
* configure: Regenerate.
* testsuite/util/testsuite_abi.cc: Add new symbol version.

From-SVN: r238853

8 years agoUpdate libstdc++ baseline symbols for x86 and ppc
Jonathan Wakely [Fri, 29 Jul 2016 10:42:06 +0000 (11:42 +0100)]
Update libstdc++ baseline symbols for x86 and ppc

* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
Likewise.
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.

From-SVN: r238852

8 years agoavr.md (addqi3): Revert glitch in insn attribute introduced in r238381.
Georg-Johann Lay [Fri, 29 Jul 2016 09:26:52 +0000 (09:26 +0000)]
avr.md (addqi3): Revert glitch in insn attribute introduced in r238381.

* config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
introduced in r238381.

From-SVN: r238851

8 years agolib1funcs.S (__muldi3): No need to clear zero_reg as previous call to __umulhisi3...
Georg-Johann Lay [Fri, 29 Jul 2016 09:14:02 +0000 (09:14 +0000)]
lib1funcs.S (__muldi3): No need to clear zero_reg as previous call to __umulhisi3 already cleared it.

* config/avr/lib1funcs.S (__muldi3) [have MUL]: No need to clear
zero_reg as previous call to __umulhisi3 already cleared it.

From-SVN: r238850

8 years agogfortran: Fix allocation of diagnostig string (was too small).
Dominik Vogt [Fri, 29 Jul 2016 08:04:01 +0000 (08:04 +0000)]
gfortran: Fix allocation of diagnostig string (was too small).

The attached patch fixes an out of bound write to memory allocated
with alloca() on the stack.  This rarely ever happened because on
one hand -fbounds-check needs to be enabled, and on the other hand
alloca() used to allocate a few bytes extra most of the time so
most of the time the excess write did no harm.

gcc/fortran/ChangeLog:

* trans-array.c (gfc_conv_array_ref): Fix allocation of diagnostic
message (was too small).

From-SVN: r238849

8 years agore PR rtl-optimization/68217 (Wrong constant folding)
Kugan Vivekanandarajah [Fri, 29 Jul 2016 00:35:23 +0000 (00:35 +0000)]
re PR rtl-optimization/68217 (Wrong constant folding)

gcc/ChangeLog:

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

PR middle-end/68217
* tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
& sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].

gcc/testsuite/ChangeLog:

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

PR middle-end/68217
* gcc.dg/pr68217.c: New test.

From-SVN: r238846

8 years agoDaily bump.
GCC Administrator [Fri, 29 Jul 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238845

8 years agore PR fortran/71067 (ICE on data initialization with insufficient value)
Steven G. Kargl [Thu, 28 Jul 2016 23:12:23 +0000 (23:12 +0000)]
re PR fortran/71067 (ICE on data initialization with insufficient value)

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

8 years ago* sv.po: Update.
Joseph Myers [Thu, 28 Jul 2016 21:15:06 +0000 (22:15 +0100)]
* sv.po: Update.

From-SVN: r238839

8 years agors6000-protos.h (rs6000_split_vec_extract_var): New declaration.
Michael Meissner [Thu, 28 Jul 2016 21:02:06 +0000 (21:02 +0000)]
rs6000-protos.h (rs6000_split_vec_extract_var): New declaration.

[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

8 years agoFix DR 438 container tests to pass in C++98 mode
Jonathan Wakely [Thu, 28 Jul 2016 21:00:45 +0000 (22:00 +0100)]
Fix DR 438 container tests to pass in C++98 mode

* 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

8 years agoFix std::vector test to pass in C++98 mode
Jonathan Wakely [Thu, 28 Jul 2016 21:00:39 +0000 (22:00 +0100)]
Fix std::vector test to pass in C++98 mode

* testsuite/23_containers/vector/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.

From-SVN: r238836

8 years agoUse dg-additional-options in libstdc++ tests
Jonathan Wakely [Thu, 28 Jul 2016 21:00:34 +0000 (22:00 +0100)]
Use dg-additional-options in libstdc++ tests

* 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

8 years agoFix invalid dg-do directives in libstdc++ tests
Jonathan Wakely [Thu, 28 Jul 2016 21:00:19 +0000 (22:00 +0100)]
Fix invalid dg-do directives in libstdc++ tests

* 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

8 years agore PR fortran/71799 (ICE in DO loop code emission (gfc_resolve_iterator))
Steven G. Kargl [Thu, 28 Jul 2016 19:04:12 +0000 (19:04 +0000)]
re PR fortran/71799 (ICE in DO loop code emission (gfc_resolve_iterator))

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

8 years agore PR c++/71665 (ICE on invalid C++ code with non-integral constant enumerator value...
Paolo Carlini [Thu, 28 Jul 2016 18:43:29 +0000 (18:43 +0000)]
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

8 years agore PR fortran/71859 (ICE on same variable/subroutine name (verify_gimple failed))
Steven G. Kargl [Thu, 28 Jul 2016 17:48:54 +0000 (17:48 +0000)]
re PR fortran/71859 (ICE on same variable/subroutine name (verify_gimple failed))

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

8 years agore PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
Marek Polacek [Thu, 28 Jul 2016 15:46:07 +0000 (15:46 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)

PR c/7652
* jcf-dump.c (print_constant): Add break.

From-SVN: r238824

8 years agoImplement std::string_view and P0254r2,
Ville Voutilainen [Thu, 28 Jul 2016 15:15:26 +0000 (18:15 +0300)]
Implement std::string_view and P0254r2,

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

8 years ago[multiple changes]
Paul Thomas [Thu, 28 Jul 2016 14:47:02 +0000 (14:47 +0000)]
[multiple changes]

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

8 years agoOn AArch64 the UXTB and UXTH instructions are aliases of UBFM,
Wilco Dijkstra [Thu, 28 Jul 2016 14:34:41 +0000 (14:34 +0000)]
On AArch64 the UXTB and UXTH instructions are aliases of UBFM,

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

8 years agoThis patchset improves zero extend costs and code generation.
Kristina Martsenko [Thu, 28 Jul 2016 14:29:28 +0000 (14:29 +0000)]
This patchset improves zero extend costs and code generation.

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

8 years agoThis patch improves the readability of the prolog and epilog code by moving some...
Wilco Dijkstra [Thu, 28 Jul 2016 14:21:57 +0000 (14:21 +0000)]
This patch improves the readability of the prolog and epilog code by moving some code into separate functions.

This patch improves the readability of the prolog and epilog code by moving
some code into separate functions.  There is no difference in generated code.

gcc/
* config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
(aarch64_push_reg): New function to push 1 or 2 registers.
(aarch64_pop_reg): New function to pop 1 or 2 registers.
(aarch64_expand_prologue): Use aarch64_push_regs.
(aarch64_expand_epilogue): Use aarch64_pop_regs.

From-SVN: r238818

8 years agore PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
Yuri Rumyantsev [Thu, 28 Jul 2016 14:19:18 +0000 (14:19 +0000)]
re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90   -O3 -g  execution test)

gcc/

2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/71734
* tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
attribute instead of REF_LOOP and use it.
(ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
set it for Loops having non-zero safelen attribute.
(ref_indep_loop_p): Pass zero as initial value for safelen.

gcc/testsuite/

2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/71734
        * g++.dg/vect/pr70729-nest.cc: New test.

From-SVN: r238817