platform/upstream/gcc.git
7 years agoPR78346 make <bits/predefined_ops.h> handle stashing iterators
Jonathan Wakely [Wed, 1 Feb 2017 12:57:35 +0000 (12:57 +0000)]
PR78346 make <bits/predefined_ops.h> handle stashing iterators

PR libstdc++/78346
* include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
not its referent.
(_Iter_comp_to_iter): Likewise.
* testsuite/25_algorithms/search/78346.cc: New test.

From-SVN: r245090

7 years agore PR tree-optimization/79315 (ICE while building SPEC CPU 2006 FP with -Ofast -ftree...
Richard Biener [Wed, 1 Feb 2017 12:47:25 +0000 (12:47 +0000)]
re PR tree-optimization/79315 (ICE while building SPEC CPU 2006 FP with -Ofast -ftree-parallelize-loops)

2017-02-01  Richard Biener  <rguenther@suse.de>

PR middle-end/79315
* tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
was not set before.

* gfortran.dg/pr79315.f90: New testcase.

From-SVN: r245089

7 years agoPR libstdc++/79254 simplify exception-safety in copy assignment
Jonathan Wakely [Wed, 1 Feb 2017 11:41:48 +0000 (11:41 +0000)]
PR libstdc++/79254 simplify exception-safety in copy assignment

PR libstdc++/79254
* config/abi/pre/gnu.ver: Remove recently added symbols.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_M_copy_assign): Remove.
(basic_string::operator=(const basic_string&)): Don't dispatch to
_M_copy_assign. If source object is small just deallocate, otherwise
perform new allocation before making any changes.
* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_M_copy_assign(const basic_string&, true_type)):
Remove.
* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
Test cases where the allocators are equal or the string is small.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
Likewise.

From-SVN: r245085

7 years agore PR other/79250 (brig/brigfrontend/brig-to-generic.cc: two small problems)
Pekka Jääskeläinen [Wed, 1 Feb 2017 10:06:13 +0000 (10:06 +0000)]
re PR other/79250 (brig/brigfrontend/brig-to-generic.cc: two small problems)

* brigfrontend/brig-code-entry-handler.cc: fix address
expressions which refer only to offset 0, but nothing else.
* brigfrontend/brig-lane-inst-handler.cc: fix
activelanepermute_b64 HSAIL instruction.
* brigfrontend/brig-to-generic.cc: remove useless c_str()
call. Add missing va_end (). Fix PR79250

From-SVN: r245084

