gcc.git
7 years ago[C++ PATCH] overloaded operator fns [5/N]
Nathan Sidwell [Tue, 31 Oct 2017 20:08:51 +0000 (20:08 +0000)]
[C++ PATCH] overloaded operator fns [5/N]

https://gcc.gnu.org/ml/gcc-patches/2017-10/
* cp-tree.h (struct operator_name_info_t): Rename to ...
(struct ovl_op_info_t): ... here.  Add tree_code field.
(operator_name_info, assignment_operator_name_info): Delete.
(ovl_op_info): Declare.
(OVL_OP_INFO): Adjust.
* decl.c (grok_op_properties): Use ovl_op_flags.
* lex.c (operator_name_info, assignment_operator_name_info):
Delete.
(ovl_op_info): Define.
(set_operator_ident): Adjust.
(init_operators): Set tree_code.
* mangle.c (write_unqualified_id): Adjust operator array scan.

From-SVN: r254279

7 years agobuiltins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and _Float<N>X built-in...
Michael Meissner [Tue, 31 Oct 2017 18:56:05 +0000 (18:56 +0000)]
builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and _Float<N>X built-in functions so that the variant...

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

* builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
_Float<N>X built-in functions so that the variant without the
"__builtin_" prefix is only enabled for the GNU C and Objective C
languages when they are in non-strict ANSI/ISO mode.
(DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
* target.def (floatn_builtin_p): Add a target hook to control
whether _Float<N> and _Float<N>X built-in functions without the
"__builtin_" prefix are enabled, and return true for C and
Objective C in the default hook.  Include langhooks.h in
targhooks.c.
* targhooks.h (default_floatn_builtin_p): Likewise.
* targhooks.c (default_floatn_builtin_p): Likewise.
* doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
floatn_builtin_p target hook.
* doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.

From-SVN: r254277

7 years ago[C++ PATCH] overloaded operator fns [4/N]
Nathan Sidwell [Tue, 31 Oct 2017 18:29:08 +0000 (18:29 +0000)]
[C++ PATCH] overloaded operator fns [4/N]

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02362.html
* lex.c (init_operators): Allow NULL operator name.  Don't add
special cases.
* operators.def: Use NULL for mangling only operators.  Move to
after regular operators but move assignment operators last.

From-SVN: r254276

7 years agore PR rtl-optimization/81803 (miscompilation at -O1 on mips64el)
Matthew Fortune [Tue, 31 Oct 2017 18:27:52 +0000 (18:27 +0000)]
re PR rtl-optimization/81803 (miscompilation at -O1 on mips64el)

PR rtl-optimization/81803
* lra-constraints.c (curr_insn_transform): Also reload the whole
register for a strict subreg no wider than a word if this is for
a WORD_REGISTER_OPERATIONS target.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r254275

7 years agore PR ada/82785 (gnat bootstrap fails on m68k-linux-gnu)
Eric Botcazou [Tue, 31 Oct 2017 17:29:26 +0000 (17:29 +0000)]
re PR ada/82785 (gnat bootstrap fails on m68k-linux-gnu)

PR ada/82785
* gcc-interface/Makefile.in (m68k/Linux): Fix typo.

From-SVN: r254274

7 years ago* gdbinit.in: Skip over inlines from timevar.h.
Jason Merrill [Tue, 31 Oct 2017 17:13:46 +0000 (13:13 -0400)]
* gdbinit.in: Skip over inlines from timevar.h.

From-SVN: r254273

7 years agoconstexpr.c, pt.c: Adjust comments.
Jason Merrill [Tue, 31 Oct 2017 17:09:09 +0000 (13:09 -0400)]
constexpr.c, pt.c: Adjust comments.

* constexpr.c, pt.c: Adjust comments.

* g++.dg/cpp1y/lambda-generic-69078-1.C: Remove #include.

From-SVN: r254272

7 years ago[C++ PATCH] overloaded operator fns [3/N]
Nathan Sidwell [Tue, 31 Oct 2017 16:27:59 +0000 (16:27 +0000)]
[C++ PATCH] overloaded operator fns [3/N]

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02343.html
* cp-tree.h (enum ovl_op_flags): New.
(struct operator_name_info_t): Rename arity to flags.
* lex.c (set_operator_ident): New.
(init_operators): Use it.  Adjust for flags.
* mangle.c (write_unqualified_id): Adjust for flags.
* operators.def: Replace arity with flags.

From-SVN: r254271

7 years agoFix fortran build error on AIX.
James E Wilson [Tue, 31 Oct 2017 16:04:19 +0000 (09:04 -0700)]
Fix fortran build error on AIX.

gcc/fortran/
* parse.c (unexpected_eof): Call gcc_unreachable before return.

From-SVN: r254270

7 years agoGCOV: add -j argument (human readable format).
Martin Liska [Tue, 31 Oct 2017 15:31:25 +0000 (16:31 +0100)]
GCOV: add -j argument (human readable format).

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

* doc/gcov.texi: Document new option.
* gcov.c (print_usage): Likewise print it.
(process_args): Support the argument.
(format_count): New function.
(format_gcov): Use the function.
2017-10-31  Martin Liska  <mliska@suse.cz>

* g++.dg/gcov/loop.C: New test.
* lib/gcov.exp: Support human readable format for counts.

From-SVN: r254269

7 years agoFix typo in my email, in changelog.
Segher Boessenkool [Tue, 31 Oct 2017 15:18:23 +0000 (16:18 +0100)]
Fix typo in my email, in changelog.

From-SVN: r254268

7 years ago[C++ PATCH] overloaded operator fns [2/N]
Nathan Sidwell [Tue, 31 Oct 2017 14:39:44 +0000 (14:39 +0000)]
[C++ PATCH] overloaded operator fns [2/N]

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02326.html
gcc/cp/
* cp-tree.h (ovl_op_identifier): New.
(assign_op_identifier, call_op_identifier): Adjust.
(cp_operator_id, cp_assignment_operator_ide): Delete.
(SET_OVERLOADED_OPERATOR_CODE): Delete.
(OVL_OP_INFO): New.
* call.c (op_error): Use OVL_OP_INFO.
(build_conditional_expr_1): Use ovl_op_identifier.
(build_new_op_1): Use OVL_OP_INFO & ovl_op_identifier.
(build_op_delete_call): Likewise.
* class.c (type_requires_array_cookie): Use ovl_op_identifier.
* decl.c (duplicate_decls): Directly copy operator code.
(builtin_function_1): Do not set operator code.
(build_library_fn): Directly set operator code.
(push_cp_library_fn): Use ovl_op_identifier.
(grok_op_properties): Directly set operator code.
* decl2.c (maybe_warn_sized_delete): Use ovl_op_identifier.
* error.c (dump_expr): Use OVL_OP_INFO.
(op_to_string): Add assop arg. Use OVL_OP_INFO.
(assop_to_string): Delete.
(args_to_string): Adjust.
* init.c (build_new_1): Use ovl_op_identifier.
* mangle.c (write_unqualified_name): Use OVL_OP_INFO.
(write_expression): Likewise.
* method.c (synthesized_method_walk): Use ovl_op_identifier.
(implicitly_declare_fn): Use assign_op_identifier. Directly set
operator code.
* name-lookup.c (get_class_binding): Use assign_op_identifier.
* parser.c (cp_parser_operator): Use ovl_op_identifier.
(cp_parser_omp_clause_reduction): Likewise.
* semantics.c (omp_reduction_id): Likewise.
* typeck.c (cxx_sizeof_or_alignof_type): Use OVL_OP_INFO.

libcc1/
* libcp1plugin.cc (plugin_build_decl): Use ovl_op_identifier.
Directly set operator code.
(plugin_build_dependent_expr): Use ovl_op_identifier.

From-SVN: r254267

7 years ago[BRIGFE] Fix PR 82771.
Henry Linjamäki [Tue, 31 Oct 2017 13:00:53 +0000 (13:00 +0000)]
[BRIGFE] Fix PR 82771.

From-SVN: r254265

7 years agoRemove semicolon after do {} while (false) in HSA_LOG
Tom de Vries [Tue, 31 Oct 2017 12:56:41 +0000 (12:56 +0000)]
Remove semicolon after do {} while (false) in HSA_LOG

2017-10-31  Tom de Vries  <tom@codesourcery.com>

* plugin/plugin-hsa.c (HSA_LOG): Remove semicolon after
"do {} while (false)".
(init_single_kernel, GOMP_OFFLOAD_async_run): Add missing semicolon
after HSA_DEBUG call.

From-SVN: r254264

7 years ago[C++ PATCH] overloaded operator fns [1/N]
Nathan Sidwell [Tue, 31 Oct 2017 12:50:19 +0000 (12:50 +0000)]
[C++ PATCH] overloaded operator fns [1/N]

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02315.html
* cp-tree.h (assign_op_identifier, call_op_identifier): Define.
(LAMBDA_FUNCTION_P): Use DECL_OVERLOADED_OPERATOR_IS.
(DECL_OVERLOADED_OPERATOR_P): Just retuurn true/false.
(DECL_OVERLOADED_OPERATOR_CODE, DECL_OVERLOADED_OPERATOR_IS): Define.
* call.c (add_function_candidate): Use
DECL_OVERLOADED_OPERATOR_IS.
(build_op_call_1): Use call_op_identifier &
DECL_OVERLOADED_OPERATOR_IS.
(build_over_call): Likewise.
(has_trivial_copy_assign_p): Use assign_op_identifier.
(build_special_member_call): Likewise.
* class.c (dfs_declare_virt_assop_and_dtor): Likewise.
(vbase_has_user_provided_move_assign,
classtype_has_move_assign_or_move_ctor_p): Likewise.
* decl.c (duplicate_decls): Use DECL_OVERLOADED_OPERATOR_CODE.
(grok_special_member_properties): Use assign_op_identifier.
(start_preparsed_function): Use DECL_OVERLOADED_OPERATOR_IS.
* decl2.c (mark_used): Use DECL_CONV_FN_P.
* dump.c (dump_access): Delete prototype.
(dump_op): Delete.
(cp_dump_tree): Don't call it.
* lambda.c (lambda_function): Use call_op_identifier.
(maybe_add_lambda_conv_op): Not an overloaded operator.  Remove
unneeded braces.
* mangle.c (write_unqualified_name): Use DECL_OVERLOADED_OPERTOR_CODE.
* method.c (do_build_copy_assign): Use assign_op_identifier.
(synthesize_method): Use DECL_OVERLOADED_OPERATOR_IS.
(get_copy_assign): Use assign_op_identifier.
(synthesized_method_walk): Likewise.
(defaultable_fn_check): Use DECL_OVERLOADED_OPERATOR_IS.
* parser.c (cp_parser_lambda_declarator_opt): Use
call_op_identifier.
* semanitics.c (classtype_has_nothrow_assign_or_copy_p): Use
assign_op_identifier.
* tree.c (special_function_p):  Use DECL_OVERLOADED_OPERATOR_IS.
* typeck.c (check_return_expr): Use DECL_OVERLOADED_OPERATOR_CODE.
(check_return_expr): Use assign_op_identifier.

From-SVN: r254263

7 years agoGCOV: std::vector refactoring III
Martin Liska [Tue, 31 Oct 2017 11:59:32 +0000 (12:59 +0100)]
GCOV: std::vector refactoring III

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

* gcov.c (struct name_map): do not use typedef.
Define operator== and operator<.
(name_search): Remove.
(name_sort): Remove.
(main): Do not allocate names.
(process_file): Add vertical space.
(generate_results): Use std::find.
(release_structures): Do not release memory.
(find_source): Use std::find.

From-SVN: r254262

7 years agoGCOV: Vector refactoring II
Martin Liska [Tue, 31 Oct 2017 11:59:14 +0000 (12:59 +0100)]
GCOV: Vector refactoring II

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

* gcov.c (struct line_info): Remove it's typedef.
(line_info::line_info): Add proper ctor.
(line_info::has_block): Do not use a typedef.
(struct source_info): Do not use typedef.
(circuit): Likewise.
(get_cycles_count): Likewise.
(output_intermediate_file): Iterate via vector iterator.
(add_line_counts): Use std::vector methods.
(accumulate_line_counts): Likewise.
(output_lines): Likewise.

From-SVN: r254261

7 years agoGCOV: std::vector refactoring.
Martin Liska [Tue, 31 Oct 2017 11:58:53 +0000 (12:58 +0100)]
GCOV: std::vector refactoring.

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

* gcov.c (struct source_info): Remove typedef.
(source_info::source_info): Add proper ctor.
(accumulate_line_counts): Use struct, not it's typedef.
(output_gcov_file): Likewise.
(output_lines): Likewise.
(main): Do not allocate an array.
(output_intermediate_file): Use size of vector container.
(process_file): Resize the vector.
(generate_results): Do not preallocate, use newly added vector
lines.
(release_structures): Do not release sources.
(find_source): Use vector methods.
(add_line_counts): Do not use typedef.

From-SVN: r254260

7 years agoGCOV: add support for lines with an unexecuted lines.
Martin Liska [Tue, 31 Oct 2017 11:57:43 +0000 (12:57 +0100)]
GCOV: add support for lines with an unexecuted lines.

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

* doc/gcov.texi: Document that.
* gcov.c (add_line_counts): Mark lines with a non-executed
statement.
(output_line_beginning): Handle such lines.
(output_lines): Pass new argument.
(output_intermediate_file): Print it in intermediate format.
2017-10-31  Martin Liska  <mliska@suse.cz>

* g++.dg/gcov/ternary.C: New test.
* g++.dg/gcov/gcov-threads-1.C (main): Update expected line
count.
* lib/gcov.exp: Support new format for intermediate file format.

From-SVN: r254259

7 years agoGCOV: introduce usage of terminal colors.
Martin Liska [Tue, 31 Oct 2017 11:57:10 +0000 (12:57 +0100)]
GCOV: introduce usage of terminal colors.

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

* color-macros.h: New file.
* diagnostic-color.c: Factor out color related to macros to
color-macros.h.
* doc/gcov.texi: Document -k option.
* gcov.c (INCLUDE_STRING): Include string.h.
(print_usage): Add -k option.
(process_args): Parse it.
(pad_count_string): New function.
(output_line_beginning): Likewise.
(DEFAULT_LINE_START): New macro.
(output_lines): Support color output.

From-SVN: r254258

7 years agoGCOV: document behavior of -fkeep-{static,inline}-functions (PR gcov-profile/82633).
Martin Liska [Tue, 31 Oct 2017 11:55:19 +0000 (12:55 +0100)]
GCOV: document behavior of -fkeep-{static,inline}-functions (PR gcov-profile/82633).

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

PR gcov-profile/82633
* doc/gcov.texi: Document -fkeep-{static,inline}-functions and
their interaction with GCOV infrastructure.
* configure.ac: Add -fkeep-{inline,static}-functions to
coverage_flags.
* configure: Regenerate.

From-SVN: r254257

7 years agore PR target/82772 (GCC crashes as compiling ags_thread.c source file on alpha archit...
Uros Bizjak [Tue, 31 Oct 2017 10:33:12 +0000 (11:33 +0100)]
re PR target/82772 (GCC crashes as compiling ags_thread.c source file on alpha architecture)

PR target/82772
* config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".

From-SVN: r254253

7 years agoSubject: [PATCH] rs6000: Fix crash with big stack clash interval (PR82674)
Segher Boessenkool [Tue, 31 Oct 2017 09:49:40 +0000 (10:49 +0100)]
Subject: [PATCH] rs6000: Fix crash with big stack clash interval (PR82674)

If the user asks for a stack clash probe interval of 64kB, we currently
generate a "stdu rX,-65536(r1)" instruction.  That instruction does not
exist (the offset is a 16-bit signed number).  If the offset is too big
we should force it into a register and generate a "stdux rX,rY,r1"
instruction, instead.

PR target/82674
* config/rs6000/rs6000.md (allocate_stack): Force update interval
into a register if it does not fit into an immediate offset field.

From-SVN: r254252

7 years agoMakefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
Olivier Hainque [Tue, 31 Oct 2017 09:09:33 +0000 (09:09 +0000)]
Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.

2017-10-31  Olivier Hainque  <hainque@adacore.com>

        * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.

From-SVN: r254251

7 years agoGFNI enabling [2/4]
Julia Koval [Tue, 31 Oct 2017 06:20:49 +0000 (07:20 +0100)]
GFNI enabling [2/4]

gcc/
* config.gcc: Add gfniintrin.h.
* config/i386/gfniintrin.h: New.
* config/i386/i386-builtin-types.def (
__builtin_ia32_vgf2p8affineinvqb_v64qi,
__builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
__builtin_ia32_vgf2p8affineinvqb_v32qi
__builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
__builtin_ia32_vgf2p8affineinvqb_v16qi,
__builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
* config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
V64QI_FTYPE_V64QI_V64QI_INT): New types.
* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
* config/i386/immintrin.h: Include gfniintrin.h.
* config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.

gcc/testsuite/
* gcc.target/i386/avx-1.c: Handle new intrinsics.
* gcc.target/i386/avx512-check.h: Check GFNI bit.
* gcc.target/i386/avx512f-gf2p8affineinvqb-2.c: Runtime test.
* gcc.target/i386/avx512vl-gf2p8affineinvqb-2.c: Runtime test.
* gcc.target/i386/gfni-1.c: New.
* gcc.target/i386/gfni-2.c: New.
* gcc.target/i386/gfni-3.c: New.
* gcc.target/i386/gfni-4.c: New.
* gcc.target/i386/i386.exp: (check_effective_target_gfni): New.
* gcc.target/i386/sse-12.c: Handle new intrinsics.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* g++.dg/other/i386-2.C: Ditto.
* g++.dg/other/i386-3.C: Ditto.

From-SVN: r254250

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

From-SVN: r254249

7 years ago* gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
Eric Botcazou [Mon, 30 Oct 2017 23:19:21 +0000 (23:19 +0000)]
* gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.

From-SVN: r254246

7 years agore PR c++/67595 (concepts code causes segfault)
Paolo Carlini [Mon, 30 Oct 2017 22:41:21 +0000 (22:41 +0000)]
re PR c++/67595 (concepts code causes segfault)

2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67595
* g++.dg/concepts/pr67595.C: New.

From-SVN: r254245

7 years agore PR libfortran/80850 (Sourced allocate() fails to allocate a pointer)
Paul Thomas [Mon, 30 Oct 2017 22:07:25 +0000 (22:07 +0000)]
re PR libfortran/80850 (Sourced allocate() fails to allocate a pointer)

2017-10-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80850
* trans_expr.c (gfc_conv_procedure_call): When passing a class
argument to an unlimited polymorphic dummy, it is wrong to cast
the passed expression as unlimited, unless it is unlimited. The
correct way is to assign to each of the fields and set the _len
field to zero.

2017-10-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80850
* gfortran.dg/class_64_f90 : New test.

From-SVN: r254244

7 years agopr82725.C: Move to ...
Uros Bizjak [Mon, 30 Oct 2017 20:05:20 +0000 (21:05 +0100)]
pr82725.C: Move to ...

* g++.dg/pr82725.C: Move to ...
* g++.dg/cpp0x/pr82725.C: ... here.  Add c++11 target directive.

From-SVN: r254242

7 years agoresolve.c (resolve_transfer): Set derived to correct symbol for BT_CLASS.
Steven G. Kargl [Mon, 30 Oct 2017 19:33:12 +0000 (19:33 +0000)]
resolve.c (resolve_transfer): Set derived to correct symbol for BT_CLASS.

2017-10-30  Steven G. Kargl   <kargl@gcc.gnu.org>

* resolve.c (resolve_transfer): Set derived to correct symbol for
BT_CLASS.

2017-10-30  Steven G. Kargl   <kargl@gcc.gnu.org>

* gfortran.dg/dtio_13.f90: Remove TODO comment and dg-error test.

From-SVN: r254241

7 years agore PR c++/82085 (ICE: Template variable reference used in nested template alias)
Paolo Carlini [Mon, 30 Oct 2017 19:16:29 +0000 (19:16 +0000)]
re PR c++/82085 (ICE: Template variable reference used in nested template alias)

/cp
2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82085
* pt.c (tsubst_copy_and_build, [INDIRECT_REF]): For a REFERENCE_REF_P,
unconditionally call convert_from_reference.

/testsuite
2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82085
* g++.dg/cpp1y/var-templ56.C: New.

From-SVN: r254239

7 years ago[C++ PATCH] operator name cleanup prepatch
Nathan Sidwell [Mon, 30 Oct 2017 19:04:53 +0000 (19:04 +0000)]
[C++ PATCH] operator name cleanup prepatch

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02240.html
cp/
* call.c (build_op_call_1): Test for FUNCTION_DECL in same manner
as a few lines earlier.
* cp-tree.h (PACK_EXPANSION_PATTERN): Fix white space.
* decl.c (grokfndecl): Fix indentation.
(compute_array_index_type): Use processing_template_decl_sentinel.
(grok_op_properties): Move warnings to end.  Reorder other checks
to group similar entities.  Tweak diagnostics.
* lex.c (unqualified_name_lookup_error): No need to check name is
not ERROR_MARK operator.
* parser.c (cp_parser_operator): Select operator code before
looking it up.
* typeck.c (check_return_expr): Fix indentation and line wrapping.

testsuite/

* g++.dg/other/operator2.C: Adjust diagnostic.
* g++.old-deja/g++.jason/operator.C: Likewise.

From-SVN: r254238

7 years agoRemove DImode expansions for 1-bit shifts
Wilco Dijkstra [Mon, 30 Oct 2017 18:46:02 +0000 (18:46 +0000)]
Remove DImode expansions for 1-bit shifts

A left shift of 1 can always be done using an add, so slightly adjust rtx
cost for DImode left shift by 1 so that adddi3 is preferred in all cases,
and the arm_ashldi3_1bit is redundant.

DImode right shifts of 1 are rarely used (6 in total in the GCC binary),
so there is little benefit of the arm_ashrdi3_1bit and arm_lshrdi3_1bit
patterns.  The generated code is better and faster without these shifts
as it allows early expansion, optimization and better register allocation.

    gcc/
* config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
(arm_ashldi3_1bit): Remove pattern.
(ashrdi3): Remove shift by 1 expansion.
(arm_ashrdi3_1bit): Remove pattern.
(lshrdi3): Remove shift by 1 expansion.
(arm_lshrdi3_1bit): Remove pattern.
* config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
cost of ashldi3 by 1.
* config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
(<shift>di3_neon): Likewise.

From-SVN: r254237

7 years agoWrong type-attribute for stp and str
Dominik Infuehr [Mon, 30 Oct 2017 18:35:32 +0000 (18:35 +0000)]
Wrong type-attribute for stp and str

Fix the type attributes of the integer stores in aarch64_simd_mov.

    gcc/
* config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
both identically named patterns to (*aarch64_simd_mov<VD:mode>)
and (*aarch64_simd_mov<VQ:mode>).
(*aarch64_simd_mov<VD:mode>): Change type attribute to match
pattern alternative.
(*aarch64_simd_mov<VQ:mode>): Re-order and change type
attributes to match pattern alternative.

From-SVN: r254236

7 years agoPart 2/2 for contributing PPC64LE support for X86 SSE2 instrisics.
Steven Munroe [Mon, 30 Oct 2017 18:32:07 +0000 (18:32 +0000)]
Part 2/2 for contributing PPC64LE support for X86 SSE2 instrisics.
This patch includes testsuite/gcc.target tests for the intrinsics
in emmintrin.h.  For these tests I added -Wno-psabi to dg-options
to suppress warnings associated with the vector ABI change in GCC5.

From-SVN: r254235

7 years agoPart 1/2 for contributing PPC64LE support for X86 SSE2 instrisics.
Steven Munroe [Mon, 30 Oct 2017 18:28:36 +0000 (18:28 +0000)]
Part 1/2 for contributing PPC64LE support for X86 SSE2 instrisics.

Part 1/2 for contributing PPC64LE support for X86 SSE2
instrisics. This patch includes the new (for PPC) emmintrin.h,
changes x86intrin.h to include xmmintrin.h, and associated
config.gcc changes.

From-SVN: r254234

7 years agobackport: unnecessary duplication and repeating bugs like PR78439 due to changes...
Wilco Dijkstra [Mon, 30 Oct 2017 18:01:59 +0000 (18:01 +0000)]
backport: unnecessary duplication and repeating bugs like PR78439 due to changes being applied only to one of the duplicates.

Merge the movdi_vfp_cortexa8 pattern into movdi_vfp and remove it to avoid
unnecessary duplication and repeating bugs like PR78439 due to changes being
applied only to one of the duplicates.

    gcc/
        * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
        * (movdi_vfp_cortexa8): Remove pattern.

From-SVN: r254233

7 years agoRemove Tru64 UNIX and IRIX references in install.texi
Rainer Orth [Mon, 30 Oct 2017 16:43:40 +0000 (16:43 +0000)]
Remove Tru64 UNIX and IRIX references in install.texi

* doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
etc. reference.
(Specific, alpha*-dec-osf5.1): Remove.
(Specific, mips-sgi-irix5): Remove.
(Specific, mips-sgi-irix6): Remove.

From-SVN: r254230

7 years agoDon't create broken symlink in libstdc++-v3/include/bits
Jonathan Wakely [Mon, 30 Oct 2017 16:28:13 +0000 (16:28 +0000)]
Don't create broken symlink in libstdc++-v3/include/bits

* include/Makefile.am (stamp-bits-sup): Do not create broken symlink
to stamp-bits.
* include/Makefile.in: Regenerate.

From-SVN: r254229

7 years agore PR middle-end/22141 (Missing optimization when storing structures)
Jakub Jelinek [Mon, 30 Oct 2017 16:20:24 +0000 (17:20 +0100)]
re PR middle-end/22141 (Missing optimization when storing structures)

PR middle-end/22141
* gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
arguments to clear_bit_region_be.

From-SVN: r254228

7 years agoFix ia64 build failure.
James E Wilson [Mon, 30 Oct 2017 15:38:30 +0000 (08:38 -0700)]
Fix ia64 build failure.

gcc/
* gimplify.c: Include memmodel.h.

From-SVN: r254227

7 years agoRemove ios_mode::trunc from basic_ofstream openmode arguments
Jonathan Wakely [Mon, 30 Oct 2017 15:35:02 +0000 (15:35 +0000)]
Remove ios_mode::trunc from basic_ofstream openmode arguments

* include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
Remove outdated comments about calling c_str() to create a file stream
from a std::string.
(basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
redundant ios_mode::trunc bits from default arguments and comments.

From-SVN: r254226

7 years ago[hsa] Add missing guard in OMP gridification
Martin Jambor [Mon, 30 Oct 2017 15:07:20 +0000 (16:07 +0100)]
[hsa] Add missing guard in OMP gridification

2017-10-30  Martin Jambor  <mjambor@suse.cz>

* omp-grid.c (grid_attempt_target_gridification): Also insert a
condition whether loop should be executed at all.

From-SVN: r254225

7 years agoMinor tweak to libstdc++ FAQ
Jonathan Wakely [Mon, 30 Oct 2017 14:56:23 +0000 (14:56 +0000)]
Minor tweak to libstdc++ FAQ

* doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.

From-SVN: r254224

7 years agoMinor header reorganization for unordered containers
Jonathan Wakely [Mon, 30 Oct 2017 14:54:28 +0000 (14:54 +0000)]
Minor header reorganization for unordered containers

* include/bits/hashtable_policy.h: Include <tuple>.
* include/std/unordered_map: Only include <bits/stl_pair.h> instead
of <utility> and <tuple>.
* include/std/unordered_set: Likewise.

From-SVN: r254223

7 years agoImplement LWG 2485
Ville Voutilainen [Mon, 30 Oct 2017 14:31:04 +0000 (16:31 +0200)]
Implement LWG 2485

* include/debug/array (get(const array<_Tp, _Nm>&&)): New.
* include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
* include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
(get(const tuple<_Types...>&&)): Likewise.
* include/std/utility
(__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
Likewise.
(get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
(get(const pair<_Tp, _Up>&&)): Likewise.
(get(const pair<_Up, _Tp>&&)): Likewise.
* testsuite/20_util/pair/astuple/get.cc: Add tests for
new overloads.
* testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r254222

7 years agors6000.c (rs6000_gimple_fold_builtin): Add support for gimple folding of vec_madd...
Will Schmidt [Mon, 30 Oct 2017 14:10:17 +0000 (14:10 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add support for gimple folding of vec_madd() intrinsics.

[gcc]

2017-10-30  Will Schmidt <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
gimple folding of vec_madd() intrinsics.
* config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
* config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4

From-SVN: r254221

7 years agofold-vec-perm-longlong.c: Update to use long long types for testcase arguments.
Will Schmidt [Mon, 30 Oct 2017 14:03:15 +0000 (14:03 +0000)]
fold-vec-perm-longlong.c: Update to use long long types for testcase arguments.

2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-perm-longlong.c: Update to use long long
types for testcase arguments.

From-SVN: r254220

7 years agore PR lto/82757 (r251560 causes: plugin needed to handle lto object)
Richard Biener [Mon, 30 Oct 2017 12:48:53 +0000 (12:48 +0000)]
re PR lto/82757 (r251560 causes: plugin needed to handle lto object)

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

PR lto/82757
* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
Strip two leading _s from the __gnu_lto_* symbols.

From-SVN: r254219

7 years agorevert: [multiple changes]
Richard Biener [Mon, 30 Oct 2017 12:45:53 +0000 (12:45 +0000)]
revert: [multiple changes]

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

PR tree-optimization/82762
Revert
2017-10-23  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82129
Revert
2017-08-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81181
* tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
(compute_antic): ... end of iteration here.

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

From-SVN: r254218

7 years agogimple-parser.c (c_parser_gimple_statement): Parse conditional stmts.
Richard Biener [Mon, 30 Oct 2017 12:43:45 +0000 (12:43 +0000)]
gimple-parser.c (c_parser_gimple_statement): Parse conditional stmts.

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

c/
* gimple-parser.c (c_parser_gimple_statement): Parse conditional
stmts.

* gcc.dg/gimplefe-27.c: New testcase.

From-SVN: r254217

7 years agoAdd -std=c17, -std=gnu17.
Joseph Myers [Mon, 30 Oct 2017 12:17:40 +0000 (12:17 +0000)]
Add -std=c17, -std=gnu17.

C17, a bug-fix version of the C11 standard with DR resolutions
integrated, will soon go to ballot.  This patch adds corresponding
options -std=c17, -std=gnu17 (new default version, replacing
-std=gnu11 as the default), -std=iso9899:2017.  As a bug-fix version
of the standard, there is no need for flag_isoc17 or any options for
compatibility warnings; however, there is a new __STDC_VERSION__
value, so new cpplib languages CLK_GNUC17 and CLK_STDC17 are added to
support using that new value with the new options.  (If the standard
ends up being published in 2018 and being known as C18, option aliases
can be added.  Note however that -std=iso9899:199409 corresponds to a
__STDC_VERSION__ value rather than a publication date.)

(There are a couple of DR resolutions needing implementing in GCC, but
that's independent of the new options.)

(I'd propose to add -std=c2x / -std=gnu2x / -Wc11-c2x-compat for the
next major C standard revision once there are actually C2x drafts
being issued with new features included.)

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

gcc:
* doc/invoke.texi (C Dialect Options): Document -std=c17,
-std=iso9899:2017 and -std=gnu17.
* doc/standards.texi (C Language): Document C17 support.
* doc/cpp.texi (Overview): Mention -std=c17.
(Standard Predefined Macros): Document C11 and C17 values of
__STDC_VERSION__.  Do not refer to C99 support as incomplete.
* doc/extend.texi (Inline): Do not list individual options for
standards newer than C99.
* dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
"GNU C17".
* config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
language name.

gcc/c-family:
* c.opt (std=c17, std=gnu17, std=iso9899:2017): New options.
* c-opts.c (set_std_c17): New function.
(c_common_init_options): Use gnu17 as default C version.
(c_common_handle_option): Handle -std=c17 and -std=gnu17.

gcc/testsuite:
* gcc.dg/c17-version-1.c, gcc.dg/c17-version-2.c: New tests.

libcpp:
* include/cpplib.h (enum c_lang): Add CLK_GNUC17 and CLK_STDC17.
* init.c (lang_defaults): Add GNUC17 and STDC17 data.
(cpp_init_builtins): Handle C17 value of __STDC_VERSION__.

From-SVN: r254216

7 years agoasan.c (asan_finish_file): Align asan globals array by shadow granularity.
Maxim Ostapenko [Mon, 30 Oct 2017 11:09:44 +0000 (11:09 +0000)]
asan.c (asan_finish_file): Align asan globals array by shadow granularity.

2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>

* asan.c (asan_finish_file): Align asan globals array by shadow
granularity.

From-SVN: r254214

7 years agore PR middle-end/22141 (Missing optimization when storing structures)
Jakub Jelinek [Mon, 30 Oct 2017 11:04:49 +0000 (12:04 +0100)]
re PR middle-end/22141 (Missing optimization when storing structures)

PR middle-end/22141
* gimple-ssa-store-merging.c: Include rtl.h and expr.h.
(struct store_immediate_info): Add bitregion_start and bitregion_end
fields.
(store_immediate_info::store_immediate_info): Add brs and bre
arguments and initialize bitregion_{start,end} from those.
(struct merged_store_group): Add bitregion_start, bitregion_end,
align_base and mask fields.  Drop unnecessary struct keyword from
struct store_immediate_info.  Add do_merge method.
(clear_bit_region_be): Use memset instead of loop storing zeros.
(merged_store_group::do_merge): New method.
(merged_store_group::merge_into): Use do_merge.  Allow gaps in between
stores as long as the surrounding bitregions have no gaps.
(merged_store_group::merge_overlapping): Use do_merge.
(merged_store_group::apply_stores): Test that bitregion_{start,end}
is byte aligned, rather than requiring that start and width are
byte aligned.  Drop unnecessary struct keyword from
struct store_immediate_info.  Allocate and populate also mask array.
Make start of the arrays relative to bitregion_start rather than
start and size them according to bitregion_{end,start} difference.
(struct imm_store_chain_info): Drop unnecessary struct keyword from
struct store_immediate_info.
(pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
(pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
struct keyword from struct store_immediate_info.
(imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
between stores as long as the surrounding bitregions have no gaps.
Formatting fixes.
(struct split_store): Add orig non-static data member.
(split_store::split_store): Initialize orig to false.
(find_constituent_stmts): Return store_immediate_info *, non-NULL
if there is exactly a single original stmt.  Change stmts argument
to pointer from reference, if NULL, don't push anything to it.  Add
first argument, use it to optimize skipping over orig stmts that
are known to be before bitpos already.  Simplify.
(split_group): Return unsigned int count how many stores are or
would be needed rather than a bool.  Add allow_unaligned argument.
Change split_stores argument from reference to pointer, if NULL,
only do a dry run computing how many stores would be produced.
Rewritten algorithm to use both alignment and misalign if
!allow_unaligned and handle bitfield stores with gaps.
(imm_store_chain_info::output_merged_store): Set start_byte_pos
from bitregion_start instead of start.  Compute allow_unaligned
here, if true, do 2 split_group dry runs to compute which one
produces fewer stores and prefer aligned if equal.  Punt if
new count is bigger or equal than original before emitting any
statements, rather than during that.  Remove no longer needed
new_ssa_names tracking.  Replace num_stmts with
split_stores.length ().  Use 32-bit stack allocated entries
in split_stores auto_vec.  Try to reuse original store lhs/rhs1
if possible.  Handle bitfields with gaps.
(pass_store_merging::execute): Ignore bitsize == 0 stores.
Compute bitregion_{start,end} for the stores and construct
store_immediate_info with that.  Formatting fixes.

* gcc.dg/store_merging_10.c: New test.
* gcc.dg/store_merging_11.c: New test.
* gcc.dg/store_merging_12.c: New test.
* g++.dg/pr71694.C: Add -fno-store-merging to dg-options.

From-SVN: r254213

7 years agore PR target/82725 ([x86_64] internal compiler error: in change_address_1, at emit...
Uros Bizjak [Mon, 30 Oct 2017 10:33:40 +0000 (11:33 +0100)]
re PR target/82725 ([x86_64] internal compiler error: in change_address_1, at emit-rtl.c:2162)

PR target/82725
* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.

testsuite/ChangeLog:

PR target/82725
* g++.dg/pr82725.C: New test.

From-SVN: r254212

7 years agoFix cygwin builds, broken by PR sanitizer/82517 fix.
James E Wilson [Mon, 30 Oct 2017 01:57:59 +0000 (18:57 -0700)]
Fix cygwin builds, broken by PR sanitizer/82517 fix.

gcc/
* gimplify.c: Include tm_p.h.

From-SVN: r254211

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

From-SVN: r254210

7 years agoEmit a no longer supported warning for gcoff* options.
James E Wilson [Sun, 29 Oct 2017 23:01:36 +0000 (16:01 -0700)]
Emit a no longer supported warning for gcoff* options.

gcc/
* common.opt (gcoff): Re-add as ignored option.
(gcoff1, gcoff2, gcoff3): Likewise.

From-SVN: r254207

7 years agoDelete obsolete SDB debug info support.
James E Wilson [Sun, 29 Oct 2017 22:45:41 +0000 (15:45 -0700)]
Delete obsolete SDB debug info support.

gcc/
* Makefile.in (OBJS): Delete sdbout.o.
(GTFILES): Delete $(srcdir)/sdbout.c.
* debug.h: Delete sdb_debug_hooks.
* final.c: Delete sdbout.h include.
(final_scan_insn): Delete SDB_DEBUG check.
(rest_of_clean_state): Likewise.
* output.h: Delete sdb_begin_function_line.
* sdbout.c: Delete.
* sdbout.h: Delete.
* toplev.c: Delete sdbout.h include.
(process_options): Delete SDB_DEBUG check.
* tree-core.h (tree_type_common): Delete pointer field of
tree_type_symtab.
* tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
TYPE_SYMTAB_POINTER.
* tree.h (TYPE_SYMTAB_POINTER): Delete.
(TYPE_SYMTAB_IS_POINTER): Delete.
(TYPE_SYMTAB_IS_DIE): Renumber.
* xcoffout.c: Refer to former sdbout.c file.
(xcoffout_begin_prologue): Use past tense for sdbout.c reference.

* doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
* doc/invoke.texi (SEEALSO): Delete adb and sdb references.
(Debugging Options): Delete -gcoff.
(-gstabs): Delete SDB reference.
(-gcoff): Delete.
(-gcoff@var{level}): Delete.
* doc/passes.texi (Debugging information output): Delete SDB and
sdbout.c references.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
(SDB and DWARF): Change node name to DWARF and delete SDB and COFF
references.
(DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
(PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
(SDB_DEBUGGING_INFO): Delete.
(PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
* target.def (output_source_filename): Delete COFF reference.

* common.opt (gcoff): Delete.
(gxcoff+): Update Negative chain.
* defaults.h: Delete all references to SDB_DEBUGGING_INFO and
SDB_DEBUG.
* dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
* flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
* function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
and SDB references.
(expand_function_start): Change sdb reference to past tense.
(expand_function_end): Change sdb reference to past tense.
* gcc.c (cpp_unique_options): Delete gcoff3 reference.
* opts.c (debug_type_names): Delete coff entry.
(common_handle_option): Delete OPT_gcoff case.
* system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.

* config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
* config/cris/cris.h: Delete SDB reference in comment.
* config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
(ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
* config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
* config/i386/i386.c (svr4_dbx_register_map): Change SDB references
to past tense.
(ix86_expand_prologue): Likewise.
* config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
* config/ia64/ia64.h: Likewise.
* config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
* config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
support.
* config/mmix/mmix.h: Likewise.
* config/nds32/nds32.c: Likewise.
* config/stormy/storym16.h: Likewise.
* config/visium/visium.h: Likewise.
* config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.

gcc/fortran/
* invoke.texi: Delete adb and sdb references.

gccc/testsuite/
* lib/gcc-dg.exp (gcc-dg-debug-runtest): Delete -gcoff.
* lib/gfortran-dg.exp (gfortran-dg-debug-runtest): Delete
-gcoff.

From-SVN: r254206

7 years ago* gcc.dg/torture/pr82692.c: Move from gcc.target/i386.
Uros Bizjak [Sun, 29 Oct 2017 07:31:56 +0000 (08:31 +0100)]
* gcc.dg/torture/pr82692.c: Move from gcc.target/i386.

From-SVN: r254205

7 years agonios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
Sandra Loosemore [Sun, 29 Oct 2017 02:55:32 +0000 (22:55 -0400)]
nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.

2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
* config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
FRAME_POINTER_REGNUM point at high end of local var area.

From-SVN: r254204

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

From-SVN: r254203

7 years ago* ChangeLog: Fix whitespace.
Uros Bizjak [Sat, 28 Oct 2017 19:42:06 +0000 (21:42 +0200)]
* ChangeLog: Fix whitespace.

From-SVN: r254200

7 years agore PR c++/70971 (ICE in parameter pack expansion)
Paolo Carlini [Sat, 28 Oct 2017 16:10:10 +0000 (16:10 +0000)]
re PR c++/70971 (ICE in parameter pack expansion)

2017-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70971
* g++.dg/torture/pr70971.C: New.

From-SVN: r254199

7 years agocheck.c (gfc_check_co_reduce): Clarify error message.
Andre Vehreschild [Sat, 28 Oct 2017 12:10:59 +0000 (14:10 +0200)]
check.c (gfc_check_co_reduce): Clarify error message.

gcc/fortran/ChangeLog:

2017-10-28  Andre Vehreschild  <vehre@gcc.gnu.org>

* check.c (gfc_check_co_reduce): Clarify error message.

From-SVN: r254197

7 years agore PR fortran/81758 ([OOP] Broken vtab)
Paul Thomas [Sat, 28 Oct 2017 08:49:26 +0000 (08:49 +0000)]
re PR fortran/81758 ([OOP] Broken vtab)

2017-10-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/81758
* trans-expr.c (trans_class_vptr_len_assignment): 'vptr_expr'
must only be set if the right hand side expression is of type
class.

2017-10-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/81758
* gfortran.dg/class_63.f90: New test.

From-SVN: r254195

7 years agotarget.c (struct gomp_coalesce_buf): New type.
Jakub Jelinek [Sat, 28 Oct 2017 07:02:39 +0000 (09:02 +0200)]
target.c (struct gomp_coalesce_buf): New type.

* target.c (struct gomp_coalesce_buf): New type.
(MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
(gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
(gomp_copy_host2dev): Add CBUF argument, if copying into
the cached ranges, memcpy into buffer instead of copying
into device.
(gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
Add CBUF argument, pass it through to other calls.
(gomp_map_vars): Aggregate copies from host to device if small enough
and with small enough gaps in between into memcpy into a buffer and
fewer host to device copies from the buffer.
(gomp_update): Adjust gomp_copy_host2dev caller.

From-SVN: r254194

7 years agore PR fortran/82620 ([PDT] ICE: free_expr0(): Bad expr type (at fortran/expr.c:497))
Steven G. Kargl [Sat, 28 Oct 2017 01:06:18 +0000 (01:06 +0000)]
re PR fortran/82620 ([PDT] ICE: free_expr0(): Bad expr type (at fortran/expr.c:497))

2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/82620
* match.c (gfc_match_allocate): Exit early on syntax error.

2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/82620
* gfortran.dg/allocate_error_7.f90: new test.

From-SVN: r254193

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

From-SVN: r254192

7 years agore PR c++/82218 ([C++1x] constexpr on static member function causes segfault)
Paolo Carlini [Fri, 27 Oct 2017 23:14:43 +0000 (23:14 +0000)]
re PR c++/82218 ([C++1x] constexpr on static member function causes segfault)

2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82218
* g++.dg/cpp1y/constexpr-82218.C: New.

From-SVN: r254189

7 years agobb-reorder.c (find_traces_1_round): Fix off-by-one index.
Eric Botcazou [Fri, 27 Oct 2017 22:55:59 +0000 (22:55 +0000)]
bb-reorder.c (find_traces_1_round): Fix off-by-one index.

* bb-reorder.c (find_traces_1_round): Fix off-by-one index.
Move comment around.  Do not reset best_edge for a copiable
destination if the copy would cause a partition change.
(better_edge_p): Remove redundant check.

From-SVN: r254188

7 years agoPR target/82268 Correct FAIL when configured --with-cpu
Daniel Santos [Fri, 27 Oct 2017 22:15:32 +0000 (22:15 +0000)]
PR target/82268 Correct FAIL when configured --with-cpu

* gcc.target/i386/pr82196-1.c (dg-options): Add -mno-avx.

From-SVN: r254186

7 years agoi386-protos.h (ix86_fp_compare_mode): Remove prototype.
Uros Bizjak [Fri, 27 Oct 2017 21:52:26 +0000 (23:52 +0200)]
i386-protos.h (ix86_fp_compare_mode): Remove prototype.

* config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.

From-SVN: r254184

7 years agobuiltins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions...
Michael Meissner [Fri, 27 Oct 2017 18:15:38 +0000 (18:15 +0000)]
builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions that have _Float<N> and...

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

* builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
for math functions that have _Float<N> and _Float<N>X variants.
(mathfn_built_in_2): Add support for math functions that have
_Float<N> and _Float<N>X variants.
(DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
(expand_builtin_mathfn_ternary): Add support for fma with
_Float<N> and _Float<N>X variants.
(expand_builtin): Likewise.
(fold_builtin_3): Likewise.
* builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
create math function _Float<N> and _Float<N>X variants as external
library builtins.
(BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
the __builtin_ prefix and if not strict ansi, without the prefix.
(BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
(BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
(BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
(BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
(BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
(BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
* builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
function signatures for fma _Float<N> and _Float<N>X variants.
(BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
(BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
(BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
(BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
(BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
(BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
* gencfn-macros.c (print_case_cfn): Add support for math functions
that have _Float<N> and _Float<N>X variants.
(print_define_operator_list): Likewise.
(fltfn_suffixes): Likewise.
(main): Likewise.
* internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
for math functions that have _Float<N> and _Float<N>X variants.
(SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
and _Float<N>X variants.
(COPYSIGN): Likewise.
(FMIN): Likewise.
(FMAX): Likewise.
* fold-const.c (tree_call_nonnegative_warnv_p): Add support for
copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
variants.
(integer_valued_read_call_p): Likewise.
* fold-const-call.c (fold_const_call_ss): Likewise.
(fold_const_call_sss): Add support for copysign, fmin, and fmax
_Float<N> and _Float<N>X variants.
(fold_const_call_ssss): Add support for fma _Float<N> and
_Float<N>X variants.
* gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
support for copysign and fma _Float<N> and _Float<N>X variants.
(backprop::process_builtin_call_use): Likewise.
* tree-call-cdce.c (can_test_argument_range); Add support for
sqrt _Float<N> and _Float<N>X variants.
(edom_only_function): Likewise.
(get_no_error_domain): Likewise.
* tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
* tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
copysign _Float<N> and _Float<N>X variants.
* config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
handled by machine independent code.
(FMAF128): Likewise.
* doc/cpp.texi (Common Predefined Macros): Document defining
__FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
fma _Float<N> and _Float<N>X variants.

[gcc/c]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

* c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.

[gcc/c-family]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

* c-cppbuiltin.c (mode_has_fma): Add support for PowerPC KFmode.
(c_cpp_builtins): If a machine has a fast fma _Float<N> and
_Float<N>X variant, define __FP_FAST_FMA<N> and/or
__FP_FAST_FMA<N>X.

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

* gcc.target/powerpc/float128-hw.c: Add support for all 4 FMA
variants.  Check various conversions to/from float128.  Check
negation.  Use {\m...\M} in the tests.
* gcc.target/powerpc/float128-hw2.c: New test for implicit
_Float128 math functions.
* gcc.target/powerpc/float128-hw3.c: New test for strict ansi mode
not implicitly adding the _Float128 math functions.
* gcc.target/powerpc/float128-fma2.c: Delete, test is no longer
valid.
* gcc.target/powerpc/float128-sqrt2.c: Likewise.

From-SVN: r254168

7 years agore PR target/82692 (Ordered comparisons used for unordered built-ins)
Uros Bizjak [Fri, 27 Oct 2017 18:13:14 +0000 (20:13 +0200)]
re PR target/82692 (Ordered comparisons used for unordered built-ins)

PR target/82692
* config/i386/i386-modes.def (CCFPU): Remove definition.
* config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
(ix86_cc_modes_compatible): Ditto.
(ix86_expand_carry_flag_compare): Ditto.
(ix86_expand_int_movcc): Ditto.
(ix86_expand_int_addcc): Ditto.
(ix86_reverse_condition): Ditto.
(ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
Return true/false for unordered/ordered fp comparisons.
(ix86_cc_mode): Always return CCFPmode for float mode comparisons.
(ix86_prepare_fp_compare_args): Update for rename.
(ix86_expand_fp_compare): Update for rename.  Generate unordered
compare RTXes wrapped with UNSPEC_NOTRAP unspec.
(ix86_expand_sse_compare_and_jump): Ditto.
* config/i386/predicates.md (fcmov_comparison_operator):
Remove CCFPU mode handling.
(ix86_comparison_operator): Ditto.
(ix86_carry_flag_operator): Ditto.
* config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
(*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
(*cmpu<mode>_cc_i387): Ditto.
(FPCMP): Remove mode iterator.
(unord): Remove mode attribute.
(unord_subst): New define_subst transformation
(unord): New define_subst attribute.
(unordered): Ditto.
(*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
(*cmpi<unord>xf_i387): Ditto.
* config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
using unord_subst transformation.
* config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
(round_saeonly): Also handle CCFP mode.
* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
Remove UNSPEC_SAHF unspec handling.

testsuite/ChangeLog:

PR target/82692
* gcc.dg/torture/pr82692.c: New test.

From-SVN: r254167

7 years ago* x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
Jan Hubicka [Fri, 27 Oct 2017 18:05:14 +0000 (20:05 +0200)]
* x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.

From-SVN: r254166

7 years agofold-vec-neg-char.c: New.
Will Schmidt [Fri, 27 Oct 2017 17:52:55 +0000 (17:52 +0000)]
fold-vec-neg-char.c: New.

[testsuite]

2017-10-27  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-neg-char.c: New.
* gcc.target/powerpc/fold-vec-neg-floatdouble.c: New.
* gcc.target/powerpc/fold-vec-neg-int.c: New.
* gcc.target/powerpc/fold-vec-neg-longlong.c: New.
* gcc.target/powerpc/fold-vec-neg-short.c: New.

From-SVN: r254164

7 years agore PR libfortran/81938 (valgrind error message and heap-buffer-overflow on address...
Jerry DeLisle [Fri, 27 Oct 2017 17:50:22 +0000 (17:50 +0000)]
re PR libfortran/81938 (valgrind error message and heap-buffer-overflow on address sanitized libgfortran.so)

2017-10-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
    Rimvydas (RJ)

PR libgfortran/81938
io/format.c (free_format_data): Don't try to free vlist
descriptors past the end of the fnode array.

From-SVN: r254163

7 years agoSimplify _Node_insert_return to avoid including <tuple>
Jonathan Wakely [Fri, 27 Oct 2017 17:49:36 +0000 (18:49 +0100)]
Simplify _Node_insert_return to avoid including <tuple>

* include/bits/node_handle.h (_Node_insert_return::get): Avoid
use of std::tie and std::get.

From-SVN: r254162

7 years agoList headers in Makefile in alphabetical order
Jonathan Wakely [Fri, 27 Oct 2017 17:49:32 +0000 (18:49 +0100)]
List headers in Makefile in alphabetical order

* include/Makefile.am: Put headers in alphabetical order.
* include/Makefile.in: Regenerate.

From-SVN: r254161

7 years agoRemove noexcept from filesystem iterators and operations (LWG 3013, 3014)
Jonathan Wakely [Fri, 27 Oct 2017 17:49:29 +0000 (18:49 +0100)]
Remove noexcept from filesystem iterators and operations (LWG 3013, 3014)

* include/bits/fs_dir.h (directory_iterator): Remove noexcept from
constructors and increment member (LWG 3013).
(recursive_directory_iterator): Likewise.
* include/bits/fs_ops.h (copy, copy_file, create_directories)
(is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
* src/filesystem/std-dir.cc (directory_iterator::increment)
(recursive_directory_iterator::increment): Remove noexcept.
* src/filesystem/std-ops.cc (copy, copy_file, create_directories)
(is_empty, remove_all): Remove noexcept

From-SVN: r254160

7 years agoMake filesystem::file_status default constructor non-explicit (LWG 2787)
Jonathan Wakely [Fri, 27 Oct 2017 17:49:21 +0000 (18:49 +0100)]
Make filesystem::file_status default constructor non-explicit (LWG 2787)

* include/bits/fs_dir.h (file_status): Make default constructor
non-explicit (LWG 2787).
* testsuite/27_io/filesystem/file_status/1.cc: New test.
* testsuite/experimental/filesystem/file_status/1.cc: New test.

From-SVN: r254159

7 years agopt.c (invalid_nontype_parm_type_p): Return a bool instead of an int.
Paolo Carlini [Fri, 27 Oct 2017 17:32:58 +0000 (17:32 +0000)]
pt.c (invalid_nontype_parm_type_p): Return a bool instead of an int.

2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (invalid_nontype_parm_type_p): Return a bool instead of an int.

From-SVN: r254158

7 years agore PR fortran/56342 (MATMUL with PARAMETER: Simplification usually doesn't work)
Thomas Koenig [Fri, 27 Oct 2017 17:11:42 +0000 (17:11 +0000)]
re PR fortran/56342 (MATMUL with PARAMETER: Simplification usually doesn't work)

2017-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/56342
* simplify.c (is_constant_array_expr): If the expression is
a parameter array, call gfc_simplify_expr.

2017-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/56342
* gfortran.dg/matmul_const.f90: New test.

From-SVN: r254157

7 years agogimple-ssa-sprintf.c: Include domwalk.h.
Jeff Law [Fri, 27 Oct 2017 16:54:49 +0000 (10:54 -0600)]
gimple-ssa-sprintf.c: Include domwalk.h.

* gimple-ssa-sprintf.c: Include domwalk.h.
(class sprintf_dom_walker): New class, derived from dom_walker.
(sprintf_dom_walker::before_dom_children): New function.
(struct call_info): Moved into sprintf_dom_walker class
(compute_formath_length, handle_gimple_call): Likewise.
(sprintf_length::execute): Call the dominator walker rather
than walking the statements.

From-SVN: r254156

7 years agotree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple statement...
Jeff Law [Fri, 27 Oct 2017 15:35:37 +0000 (09:35 -0600)]
tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple statement locations.

* tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
gimple statement locations.
(check_array_bounds): Corresponding changes.  Get the statement's
location directly from wi->stmt.

From-SVN: r254154

7 years agoRISC-V: Correct and improve the "-mabi" documentation
Palmer Dabbelt [Fri, 27 Oct 2017 15:22:43 +0000 (15:22 +0000)]
RISC-V: Correct and improve the "-mabi" documentation

The documentation for the "-mabi" argument on RISC-V was incorrect.  We
chose to treat this as a documentation bug rather than a code bug, and
to make the documentation match what GCC currently does.  In the
process, I also improved the documentation a bit.

Thanks to Alex Bradbury for finding the bug!

PR target/82717: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82717

gcc/ChangeLog

2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>

        PR target/82717
        * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.

From-SVN: r254153

7 years agox86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, [...]): Disable for Haswell and newer...
Jan Hubicka [Fri, 27 Oct 2017 14:30:00 +0000 (16:30 +0200)]
x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, [...]): Disable for Haswell and newer CPUs.

* config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
X86_TUNE_MOVX): Disable for Haswell and newer CPUs.

From-SVN: r254152

7 years agoFix profiledbootstrap.
Martin Liska [Fri, 27 Oct 2017 13:13:05 +0000 (15:13 +0200)]
Fix profiledbootstrap.

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

* Makefile.tpl: Use proper name of folder as it was renamed
during transition to 4 stages.
* Makefile.in: Regenerate.

From-SVN: r254150

7 years agoProvide filesystem::path overloads for file streams (LWG 2676, partial)
Jonathan Wakely [Fri, 27 Oct 2017 12:39:01 +0000 (13:39 +0100)]
Provide filesystem::path overloads for file streams (LWG 2676, partial)

* include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
(basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
(basic_ifstream<Path>(const Path&, const ios_base::openmode&))
(basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
(basic_ofstream<Path>(const Path&, const ios_base::openmode&))
(basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
(basic_fstream<Path>(const Path&, const ios_base::openmode&))
(basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
New constructors and member functions.
* testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
* testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_fstream/open/char/path.cc: New test.
* testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
* testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_ofstream/open/char/path.cc: New test.

From-SVN: r254148

7 years ago* gcc.target/i386/pr70021.c: Add -mtune=skylake.
Jan Hubicka [Fri, 27 Oct 2017 12:36:28 +0000 (14:36 +0200)]
* gcc.target/i386/pr70021.c: Add -mtune=skylake.

From-SVN: r254147

7 years agore PR target/82703 (Wrong addition of std::array components with -O2 -ftree-loop...
Jakub Jelinek [Fri, 27 Oct 2017 12:20:55 +0000 (14:20 +0200)]
re PR target/82703 (Wrong addition of std::array components with -O2 -ftree-loop-vectorize -ftree-slp-vectorize (works fine with -O2))

PR target/82703
* config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
* config/i386/i386.c (maybe_get_pool_constant): Removed.
(ix86_split_to_parts): Use avoid_constant_pool_reference instead of
maybe_get_pool_constant.
* config/i386/predicates.md (zero_extended_scalar_load_operand):
Likewise.

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

From-SVN: r254145

7 years agoDefine std::filesystem::path::format enum (P0430R2)
Jonathan Wakely [Fri, 27 Oct 2017 12:01:49 +0000 (13:01 +0100)]
Define std::filesystem::path::format enum (P0430R2)

* include/bits/fs_path.h (path::format): Define new enumeration type.
(path(string_type&&), path<Source>(const Source&))
(path<InputIterator>(InputIterator, InputIterator))
(path<Source>(const Source&, const locale&))
(path<InputIterator>(InputIterator, InputIterator, const locale&)):
Add format parameter.
* testsuite/27_io/filesystem/path/construct/format.cc: New test.

From-SVN: r254144

7 years agoUpdate install.texi for Solaris 12 rename
Rainer Orth [Fri, 27 Oct 2017 11:59:37 +0000 (11:59 +0000)]
Update install.texi for Solaris 12 rename

* doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
2.26 caveat.  Update gas and gld versions.
(Specific, *-*-solaris2*): Update binutils version.  Remove caveat
reference.

From-SVN: r254143

7 years agoExtend ipa-pure-const pass to propagate malloc attribute.
Prathamesh Kulkarni [Fri, 27 Oct 2017 10:48:49 +0000 (10:48 +0000)]
Extend ipa-pure-const pass to propagate malloc attribute.

2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* cgraph.h (set_malloc_flag): Declare.
* cgraph.c (set_malloc_flag_1): New function.
(set_malloc_flag): Likewise.
* ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
* ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
false.
(read_ipa_call_summary): Add support for reading is_return_callee.
(write_ipa_call_summary): Stream is_return_callee.
* ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
* ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
ipa-prop.h, ipa-fnsummary.h.
(pure_const_names): Change to static.
(malloc_state_e): Define.
(malloc_state_names): Define.
(funct_state_d): Add field malloc_state.
(varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
(check_retval_uses): New function.
(malloc_candidate_p): Likewise.
(analyze_function): Add support for malloc attribute.
(pure_const_write_summary): Stream malloc_state.
(pure_const_read_summary): Add support for reading malloc_state.
(dump_malloc_lattice): New function.
(propagate_malloc): New function.
(warn_function_malloc): New function.
(ipa_pure_const::execute): Call propagate_malloc and
ipa_free_fn_summary.
(pass_local_pure_const::execute): Add support for malloc attribute.
* ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
* doc/invoke.texi: Document Wsuggest-attribute=malloc.

testsuite/
* gcc.dg/ipa/propmalloc-1.c: New test-case.
* gcc.dg/ipa/propmalloc-2.c: Likewise.
* gcc.dg/ipa/propmalloc-3.c: Likewise.

From-SVN: r254140

7 years agore PR c++/71385 (Internal compiler error when using concept as placeholder)
Paolo Carlini [Fri, 27 Oct 2017 10:45:25 +0000 (10:45 +0000)]
re PR c++/71385 (Internal compiler error when using concept as placeholder)

2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71385
* g++.dg/concepts/pr71385.C: New.

From-SVN: r254139

7 years agore PR c++/80739 (Accessing value of X through a Y glvalue in a constant expression)
Paolo Carlini [Fri, 27 Oct 2017 08:53:08 +0000 (08:53 +0000)]
re PR c++/80739 (Accessing value of X through a Y glvalue in a constant expression)

2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80739
* g++.dg/cpp1y/constexpr-80739.C: New.

From-SVN: r254138

7 years agoDocument --coverage and fork-like functions (PR gcov-profile/82457).
Martin Liska [Fri, 27 Oct 2017 08:34:56 +0000 (10:34 +0200)]
Document --coverage and fork-like functions (PR gcov-profile/82457).

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

PR gcov-profile/82457
* doc/invoke.texi: Document that one needs a non-strict ISO mode
for fork-like functions to be properly instrumented.

From-SVN: r254137

7 years agore PR middle-end/81659 (ICE in verify_dominators, at dominance.c:1184)
Richard Biener [Fri, 27 Oct 2017 08:03:16 +0000 (08:03 +0000)]
re PR middle-end/81659 (ICE in verify_dominators, at dominance.c:1184)

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

PR middle-end/81659
* tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
info when we redirected EH.

* g++.dg/torture/pr81659.C: New testcase.

From-SVN: r254136