7 years agore PR tree-optimization/71824 (ICE when compiling libiberty with Graphite loop optimi...
Richard Biener [Wed, 1 Feb 2017 08:02:50 +0000 (08:02 +0000)]
re PR tree-optimization/71824 (ICE when compiling libiberty with Graphite loop optimizations)

2017-02-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71824
* graphite-scop-detection.c (scop_detection::build_scop_breadth):
Verify the loops are valid in the merged SESE region.
(scop_detection::can_represent_loop_1): Check analyzing the
evolution of the number of iterations in the region succeeds.

* gcc.dg/graphite/pr71824.c: New testcase.

From-SVN: r245081

7 years agoconfigure.tgt: Fix i?86-*-linux* entry.
Jakub Jelinek [Wed, 1 Feb 2017 07:56:49 +0000 (08:56 +0100)]
configure.tgt: Fix i?86-*-linux* entry.

* configure.tgt: Fix i?86-*-linux* entry.
* rt/sat_arithmetic.c (__hsail_sat_add_u32, __hsail_sat_add_u64,
__hsail_sat_add_s32, __hsail_sat_add_s64): Use __builtin_add_overflow.
(__hsail_sat_sub_u8, __hsail_sat_sub_u16): Remove pointless for overflow
over maximum.
(__hsail_sat_sub_u32, __hsail_sat_sub_u64, __hsail_sat_sub_s32,
__hsail_sat_sub_s64): Use __builtin_sub_overflow.
(__hsail_sat_mul_u32, __hsail_sat_mul_u64, __hsail_sat_mul_s32,
__hsail_sat_mul_s64): Use __builtin_mul_overflow.
* rt/arithmetic.c (__hsail_borrow_u32, __hsail_borrow_u64): Use
__builtin_sub_overflow_p.
(__hsail_carry_u32, __hsail_carry_u64): Use __builtin_add_overflow_p.
* rt/misc.c (__hsail_groupbaseptr, __hsail_kernargbaseptr_u64):
Cast pointers to uintptr_t first before casting to some other integral
type.
* rt/segment.c (__hsail_segmentp_private, __hsail_segmentp_group): Likewise.
* rt/queue.c (__hsail_ldqueuereadindex, __hsail_ldqueuewriteindex,
__hsail_addqueuewriteindex, __hsail_casqueuewriteindex,
__hsail_stqueuereadindex, __hsail_stqueuewriteindex): Cast integral value
to uintptr_t first before casting to pointer.
* rt/workitems.c (__hsail_alloca_pop_frame): Cast memcpy first argument to
void * to avoid warning.

From-SVN: r245080

7 years agoDaily bump.
GCC Administrator [Wed, 1 Feb 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245079

7 years agoi386.c (ix86_expand_split_stack_prologue): Add REG_ARGS_SIZE note to 32-bit push...
Ian Lance Taylor [Tue, 31 Jan 2017 23:49:26 +0000 (23:49 +0000)]
i386.c (ix86_expand_split_stack_prologue): Add REG_ARGS_SIZE note to 32-bit push insns and call insn.

* config/i386/i386.c (ix86_expand_split_stack_prologue): Add
REG_ARGS_SIZE note to 32-bit push insns and call insn.

From-SVN: r245076

7 years agore PR c++/79304 (diagnostic shows bogus expression ((X<T>*)this)->.c)
Jakub Jelinek [Tue, 31 Jan 2017 21:38:00 +0000 (22:38 +0100)]
re PR c++/79304 (diagnostic shows bogus expression ((X<T>*)this)->.c)

PR c++/79304
* error.c (dump_expr) <case COMPONENT_REF>: Don't print .
after ARROW_EXPR.

* g++.dg/diagnostic/pr79304.C: New test.

From-SVN: r245073

7 years agoFix ICE with spelling hints within explicit namespace aliases (PR c++/79298)
David Malcolm [Tue, 31 Jan 2017 21:30:42 +0000 (21:30 +0000)]
Fix ICE with spelling hints within explicit namespace aliases (PR c++/79298)

gcc/cp/ChangeLog:
PR c++/79298
* name-lookup.c (suggest_alternative_in_explicit_scope): Resolve
any namespace aliases.

gcc/testsuite/ChangeLog:
PR c++/79298
* g++.dg/spellcheck-pr79298.C: New test case.

From-SVN: r245072

7 years agoPrevent ICEs due to bogus substring locations (PR preprocessor/79210)
David Malcolm [Tue, 31 Jan 2017 20:22:43 +0000 (20:22 +0000)]
Prevent ICEs due to bogus substring locations (PR preprocessor/79210)

gcc/ChangeLog:
PR preprocessor/79210
* input.c (get_substring_ranges_for_loc): Replace line_width
assertion with error-handling.

gcc/testsuite/ChangeLog:
PR preprocessor/79210
* gcc.dg/format/pr79210.c: New test case.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c (test_pr79210):
New function.

From-SVN: r245070

7 years agore PR c++/79290 (forming pointer to member function tries to access "__pfn")
Nathan Sidwell [Tue, 31 Jan 2017 19:37:11 +0000 (19:37 +0000)]
re PR c++/79290 (forming pointer to member function tries to access "__pfn")

PR c++/79290
* typeck.c (build_ptrmemfunc_access_expr): Set TREE_NO_WARNING.

PR c++/79290
* g++.dg/warn/pr79290.C: New.

From-SVN: r245069

7 years agore PR fortran/79305 (real128 - undefined reference to cexpl)
Steven G. Kargl [Tue, 31 Jan 2017 18:50:31 +0000 (18:50 +0000)]
re PR fortran/79305 (real128 - undefined reference to cexpl)

2017-01-31  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/79305
* c99_protos.h: Spell HAVE_EXPL correctly.
* intrinsics/c99_functions.c: Ditto.

From-SVN: r245068

7 years agore PR c++/67273 (Incorrect -Wshadow warning with generic lambdas)
Nathan Sidwell [Tue, 31 Jan 2017 18:05:37 +0000 (18:05 +0000)]
re PR c++/67273 (Incorrect -Wshadow warning with generic lambdas)

PR c++/67273
PR c++/79253
* pt.c: (instantiate_decl): Push to top level when current
function scope doesn't match.  Only push lmabda scope stack when
pushing to top.

PR c++/67273
PR c++/79253
* g++.dg/cpp1y/pr67273.C: New.
* g++.dg/cpp1y/pr79253.C: New.

From-SVN: r245067

7 years agocp-tree.h (instantiate_decl): Make defer_ok bool.
Nathan Sidwell [Tue, 31 Jan 2017 16:56:44 +0000 (16:56 +0000)]
cp-tree.h (instantiate_decl): Make defer_ok bool.

* cp-tree.h (instantiate_decl): Make defer_ok bool.
* pt.c: Fix instantiate_decl calls to pass true/false not 0/1
(instantiate_decl): Simplify and reorder state saving and restoration.

From-SVN: r245066

7 years agore PR c++/79264 (ICE verify_type failed)
Nathan Sidwell [Tue, 31 Jan 2017 15:10:41 +0000 (15:10 +0000)]
re PR c++/79264 (ICE verify_type failed)

PR c++/79264
* lambda.c (maybe_generic_this_capture): Deal with
template-id-exprs.
* semantics.c (finish_member_declaration): Assert class is being
defined.

PR c++/79264
* g++.dg/cpp1y/pr61636-1.C: Augment.

From-SVN: r245065

7 years agore PR tree-optimization/77318 (FAIL: gfortran.dg/graphite/pr68279.f90 -O (internal...
Richard Biener [Tue, 31 Jan 2017 14:44:37 +0000 (14:44 +0000)]
re PR tree-optimization/77318 (FAIL: gfortran.dg/graphite/pr68279.f90   -O  (internal compiler error))

2017-01-31  Richard Biener  <rguenther@suse.de>

PR tree-optimization/77318
* graphite-sese-to-poly.c (extract_affine): Fix assert.
(create_pw_aff_from_tree): Take loop parameter.
(add_condition_to_pbb): Pass loop of the condition to
create_pw_aff_from_tree.

From-SVN: r245064

7 years agolibgomp: Provide prototypes for functions implemented by libgomp plugins
Thomas Schwinge [Tue, 31 Jan 2017 14:32:58 +0000 (15:32 +0100)]
libgomp: Provide prototypes for functions implemented by libgomp plugins

libgomp/
* libgomp-plugin.h: #include <stdbool.h>.
(GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
(GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
(GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
(GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
(GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
(GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
(GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
(GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
(GOMP_OFFLOAD_openacc_register_async_cleanup)
(GOMP_OFFLOAD_openacc_async_test)
(GOMP_OFFLOAD_openacc_async_test_all)
(GOMP_OFFLOAD_openacc_async_wait)
(GOMP_OFFLOAD_openacc_async_wait_async)
(GOMP_OFFLOAD_openacc_async_wait_all)
(GOMP_OFFLOAD_openacc_async_wait_all_async)
(GOMP_OFFLOAD_openacc_async_set_async)
(GOMP_OFFLOAD_openacc_create_thread_data)
(GOMP_OFFLOAD_openacc_destroy_thread_data)
(GOMP_OFFLOAD_openacc_get_current_cuda_device)
(GOMP_OFFLOAD_openacc_get_current_cuda_context)
(GOMP_OFFLOAD_openacc_get_cuda_stream)
(GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
* libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
these.
* plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
(GOMP_OFFLOAD_unload_image): Fix argument types.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_type): Fix
return type.
(GOMP_OFFLOAD_load_image): Fix argument types.

From-SVN: r245062

7 years ago[testsuite] gcc.dg/memcmp-1.c: Fix testcase for newlib.
Christophe Lyon [Tue, 31 Jan 2017 14:03:56 +0000 (14:03 +0000)]
[testsuite] gcc.dg/memcmp-1.c: Fix testcase for newlib.

2017-01-31  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.dg/memcmp-1.c (static void test_driver_memcmp): Call
rand() instead of random().

From-SVN: r245061

7 years agos390.c (s390_asan_shadow_offset): New function.
Jakub Jelinek [Tue, 31 Jan 2017 13:50:20 +0000 (14:50 +0100)]
s390.c (s390_asan_shadow_offset): New function.

gcc/
* config/s390/s390.c (s390_asan_shadow_offset): New function.
(TARGET_ASAN_SHADOW_OFFSET): Redefine.
libsanitizer/
* configure.tgt: Enable asan and ubsan on 64-bit s390*-*-linux*.

From-SVN: r245060

7 years agore PR target/78597 (test case gcc.dg/torture/fp-int-convert-float128-ieee.c (and...
Michael Meissner [Tue, 31 Jan 2017 13:38:35 +0000 (13:38 +0000)]
re PR target/78597 (test case gcc.dg/torture/fp-int-convert-float128-ieee.c (and others) fail starting with r242780)

2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/78597
PR target/79038
* config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
no longer used.
(convert_int_to_float128): Likewise.
* config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
(convert_int_to_float128): Likewise.
* config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
(UNSPEC_IEEE128_CONVERT): Likewise.
(floatsi<mode>2, FLOAT128 iterator): Bypass calling
rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
Use local variables for IBM extended format.
(fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
(fix_trunc<mode>si2_fprs): Likewise.
(fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
(floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
(fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
to know that we can now have integers of all sizes in vector
registers.
(fix<uns>_<mode>di2_hw): Likewise.
(float<uns>_<mode>si2_hw): Likewise.
(fix_<mode>si2_hw): Likewise.
(fixuns_<mode>si2_hw): Likewise.
(float<uns>_<mode>di2_hw): Likewise.
(float_<mode>di2_hw): Likewise.
(float_<mode>si2_hw): Likewise.
(floatuns_<mode>di2_hw): Likewise.
(floatuns_<mode>si2_hw): Likewise.
(xscvqp<su>wz_<mode>): Delete, no longer used.
(xscvqp<su>dz_<mode>): Likewise.
(xscv<su>dqp_<mode>): Likewise.
(ieee128_mfvsrd_64bit): Likewise.
(ieee128_mfvsrd_32bit): Likewise.
(ieee128_mfvsrwz): Likewise.
(ieee128_mtvsrw): Likewise.
(ieee128_mtvsrd_64bit): Likewise.
(ieee128_mtvsrd_32bit): Likewise.

From-SVN: r245059

7 years agoCall symbol_summary<>::release instead of ~symbol_summary (PR ipa/79285).
Martin Liska [Tue, 31 Jan 2017 10:54:41 +0000 (11:54 +0100)]
Call symbol_summary<>::release instead of ~symbol_summary (PR ipa/79285).

2017-01-31  Martin Liska  <mliska@suse.cz>

PR ipa/79285
* ipa-prop.c (ipa_free_all_node_params): Call release method
instead of ~sumbol_summary to not to trigger double times
dtor of hash_map.

From-SVN: r245058

7 years agore PR tree-optimization/71691 (wrong code at -O3 in both 32-bit and 64-bit modes...
Aldy Hernandez [Tue, 31 Jan 2017 10:30:47 +0000 (10:30 +0000)]
re PR tree-optimization/71691 (wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (Floating point exception))

PR tree-optimization/71691
* bitmap.h (class auto_bitmap): New.
* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
is_maybe_undefined instead of ssa_undefined_value_p.

From-SVN: r245057

7 years agoS/390: Rename __S390_ARCH_LEVEL__ to __ARCH__.
Andreas Krebbel [Tue, 31 Jan 2017 09:14:36 +0000 (09:14 +0000)]
S/390: Rename __S390_ARCH_LEVEL__ to __ARCH__.

We have recently added the predefined macro __S390_ARCH_LEVEL__ to
expand to a numerical value representing the architecture document
level currently in use.  However, the IBM XL compiler already has a
macro named __ARCH__ for that purpose.  So we change our macro to that
in order to improve portability.

gcc/ChangeLog:

2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
__S390_ARCH_LEVEL__ to __ARCH__.

gcc/testsuite/ChangeLog:

2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/s390.exp: Rename __S390_ARCH_LEVEL__ to
__ARCH__.

From-SVN: r245055

7 years agore PR c++/79267 (internal compiler error with -O3 or -O2 -finline-functions)
Jakub Jelinek [Tue, 31 Jan 2017 08:33:36 +0000 (09:33 +0100)]
re PR c++/79267 (internal compiler error with -O3 or -O2 -finline-functions)

PR tree-optimization/79267
* value-prof.c (gimple_ic): Only drop lhs for noreturn calls
if should_remove_lhs_p is true.

* g++.dg/opt/pr79267.C: New test.

From-SVN: r245053

7 years ago[PR63238] output alignment debug information
Alexandre Oliva [Tue, 31 Jan 2017 01:03:15 +0000 (01:03 +0000)]
[PR63238] output alignment debug information

Output DWARFv5+ DW_AT_alignment for non-default alignment of
variables, fields and types.

for gcc/ChangeLog

PR debug/63238
* dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
(add_alignment_attribute): New.
(base_type_die): Add alignment attribute.
(subrange_type_die): Likewise.
(modified_type_die): Likewise.
(gen_array_type_die): Likewise.
(gen_descr_array_type_die: Likewise.
(gen_enumeration_type_die): Likewise.
(gen_subprogram_die): Likewise.
(gen_variable_die): Likewise.
(gen_field_die): Likewise.
(gen_ptr_to_mbr_type_die): Likewise.
(gen_struct_or_union_type_die): Likewise.
(gen_subroutine_type_die): Likewise.
(gen_typedef_die): Likewise.
(base_type_cmp): Compare alignment attribute.

for gcc/testsuite/ChangeLog

PR debug/63238
* gcc.dg/debug/dwarf2/align-1.c: New.
* gcc.dg/debug/dwarf2/align-2.c: New.
* gcc.dg/debug/dwarf2/align-3.c: New.
* gcc.dg/debug/dwarf2/align-4.c: New.
* gcc.dg/debug/dwarf2/align-5.c: New.
* gcc.dg/debug/dwarf2/align-6.c: New.
* gcc.dg/debug/dwarf2/align-as-1.c: New.
* g++.dg/debug/dwarf2/align-1.C: New.
* g++.dg/debug/dwarf2/align-2.C: New.
* g++.dg/debug/dwarf2/align-3.C: New.
* g++.dg/debug/dwarf2/align-4.C: New.
* g++.dg/debug/dwarf2/align-5.C: New.
* g++.dg/debug/dwarf2/align-6.C: New.

From-SVN: r245052

7 years agoIntroduce C++ support in libcc1
Alexandre Oliva [Tue, 31 Jan 2017 01:02:03 +0000 (01:02 +0000)]
Introduce C++ support in libcc1

Extend libcc1's with an API for C++ support.

Extend libcc1's C API to distinguish between integral types with the
same width, as in C++.  Likewise for float types.

Export small bits of functionality from the C++ front-end for use in
libcc1.  Add support for the C++ front-end to look up names and
addresses using a libcc1-registered binding oracle.  Add support for
global friends.

for  gcc/cp/ChangeLog

Introduce C++ support in libcc1.
* cp-tree.h (struct lang_identifier): Add oracle_looked_up.
(ansi_opname): Rename to...
(cp_operator_id): ... this.  Adjust all callers.
(ansi_assopname): Rename to...
(cp_assignment_operator_id): ... this.  Adjust all callers.
(cp_literal_operator_id): Declare.
(set_global_friend): Declare.
(is_global_friend): Declare.
(enum cp_oracle_request): New type.
(cp_binding_oracle_function): New type.
(cp_binding_oracle): Declare.
(cp_finish_injected_record_type): Declare.
* friend.c (global_friend): New var.
(set_global_friend): New fn.
(is_global_friend): New fn.
(is_friend): Call is_global_friend.
* name-lookup.c (cp_binding_oracle): New var.
(query_oracle): New fn.
(qualified_lookup_using_namespace): Call query_oracle.
(lookup_name_real_1): Likewise.
* parser.c (cp_literal_operator_id): Drop static.
* search.c (friend_accessible_p): Call is_global_friend.
* semantics.c (is_this_parameter): Accept a variable if the
binding oracle is enabled.

for  include/ChangeLog

Introduce C++ support in libcc1.
* gcc-c-fe.def (int_type_v0): Rename from...
(int_type): ... this.  Introduce new version.
(float_type_v0): Rename from...
(float_type): ... this.  Introduce new version.
(char_type): New.
* gcc-c-interface.h (gcc_c_api_version): Add GCC_C_FE_VERSION_1.
(gcc_type_array): Move...
* gcc-interface.h: ... here.
* gcc-cp-fe.def: New.
* gcc-cp-interface.h: New.

for  libcc1/ChangeLog

Introduce C++ support.
* Makefile.am (AM_CPPFLAGS): Move some -I flags to...
(CPPFLAGS_FOR_C_FAMILY, CPPFLAGS_FOR_C, CPPFLAGS_FOR_CXX): ...
new macros.
(plugin_LTLIBRARIES): Add libcp1plugin.la.
(BUILT_SOURCES, MOSTLYCLEANFILES): Add...
(cp-compiler-name.h): ... this.  New.
(c-compiler-name.h): Rename all over from...
(compiler-name.h): ... this.  Create it atomically.
(marshall_c_source, marshall_cxx_source): New macros.
(libcc1plugin_la_SOURCES): Rename plugin.cc to libcc1plugin.cc.
Add marshall_c_source expansion.
(libcc1plugin.lo_CPPFLAGS): New macro.
(libcp1plugin_la_LDFLAGS): Likewise.
(libcp1plugin_la_SOURCES): Likewise.
(libcp1plugin.lo_CPPFLAGS): Likewise.
(libcp1plugin_la_LIBADD): Likewise.
(libcp1plugin_la_DEPENDENCIES): Likewise.
(libcp1plugin_la_LINK): Likewise.
(libcc1_la_SOURCES): Added marshall_c_source and
marshall_cxx_source expansions.
* Makefile.in: Rebuild.
* compiler-name.h: Rename all over to...
* c-compiler-name.h: ... this.  Define C_COMPILER_NAME instead
of COMPILER_NAME.
* plugin.cc: Rename all over to...
* libcc1plugin.cc: ... this.  Include marshall-c.hh.
(address_rewriter): Drop cleaning up of VLA sizes.
(plugin_build_decl): Mark decls as external.
(plugin_tagbind): Propagate name to all variants.
(build_anonymous_node): New.
(plugin_build_record_type): Use it instead of make_node.
(plugin_build_union_type): Likewise.
(plugin_build_enum_type): Likewise.
(plugin_finish_record_or_union): Update all type variants.
(safe_lookup_builtin_type): New.
(plugin_int_check): Factor out of, and add checks to, ...
(plugin_int_type): ... this.  Rename to...
(plugin_int_type_v0): ... this.
(plugin_int_type): New interface, new implementation.
(plugin_char_type): New.
(plugin_float_type_v0): Rename from...
(plugin_float_type): ... this.  New interface, new implementation.
(plugin_init): Bump handshake version.
* libcc1.cc: Include marshall-c.hh.  Drop gcc-interface.h.
(call_binding_oracle): Rename to...
(c_call_binding_oracle): ... this, into anonymous namespace.
(call_symbol_address): Rename to...
(c_call_symbol_address): ... this, likewise.
(GCC_METHOD#): Move methods into cc1plugin::c:: namespace.
(libcc1::compiler::find): Refer to C_COMPILER_NAME.
(fork_exec): Bump to GCC_C_FE_VERSION_1.
(libcc1_compile): Prefix callbacks with c_.
(gcc_c_fe_context): Accept GCC_C_FE_VERSION_1.
* libcc1.sym: Export gcc_cp_fe_context.
* libcp1.cc: New, mostly copied and adjusted from libcc1.cc.
* libcp1plugin.cc: New, initially copied from libcc1plugin.cc.
* libcp1plugin.sym: New.
* marshall-c.hh: New.  Move C-specific types from...
* marshall.cc: ... this.
(cc1_plugin::marshall_array_start): New.
(cc1_plugin::marshall_array_elmts): New.
(cc1_plugin::marshall for gcc_type_array): Use the above.
(cc1_plugin::unmarshall_array_start): New.
(cc1_plugin::unmarshall_array_elmts): New.
(cc1_plugin::unmarshall for gcc_type_array): Use the above.
* marshall.hh: Declare the new array building blocks.
Drop C-specific unmarshall declarations.
* marshall-cp.hh: New.
* names.cc (GCC_METHOD#): Add LANG:: to method names.
(LANG): Define while including gcc-c-fe.def and gcc-cp-fe.def.
* names.hh: Include gcc-c-fe.def and gcc-cp-fe.def in the
corresponding namespaces.
* rpc.hh: Don't include marshall.hh.
[GCC_CP_INTERFACE_H] (argument_wrapper): Specialize for
gcc_vbase_array, gcc_cp_template_args, gcc_cp_function_args.

From-SVN: r245051

7 years agolibcc1: return absolute filename from make search_dir
Jan Kratochvil [Tue, 31 Jan 2017 01:01:32 +0000 (01:01 +0000)]
libcc1: return absolute filename from make search_dir

for  libcc1/ChangeLog

* findcomp.cc: Include system.h.
(search_dir): Return absolute filename.

From-SVN: r245050

7 years agolibcc1 base API: bump set_arguments; add set_driver_filename, set_triplet_regexp
Jan Kratochvil [Tue, 31 Jan 2017 01:01:09 +0000 (01:01 +0000)]
libcc1 base API: bump set_arguments; add set_driver_filename, set_triplet_regexp

for  include/ChangeLog

* gcc-interface.h (enum gcc_base_api_version): Update comment
for GCC_FE_VERSION_1.
(struct gcc_base_vtable): Rename set_arguments to
set_arguments_v0.  Add set_arguments, set_triplet_regexp and
set_driver_filename.

for  libcc1/ChangeLog

* libcc1.cc (libcc1): Add class compiler with field compilerp,
class compiler_triplet_regexp and class
compiler_driver_filename.
(libcc1::libcc1): Initialize compilerp.
(libcc1::~libcc1): Delete compilerp.
(libcc1::compiler::find, libcc1::compiler_triplet_regexp::find)
(libcc1::compiler_driver_filename::find): New methods.
(libcc1_set_arguments): Remove parameter triplet_regexp.
(libcc1_set_triplet_regexp, libcc1_set_driver_filename)
(libcc1_set_arguments_v0): New functions.
(vtable): Use libcc1_set_arguments_v0, add
libcc1_set_arguments, libcc1_set_triplet_regexp and
libcc1_set_driver_filename.

From-SVN: r245049

7 years agolibcc1 base API: add set_verbose and new version of compile
Jan Kratochvil [Tue, 31 Jan 2017 01:00:51 +0000 (01:00 +0000)]
libcc1 base API: add set_verbose and new version of compile

for  include/ChangeLog

* gcc-interface.h (enum gcc_base_api_version): Add comment to
GCC_FE_VERSION_1.
(struct gcc_base_vtable): Rename compile to compile_v0.
Update comment for compile.  New methods set_verbose and
compile.

for  libcc1/ChangeLog

* libcc1.cc: Include intl.h.
(struct libcc1): Add field verbose.
(libcc1::libcc1): Initialize it.
(libcc1_set_verbose): New function.
(libcc1_set_arguments): Print messages for VERBOSE.
(libcc1_compile): Remove parameter verbose.  Use VERBOSE from
SELF.
(libcc1_compile_v0): New function.
(vtable): Use libcc1_compile_v0 and add libcc1_compile and
libcc1_set_verbose.

From-SVN: r245048

7 years agolibcc1 base API version bump
Jan Kratochvil [Tue, 31 Jan 2017 00:58:47 +0000 (00:58 +0000)]
libcc1 base API version bump

for  include/ChangeLog

* gcc-interface.h (enum gcc_base_api_version): Add
GCC_FE_VERSION_1.

for  libcc1/ChangeLog

* libcc1.cc (vtable): Update to GCC_FE_VERSION_1.
(gcc_c_fe_context): Accept also GCC_FE_VERSION_1.

From-SVN: r245047

7 years ago* de.po, eo.po: Update.
Joseph Myers [Tue, 31 Jan 2017 00:50:29 +0000 (00:50 +0000)]
* de.po, eo.po: Update.

From-SVN: r245046

7 years ago* de.po, es.po, fr.po, sv.po: Update.
Joseph Myers [Tue, 31 Jan 2017 00:48:36 +0000 (00:48 +0000)]
* de.po, es.po, fr.po, sv.po: Update.

From-SVN: r245045

7 years agoDaily bump.
GCC Administrator [Tue, 31 Jan 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245044

7 years agore PR target/79170 (memcmp builtin expansion sequence can overflow)
Aaron Sawdey [Mon, 30 Jan 2017 23:24:24 +0000 (23:24 +0000)]
re PR target/79170 (memcmp builtin expansion sequence can overflow)

2017-01-27  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

PR target/79170
* gcc.dg/memcmp-1.c: Improved to catch failures seen in PR 79170.

2017-01-27  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

PR target/79170
* config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
(setb_unsigned) New pattern for setb with CCUNS.
* config/rs6000/rs6000.c (expand_block_compare): Use a different
subfc./subfe sequence to avoid overflow problems.  Generate a
shorter sequence with cmpld/setb for power9.
* config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
for generating subfc. instruction.
(cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
now uses this instruction.

From-SVN: r245041

7 years agogimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision): Move constant to...
Martin Sebor [Mon, 30 Jan 2017 23:15:40 +0000 (23:15 +0000)]
gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision): Move constant to the right of a relational operator.

gcc/ChangeLog:
* gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
Move constant to the right of a relational operator.
(get_mpfr_format_length, format_character, format_string): Ditto.
(should_warn_p, maybe_warn): Same.

From-SVN: r245040

7 years agore PR debug/79289 (DWARF info for typeof of C function with no args and no prototype...
Ian Lance Taylor [Mon, 30 Jan 2017 22:26:26 +0000 (22:26 +0000)]
re PR debug/79289 (DWARF info for typeof of C function with no args and no prototype is empty pointer)

PR debug/79289
* dwarf2out.c (gen_type_die_with_usage): When picking a variant
for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.

From-SVN: r245039

7 years agoinvoke.texi (-Wformat-truncation=1): Fix typo.
Martin Sebor [Mon, 30 Jan 2017 22:21:20 +0000 (22:21 +0000)]
invoke.texi (-Wformat-truncation=1): Fix typo.

gcc/ChangeLog:
* doc/invoke.texi (-Wformat-truncation=1): Fix typo.

From-SVN: r245038

7 years agoPR testsuite/79293 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244953
Martin Sebor [Mon, 30 Jan 2017 21:59:37 +0000 (21:59 +0000)]
PR testsuite/79293 -  gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244953

gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf.c: Relax long double test.

From-SVN: r245037

7 years ago* brigfrontend/brig-code-entry-handler.cc
Jakub Jelinek [Mon, 30 Jan 2017 18:11:33 +0000 (19:11 +0100)]
* brigfrontend/brig-code-entry-handler.cc
(brig_code_entry_handler::get_tree_cst_for_hsa_operand): For %lu
cast size_t arguments to unsigned long.

From-SVN: r245036

7 years agore PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initializati...
Maxim Ostapenko [Mon, 30 Jan 2017 16:06:15 +0000 (16:06 +0000)]
re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco")

PR lto/79061
* asan.c (get_translation_unit_decl): Remove function.
(asan_add_global): Force has_dynamic_init to zero in LTO mode.

From-SVN: r245033

7 years agoFix profile corruption with -O1 (PR gcov-profile/79259)
Martin Liska [Mon, 30 Jan 2017 15:35:57 +0000 (16:35 +0100)]
Fix profile corruption with -O1 (PR gcov-profile/79259)

2017-01-30  Martin Liska  <mliska@suse.cz>

PR gcov-profile/79259
* opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
-fprofile-generate.
2017-01-30  Martin Liska  <mliska@suse.cz>

PR gcov-profile/79259
* g++.dg/tree-prof/pr79259.C: New test.

From-SVN: r245031

7 years agoFix aarch64 PGO bootstrap (bootstrap/78985)
Martin Liska [Mon, 30 Jan 2017 15:16:33 +0000 (16:16 +0100)]
Fix aarch64 PGO bootstrap (bootstrap/78985)

2017-01-30  Martin Liska  <mliska@suse.cz>

PR bootstrap/78985
* config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
Initialize variables with NULL value.

From-SVN: r245030

7 years agore PR target/79260 (missing header files for plugins: arm-isa.h, arm-flags.h)
Richard Earnshaw [Mon, 30 Jan 2017 14:39:50 +0000 (14:39 +0000)]
re PR target/79260 (missing header files for plugins: arm-isa.h, arm-flags.h)

PR target/79260
* config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
tm_p_file.
* arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.

From-SVN: r245029

7 years agoupdate-copyright.py: Retain original file mode
Bernhard Reutner-Fischer [Mon, 30 Jan 2017 14:31:59 +0000 (15:31 +0100)]
update-copyright.py: Retain original file mode

2017-01-31  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* update-copyright.py (Copyright.process_file): Retain original
file mode.

From-SVN: r245028

7 years ago* mpxrt/mpxrt-utils.h (__mpxrt_stop): New prototype.
Jakub Jelinek [Mon, 30 Jan 2017 14:26:24 +0000 (15:26 +0100)]
* mpxrt/mpxrt-utils.h (__mpxrt_stop): New prototype.

From-SVN: r245027

7 years agore PR tree-optimization/79276 (ICE: Segmentation fault in VRP pass)
Richard Biener [Mon, 30 Jan 2017 14:24:37 +0000 (14:24 +0000)]
re PR tree-optimization/79276 (ICE: Segmentation fault in VRP pass)

2017-01-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79276
* tree-vrp.c (process_assert_insertions): Properly adjust common
when removing a duplicate.

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

From-SVN: r245026

7 years agore PR tree-optimization/79256 (FAIL: gcc.dg/vect/pr25413a.c execution test)
Richard Biener [Mon, 30 Jan 2017 13:52:44 +0000 (13:52 +0000)]
re PR tree-optimization/79256 (FAIL: gcc.dg/vect/pr25413a.c execution test)

2017-01-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79256
* targhooks.c (default_builtin_vector_alignment_reachable): Honor
BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
alignment on TYPE.
* tree.c (build_aligned_type): Set TYPE_USER_ALIGN.

From-SVN: r245025

7 years agoImplement LWG 2825, LWG 2756 breaks class template argument deduction for optional.
Ville Voutilainen [Mon, 30 Jan 2017 13:37:16 +0000 (15:37 +0200)]
Implement LWG 2825, LWG 2756 breaks class template argument deduction for optional.

* include/std/optional: Add a deduction guide.
* testsuite/20_util/optional/cons/deduction_guide.cc: New.

From-SVN: r245024

7 years ago[ARM][PR target/78945] Fix libatomic on armv7-m
Szabolcs Nagy [Mon, 30 Jan 2017 11:34:13 +0000 (11:34 +0000)]
[ARM][PR target/78945] Fix libatomic on armv7-m

ARM libatomic inline asm uses sel, uadd8, uadd16 instructions
which are only available if __ARM_FEATURE_SIMD32 is defined.

libatomic/
2017-01-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/78945
* config/arm/exch_n.c (libat_exchange): Check __ARM_FEATURE_SIMD32.

From-SVN: r245023

7 years agoS/390: PR target/79240: Fix assertion in s390_extzv_shift_ok.
Dominik Vogt [Mon, 30 Jan 2017 09:54:58 +0000 (09:54 +0000)]
S/390: PR target/79240: Fix assertion in s390_extzv_shift_ok.

2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR target/79240
* config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
("*r<noxa>sbg_<mode>_sll_bitmask")
("*extzv_<mode>_srl<clobbercc_or_nocc>")
("*extzv_<mode>_sll<clobbercc_or_nocc>"):
Use contiguous_bitmask_nowrap_operand.

2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR target/79240
* gcc.target/s390/pr79240.c: New test.

From-SVN: r245022

7 years agore PR target/79268 (Wrong code generation for vec_xl and vec_xst intrinsics)
Bill Schmidt [Mon, 30 Jan 2017 03:32:59 +0000 (03:32 +0000)]
re PR target/79268 (Wrong code generation for vec_xl and vec_xst intrinsics)

[gcc]

2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/79268
* config/rs6000/altivec.h (vec_xl): Revise #define.
(vec_xst): Likewise.

[gcc/testsuite]

2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/79268
* gcc.target/powerpc/pr79268.c: New file.
* gcc.target/powerpc/vsx-elemrev-1.c: Delete file.
* gcc.target/powerpc/vsx-elemrev-2.c: Likewise.
* gcc.target/powerpc/vsx-elemrev-3.c: Likewise.
* gcc.target/powerpc/vsx-elemrev-4.c: Likewise.

From-SVN: r245021

7 years agoDaily bump.
GCC Administrator [Mon, 30 Jan 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245020

7 years ago* update-copyright.py: Fix the name of this script in examples.
Gerald Pfeifer [Sun, 29 Jan 2017 19:29:15 +0000 (19:29 +0000)]
* update-copyright.py: Fix the name of this script in examples.

From-SVN: r245017

7 years agoDaily bump.
GCC Administrator [Sun, 29 Jan 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245013

7 years agotrampoline4.adb: Skip on hppa*-*-*.
John David Anglin [Sat, 28 Jan 2017 21:35:54 +0000 (21:35 +0000)]
trampoline4.adb: Skip on hppa*-*-*.

* gnat.dg/trampoline4.adb: Skip on hppa*-*-*.

From-SVN: r245010

7 years agoi386.c (print_reg): Use REGNO instead of true_regnum.
Uros Bizjak [Sat, 28 Jan 2017 18:43:56 +0000 (19:43 +0100)]
i386.c (print_reg): Use REGNO instead of true_regnum.

* config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.

From-SVN: r245009

7 years agore PR testsuite/70583 (FAIL: g++.old-deja/g++.abi/vtable2.C -std=gnu++98 execution...
John David Anglin [Sat, 28 Jan 2017 18:01:22 +0000 (18:01 +0000)]
re PR testsuite/70583 (FAIL: g++.old-deja/g++.abi/vtable2.C  -std=gnu++98 execution test)

PR testsuite/70583
* g++.old-deja/g++.abi/vtable2.C: Adjust CMP_VPTR define on hppa.

From-SVN: r245007

7 years agodebug7.adb: Skip on hppa*-*-hpux*.
John David Anglin [Sat, 28 Jan 2017 17:30:50 +0000 (17:30 +0000)]
debug7.adb: Skip on hppa*-*-hpux*.

* gnat.dg/debug7.adb: Skip on hppa*-*-hpux*.
* gnat.dg/debug9.adb: Likewise.

From-SVN: r245006

7 years agopr78515.c: Add -fno-common option on hppa*-*-hpux*.
John David Anglin [Sat, 28 Jan 2017 17:19:09 +0000 (17:19 +0000)]
pr78515.c: Add -fno-common option on hppa*-*-hpux*.

* gcc.dg/torture/pr78515.c: Add -fno-common option on hppa*-*-hpux*.

From-SVN: r245005

7 years agocoarray_41.f90: Add "-latomic" option if libatomic_available.
John David Anglin [Sat, 28 Jan 2017 17:00:33 +0000 (17:00 +0000)]
coarray_41.f90: Add "-latomic" option if libatomic_available.

* gfortran.dg/coarray_41.f90: Add "-latomic" option if
libatomic_available.
* gfortran.dg/coarray_42.f90: Likewise.
* gfortran.dg/coarray_alloc_comp_3.f08: Likewise.
* gfortran.dg/coarray_alloc_comp_4.f08: Likewise.
* gfortran.dg/coarray_lib_alloc_4.f90: Likewise.

From-SVN: r245004

7 years agoDaily bump.
GCC Administrator [Sat, 28 Jan 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r245002

7 years agobuiltin-sprintf-warn-1.c: Add test cases.
Martin Sebor [Sat, 28 Jan 2017 00:09:15 +0000 (00:09 +0000)]
builtin-sprintf-warn-1.c: Add test cases.

gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Add test cases.

From-SVN: r244999

7 years ago* sr.po: Update.
Joseph Myers [Fri, 27 Jan 2017 23:34:48 +0000 (23:34 +0000)]
* sr.po: Update.

From-SVN: r244996

7 years agore PR rtl-optimization/79194 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2661 (error...
Bernd Schmidt [Fri, 27 Jan 2017 19:40:44 +0000 (12:40 -0700)]
re PR rtl-optimization/79194 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2661 (error: flow control insn inside a basic block))

2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>

PR rtl-optimization/79194
* cprop.c (one_cprop_pass): Move deletion of code after unconditional
traps before call to bypass_conditional_jumps.

PR rtl-optimization/79194
* gcc.dg/torture/pr79194.c: New test.

From-SVN: r244993

7 years agore PR rtl-optimization/71374 (ICE on valid code at -O1 and above on x86_64-linux...
Vladimir Makarov [Fri, 27 Jan 2017 18:08:14 +0000 (18:08 +0000)]
re PR rtl-optimization/71374 (ICE on valid code at -O1 and above on x86_64-linux-gnu: in extract_constrain_insn, at recog.c:2190)

2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>

PR tree-optimization/71374
* lra-constraints.c (check_conflict_input_operands): New.
(match_reload): Use it.

2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>

PR tree-optimization/71374
* testsuite/gcc.target/i386/pr71374.c: New.

From-SVN: r244991

7 years agore PR c++/71290 (Flexible array member is not diagnosed with -pedantic)
Martin Sebor [Fri, 27 Jan 2017 16:51:54 +0000 (16:51 +0000)]
re PR c++/71290 (Flexible array member is not diagnosed with -pedantic)

PR c++/71290

gcc/testsuite/ChangeLog:
* obj-c++.dg/property/at-property-23.mm: Remove an escaped newline from
a dg-error directive.

From-SVN: r244990

7 years agore PR target/79131 (ICE: in extract_constrain_insn, at recog.c:2213, big-endian ARM)
Vladimir Makarov [Fri, 27 Jan 2017 16:50:11 +0000 (16:50 +0000)]
re PR target/79131 (ICE: in extract_constrain_insn, at recog.c:2213, big-endian ARM)

2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>

PR target/79131
* lra-assigns.c (find_hard_regno_for_1): Take endianess for into
account to calculate conflict_set.

2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>

PR target/79131
* gcc.target/arm/pr79131.c: Rename to gcc.target/arm/pr79131-1.c.
* gcc.target/arm/pr79131-2.c: New.

From-SVN: r244989

7 years agoPR c++/78771 - ICE with inherited constructor.
Jason Merrill [Fri, 27 Jan 2017 16:48:34 +0000 (11:48 -0500)]
PR c++/78771 - ICE with inherited constructor.

* call.c (build_over_call): Call deduce_inheriting_ctor here.
* pt.c (tsubst_decl): Not here.
* class.c (add_method): Or here.
* method.c (deduce_inheriting_ctor): Handle clones.
(implicitly_declare_fn): Don't deduce inheriting ctors yet.

From-SVN: r244988

7 years agoPR libstdc++/79254 fix exception-safety in std::string::operator=
Jonathan Wakely [Fri, 27 Jan 2017 16:17:04 +0000 (16:17 +0000)]
PR libstdc++/79254 fix exception-safety in std::string::operator=

PR libstdc++/79254
* config/abi/pre/gnu.ver: Add new symbols.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_M_copy_assign): New overloaded functions to perform
copy assignment.
(basic_string::operator=(const basic_string&)): Dispatch to
_M_copy_assign.
* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_M_copy_assign(const basic_string&, true_type)):
Define, performing rollback on exception.
* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
Test exception-safety guarantee.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
Likewise.
* testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
std::swap visible.

From-SVN: r244986

7 years agore PR testsuite/65484 (FAIL: g++.dg/vect/pr36648.cc on powerpc64)
Bill Schmidt [Fri, 27 Jan 2017 15:59:02 +0000 (15:59 +0000)]
re PR testsuite/65484 (FAIL: g++.dg/vect/pr36648.cc on powerpc64)

2017-01-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/65484
* g++.dg/vect/pr36648.cc: Modify to reflect that the loop is not
vectorized on POWER unless hardware misaligned loads are
available.

From-SVN: r244985

7 years agocompiler: let initializers hold addresses of fields
Ian Lance Taylor [Fri, 27 Jan 2017 15:08:23 +0000 (15:08 +0000)]
compiler: let initializers hold addresses of fields

    The runtime.dbgvars initializer looks like

    var dbgvars = []dbgVar{
            {"allocfreetrace", &debug.allocfreetrace},
    }

    Because the field address was not recognized as valid for a static
    initializer, the variable was initialized at runtime.  Normally that
    would be fine, but for the runtime package it meant that dbgvars was
    not initialized when it was read by parsedebugvars.  That meant that
    the GODEBUG environment variable did nothing.

    Fixing that revealed that the static initializer checks had to be more
    careful about interface types, just like the existing is_constant
    methods.

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

From-SVN: r244982

7 years agolibgo: update to go1.8rc3
Ian Lance Taylor [Fri, 27 Jan 2017 15:01:57 +0000 (15:01 +0000)]
libgo: update to go1.8rc3

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

From-SVN: r244981

7 years agore PR rtl-optimization/78559 (wrong code due to tree if-conversion?)
Bin Cheng [Fri, 27 Jan 2017 14:42:23 +0000 (14:42 +0000)]
re PR rtl-optimization/78559 (wrong code due to tree if-conversion?)

PR rtl-optimization/78559
* combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
other_insn in combine.

gcc/testsuite
PR rtl-optimization/78559
* gcc.c-torture/execute/pr78559.c: New test.

From-SVN: r244979

7 years ago[brigfe] Small fixes
Martin Jambor [Fri, 27 Jan 2017 14:35:07 +0000 (15:35 +0100)]
[brigfe] Small fixes

2017-01-27  Pekka Jaaskelainen  <pekka.jaaskelainen@parmance.com>

* configure.ac: Moved the white list of enabling BRIG FE to
libhsail-rt/configure.tgt.
* configure: Regenerated.
* MAINTAINERS: Updated maintainers for BRIG FE and libhsail-rt.

gcc/
* builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
uint16_type_node for BT_UINT16.

gcc/brig/
* config-lang.in: Removed stale target-libbrig reference.

libhsail-rt/
* configure.tgt: Moved the white list of supported targets here
from configure.ac.  Added i[3456789]86-*-linux* as a supported env
for the BRIG FE.
* README: Added a proper description of what libhsail-rt is.

From-SVN: r244978

7 years agodocs: Add __GIMPLE and __RTL to the "Internals" doc
David Malcolm [Fri, 27 Jan 2017 14:25:59 +0000 (14:25 +0000)]
docs: Add __GIMPLE and __RTL to the "Internals" doc

gcc/ChangeLog:
* doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
"RTL Tests" to menu.
(GIMPLE Tests): New node.
(RTL Tests): New node.

From-SVN: r244977

7 years agore PR tree-optimization/79245 (Inefficient loop distribution to memcpy)
Richard Biener [Fri, 27 Jan 2017 13:56:59 +0000 (13:56 +0000)]
re PR tree-optimization/79245 (Inefficient loop distribution to memcpy)

2017-01-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79245
* tree-loop-distribution.c (distribute_loop): Apply cost
modeling also to detected patterns.

* gcc.dg/tree-ssa/ldist-23.c: XFAIL.
* gcc.dg/tree-ssa/ldist-25.c: New testcase.

From-SVN: r244976

7 years agore PR c/79199 (ICE with -Wduplicated-branches)
Jakub Jelinek [Fri, 27 Jan 2017 13:25:28 +0000 (14:25 +0100)]
re PR c/79199 (ICE with -Wduplicated-branches)

PR c/79199
* c-c++-common/Wduplicated-branches-13.c: Require int32plus effective
target.  Use 4294967293U instead of 4294967293.

From-SVN: r244975

7 years agore PR tree-optimization/71433 (-Warray-bounds false positive with -O2)
Richard Biener [Fri, 27 Jan 2017 12:30:43 +0000 (12:30 +0000)]
re PR tree-optimization/71433 (-Warray-bounds false positive with -O2)

2017-01-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71433
* tree-vrp.c (register_new_assert_for): Revert earlier changes.
(compare_assert_loc): New function.
(process_assert_insertions): Sort and optimize assert locations
to remove duplicates and push down identical assertions on
edges to their destination block.

* gcc.dg/Warray-bounds-21.c: New testcase.

From-SVN: r244974

7 years agore PR tree-optimization/79244 (ice in replace_uses_by, at tree-cfg.c:1866)
Richard Biener [Fri, 27 Jan 2017 12:24:54 +0000 (12:24 +0000)]
re PR tree-optimization/79244 (ice in replace_uses_by, at tree-cfg.c:1866)

2017-01-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79244
* tree-vrp.c (remove_range_assertions): Forcefully propagate
out SSA names even if abnormal.

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

From-SVN: r244973

7 years agofib-opr-overload.cc (main): Change all occurrences of 40 to 32.
Jakub Jelinek [Fri, 27 Jan 2017 11:34:58 +0000 (12:34 +0100)]
fib-opr-overload.cc (main): Change all occurrences of 40 to 32.

* g++.dg/cilk-plus/CK/fib-opr-overload.cc (main): Change
all occurrences of 40 to 32.

From-SVN: r244967

7 years agorealmpfr.h: Poison MPFR_RND{N,Z,U,D}.
Jakub Jelinek [Fri, 27 Jan 2017 11:28:34 +0000 (12:28 +0100)]
realmpfr.h: Poison MPFR_RND{N,Z,U,D}.

* realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
* gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
instead of MPFR_RNDN.

From-SVN: r244966

7 years ago[ARM] Fix PR target/79239 - unrecognized insn after pragma gcc pop_options
Richard Earnshaw [Fri, 27 Jan 2017 11:22:30 +0000 (11:22 +0000)]
[ARM] Fix PR target/79239 - unrecognized insn after pragma gcc pop_options

{committed for rearnsha}

It turns out that because the compiler uses a hash table to save the
cl_target_option structures it is unsafe to modify the result of
build_target_option_node() (doing so will cause the hash lookup to
fail).  This PR was due to not properly understanding this limitation.

The fix is to create temporary copies of the cl_target_option nodes for
use during target option processing and then only creating the tree node
once the options have been suitably modified.

gcc:
        PR target/79239
        * arm.c (arm_option_override): Don't call build_target_option_node
        until after doing all option overrides.
        (arm_valid_target_attribute_tree): Likewise.

gcc/testsuite:
        * gcc.target/arm/pr79239.c: New test.

From-SVN: r244965

7 years agoEnhance doc for -fprofile-arcs
Martin Liska [Fri, 27 Jan 2017 09:58:34 +0000 (10:58 +0100)]
Enhance doc for -fprofile-arcs

2017-01-27  Martin Liska  <mliska@suse.cz>

* doc/invoke.texi (-fprofile-arcs): Document profiling support
for {cd}tors and C++ {cd}tors.

From-SVN: r244964

7 years agoS/390: Fix matching setmem_long_and*.
Dominik Vogt [Fri, 27 Jan 2017 08:07:26 +0000 (08:07 +0000)]
S/390: Fix matching setmem_long_and*.

The attached patch reactivates the setmem_long_and* patterns on S/390
that have not been generated for a while.

gcc/ChangeLog:

2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.md ("*setmem_long_and")
("*setmem_long_and_31z"): Use zero_extend instead of and.

gcc/testsuite/ChangeLog:

2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/md/setmem_long-1.c: Remove xfail, skip with -O0.

From-SVN: r244963

7 years agore PR c++/64382 (ICE due to use of `this` inside a lambda that captures everything...
Adam Butcher [Fri, 27 Jan 2017 07:59:06 +0000 (07:59 +0000)]
re PR c++/64382 (ICE due to use of `this` inside a lambda that captures everything by ref inside a member function of a class template)

Fix PR c++/64382

PR c++/64382
* cp/parser.c (parsing_default_capturing_generic_lambda_in_template):
New function.
* cp/cp-tree.h: Declare it.
* cp/semantics.c (finish_id_expression): Resolve names within a default
capturing generic lambda defined within a template prior to
instantiation to allow for captures to be added to the closure type.

PR c++/64382
* g++.dg/cpp1y/pr64382.C: New test.

From-SVN: r244962

7 years agogimple-ssa-sprintf.c (format_floating): Simplify the computation of precision to...
Martin Sebor [Fri, 27 Jan 2017 02:45:32 +0000 (02:45 +0000)]
gimple-ssa-sprintf.c (format_floating): Simplify the computation of precision to avoid preprocessor conditional.

gcc/ChangeLog:
* gimple-ssa-sprintf.c (format_floating): Simplify the computation
of precision to avoid preprocessor conditional.

From-SVN: r244961

7 years agoDaily bump.
GCC Administrator [Fri, 27 Jan 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244960

7 years agogimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and HAVE_DFmode before using...
Martin Sebor [Thu, 26 Jan 2017 23:37:17 +0000 (23:37 +0000)]
gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and HAVE_DFmode before using XFmode or DFmode.

gcc/ChangeLog:
* gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
HAVE_DFmode before using XFmode or DFmode.
(parse_directive): Avoid using the z length modifier to avoid
the ISO C++98 does not support the ‘z’ gnu_printf length modifier.

From-SVN: r244957

7 years agoPR middle-end/78703 - fprintf-return-value floating point handling incorrect in local...
Martin Sebor [Thu, 26 Jan 2017 23:07:02 +0000 (23:07 +0000)]
PR middle-end/78703 - fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point

gcc/ChangeLog:
        PR middle-end/78703
        * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
        to accept adjustment as an array.
        (get_int_range): New function.
        (struct directive): Make width and prec arrays.
        (directive::set_width, directive::set_precision): Call get_int_range.
        (format_integer, format_floating): Handle width and precision ranges.
        (format_string, parse_directive): Same.

gcc/testsuite/ChangeLog:
        PR middle-end/78703
        * gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: Update
        * gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Rename...
        * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: ...to this.
        * gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: New test.

From-SVN: r244956

7 years agore PR c++/79129 (ICE with -fdebug-types-section starting with r240578)
Jakub Jelinek [Thu, 26 Jan 2017 21:45:57 +0000 (22:45 +0100)]
re PR c++/79129 (ICE with -fdebug-types-section starting with r240578)

PR debug/79129
* dwarf2out.c (generate_skeleton_bottom_up): For children with
comdat_type_p set, just clone them, but keep the children in the
original DIE.

* g++.dg/debug/dwarf2/pr79129.C: New test.

From-SVN: r244955

7 years agore PR debug/78835 (ICE with -fdebug-types-section and member function)
Jakub Jelinek [Thu, 26 Jan 2017 21:44:49 +0000 (22:44 +0100)]
re PR debug/78835 (ICE with -fdebug-types-section and member function)

PR debug/78835
* dwarf2out.c (prune_unused_types): Mark all functions with DIEs
which have direct callers with -fvar-tracking-assignments enabled
in the current TU.
(resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
inside of type units.

* g++.dg/debug/dwarf2/pr78835.C: New test.

From-SVN: r244954

7 years agoPR middle-end/78703 -fprintf-return-value floating point handling incorrect in locale...
Martin Sebor [Thu, 26 Jan 2017 21:14:18 +0000 (21:14 +0000)]
PR middle-end/78703 -fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point

gcc/ChangeLog:
PR middle-end/78703
* gimple-ssa-sprintf.c (struct result_range): Add likely and
unlikely counters.
(struct format_result): Replace number_chars, number_chars_min,
and number_chars_max with a single member of struct result_range.
Remove bounded.
(format_result::operator+=): Adjust.
(struct fmtresult): Remove bounded.  Handle likely and unlikely
counters.
(fmtresult::adjust_for_width_or_precision): New function.
(fmtresult:type_max_digits): New function.
(bytes_remaining): Handle likely and unlikely counters.
(min_bytes_remaining): Remove.
(format_percent): Simplify.
(format_integer, format_floating): Set likely and unlikely counters.
(get_string_length, format_character, format_string): Same.
(format_plain, should_warn_p): New function.
(maybe_warn): Call should_warn_p.  Update diagnostic messages
and handle those for all directives, including plain strings.
(format_directive): Handle likely and unlikely counters.
Remove unnecessary quoting from diagnostics.  Add an informational
note.
(add_bytes): Remove.
(pass_sprintf_length::compute_format_length): Simplify.
(try_substitute_return_value): Handle likely and unlikely counters.

gcc/testsuite/ChangeLog:

PR middle-end/78703
* gcc.dg/format/pr78569.c: Adjust.
* gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-2.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-5.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf.c: Same.

From-SVN: r244953

7 years agoPR libstdc++/70607 revert recent changes to <tr1/complex>
Jonathan Wakely [Thu, 26 Jan 2017 19:40:02 +0000 (19:40 +0000)]
PR libstdc++/70607 revert recent changes to <tr1/complex>

PR libstdc++/70607
* include/tr1/complex (conj): Remove using-declaration and restore
overloads, reverting previous change.

From-SVN: r244951

7 years agoFix libstdc++ testsuite failures in C++98 and C++11 mode
Jonathan Wakely [Thu, 26 Jan 2017 19:39:53 +0000 (19:39 +0000)]
Fix libstdc++ testsuite failures in C++98 and C++11 mode

* testsuite/23_containers/list/operations/78389.cc: Fix for C++11
mode.
* testsuite/23_containers/priority_queue/requirements/constructible.cc:
Mark as unsupported in C++98 mode.
* testsuite/23_containers/queue/requirements/constructible.cc:
Likewise.
* testsuite/23_containers/stack/requirements/constructible.cc:
Likewise.
* testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.

From-SVN: r244950

7 years agore PR c++/68727 (invalid offsetof expressions accepted)
Jakub Jelinek [Thu, 26 Jan 2017 19:39:40 +0000 (20:39 +0100)]
re PR c++/68727 (invalid offsetof expressions accepted)

PR c++/68727
* cp-tree.def (OFFSETOF_EXPR): Bump number of operands to 2.
* cp-tree.h (finish_offsetof): Add OBJECT_PTR argument.
* parser.c (cp_parser_builtin_offsetof): Pass result of
build_static_cast of null_pointer_node to finish_offsetof.
* semantics.c (finish_offsetof): Add OBJECT_PTR argument, use
it for -Winvalid-offsetof pedwarn instead of trying to guess
original offsetof type from EXPR.  Save OBJECT_PTR as a new
second operand to OFFSETOF_EXPR.
* pt.c (tsubst_copy_and_build) <case OFFSETOF_EXPR>: Adjust
finish_offsetof caller, pass the second operand of OFFSETOF_EXPR
as OBJECT_PTR.

* g++.dg/other/offsetof8.C: Add expected error.
* g++.dg/other/offsetof9.C: New test.

From-SVN: r244949

7 years ago* testsuite/lib/libgomp.exp
Jakub Jelinek [Thu, 26 Jan 2017 19:37:08 +0000 (20:37 +0100)]
* testsuite/lib/libgomp.exp
(check_effective_target_hsa_offloading_selected_nocache): Fix up
check_compile invocation.  Fix up removal of executable.  Drop
bogus "2>&1" argument.

From-SVN: r244948

7 years agoruntime: fix setting of isarchive
Ian Lance Taylor [Thu, 26 Jan 2017 19:07:54 +0000 (19:07 +0000)]
runtime: fix setting of isarchive

    When I updated to Go 1.8, the initsig function moved from
    signal1_unix.go to signal_unix.go, and lost a gccgo-specific change in
    the move.  Add it back.

    This would have been caught by the misc/cgo/testcarchive tests in the
    gc repository, but we don't run those in the gccgo repository.  We
    should fix that, somehow.

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

From-SVN: r244947

7 years agoruntime: fix context used by getTraceback
Ian Lance Taylor [Thu, 26 Jan 2017 19:05:16 +0000 (19:05 +0000)]
runtime: fix context used by getTraceback

    I typoed the argument passed to getcontext in getTraceback, and the
    error was hidden by ucontext_arg.  This would have been caught by some
    of the runtime package tests, but we don't run most of them because
    they rely on `go build`, and the go tool is not available while
    running the libgo testsuite.  We should fix the libgo testsuite,
    somehow, so that they run.

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

From-SVN: r244946

7 years agoFix namespace versioning and remove __detail::__identity helpers
Jonathan Wakely [Thu, 26 Jan 2017 18:32:55 +0000 (18:32 +0000)]
Fix namespace versioning and remove __detail::__identity helpers

PR libstdc++/79243
* include/bits/c++config (literals::string_view_literals::__7): Add.
Only declare versioned namespaces for the relevant C++ dialects.
* include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
Add versioning macros.
* include/experimental/bits/lfts_config.h:
(fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
* include/experimental/string_view (fundamentals_v2::__detail):
Add versioning macros.
(fundamentals_v2::__detail::__identity): Remove.
(fundamentals_v2::__detail::__idt): Use common_type instead of
__detail::__identity.
* include/std/string_view (__detail::__identity, __detail::__idt):
Likewise.
(literals::string_view_literals): Fix nesting of versioning macros.

From-SVN: r244945