gcc.git
8 years agore PR testsuite/77418 (SELECT TYPE associating entity can be (de)allocated)
Paul Thomas [Wed, 31 Aug 2016 07:50:44 +0000 (07:50 +0000)]
re PR testsuite/77418 (SELECT TYPE associating entity can be (de)allocated)

2016-08-31  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/77418
* gfortran.dg/dtio_5.f90: Remove the non-standard deallocation
of the associate entity and replace with a pointer to the
intended item on the stack.

From-SVN: r239881

8 years ago[multiple changes]
Paul Thomas [Wed, 31 Aug 2016 05:36:22 +0000 (05:36 +0000)]
[multiple changes]

2016-08-31  Paul Thomas  <pault@gcc.gnu.org>
Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/48298

* decl.c (access_attr_decl): Include case INTERFACE_DTIO as
appropriate.
* gfortran.h : Add INTRINSIC_FORMATTED and
INTRINSIC_UNFORMATTED to gfc_intrinsic_op. Add INTERFACE_DTIO
to interface type. Add new enum 'dtio_codes'. Add bitfield
'has_dtio_procs' to symbol_attr. Add prototypes
'gfc_check_dtio_interfaces' and 'gfc_find_specific_dtio_proc'.
* interface.c (dtio_op): New function.
(gfc_match_generic_spec): Match generic DTIO interfaces.
(gfc_match_interface): Treat DTIO interfaces in the same way as
(gfc_current_interface_head): Add INTERFACE_DTIO appropriately.
(check_dtio_arg_TKR_intent): New function.
(check_dtio_interface1): New function.
(gfc_check_dtio_interfaces): New function.
(gfc_find_specific_dtio_proc): New function.
* io.c : Add FMT_DT to format_token.
(format_lex): Handle DTIO formatting.
* match.c (gfc_op2string): Add DTIO operators.
* resolve.c (derived_inaccessible): Ignore pointer components
to enclosing derived type.
(resolve_transfer): Resolve transfers that involve DTIO.
procedures. Find the specific subroutine for the transfer and
use its existence to over-ride some of the constraints on
derived types. If the transfer is recursive, require that the
subroutine be so qualified.
(dtio_procs_present): New function.
(resolve_fl_namelist): Remove inhibition of polymorphic objects
in namelists if DTIO read and write subroutines exist. Likewise
for derived types.
(resolve_types): Invoke 'gfc_verify_dtio_procedures'.
* symbol.c : Set 'dtio_procs' using 'minit'.
* trans-decl.c (gfc_finish_var_decl): If a derived-type/class
object is associated with DTIO procedures, make it TREE_STATIC.
* trans-expr.c (gfc_get_vptr_from_expr): If the expression
drills down to a PARM_DECL, extract the vptr correctly.
(gfc_conv_derived_to_class): Check 'info' in the test for
'useflags'. If the se expression exists and is a pointer, use
it as the class _data.
* trans-io.c : Add IOCALL_X_DERIVED to iocall and the function
prototype. Likewise for IOCALL_SET_NML_DTIO_VAL.
(set_parameter_tree): Renamed from 'set_parameter_const', now
returns void and has new tree argument. Calls modified to match
new interface.
(transfer_namelist_element): Transfer DTIO procedure pointer
and vpointer using the new function IOCALL_SET_NML_DTIO_VAL.
(get_dtio_proc): New function.
(transfer_expr): Add new argument for the vptr field of class
objects. Add the code to call the specific DTIO proc, convert
derived types to class and call IOCALL_X_DERIVED.
(trans_transfer): Add BT_CLASS to structures for treatment by
the scalarizer. Obtain the vptr for the dynamic type, both for
scalar and array transfer.

2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
Paul Thomas  <pault@gcc.gnu.org>

PR libgfortran/48298
* gfortran.map : Flag _st_set_nml_dtio_var and
_gfortran_transfer_derived.
* io/format.c (format_lex): Detect DTIO formatting.
(parse_format_list): Parse the DTIO format.
(next_format): Include FMT_DT.
* io/format.h : Likewise. Add structure 'udf' to structure
'fnode' to carry the IOTYPE string and the 'vlist'.
* io/io.h : Add prototypes for the two types of DTIO subroutine
and a typedef for gfc_class. Also, add to 'namelist_type'
fields for the pointer to the DTIO procedure and the vtable.
Add fields to struct st_parameter_dt for pointers to the two
types of DTIO subroutine. Add to gfc_unit DTIO specific fields.
(internal_proto): Add prototype for 'read_user_defined' and
'write_user_defined'.
* io/list_read.c (check_buffers): Use the 'current_unit' field.
(unget_char): Likewise.
(eat_spaces): Likewise.
(list_formatted_read_scalar): For case BT_CLASS, call the DTIO
procedure.
(nml_get_obj_data): Likewise when DTIO procedure is present,.
* io/transfer.c : Export prototypes for 'transfer_derived' and
'transfer_derived_write'.
(unformatted_read): For case BT_CLASS, call the DTIO procedure.
(unformatted_write): Likewise.
(formatted_transfer_scalar_read): Likewise.
(formatted_transfer_scalar_write: Likewise.
(transfer_derived): New function.
(data_transfer_init): Set last_char if no child_dtio.
(finalize_transfer): Return if child_dtio set.
(st_write_done): Add condition for child_dtio not set.
Add extra arguments for st_set_nml_var prototype.
(set_nml_var): New function that contains the contents of the
old version of st_set_nml_var. Also sets the 'dtio_sub' and
'vtable' fields of the 'nml' structure.
(st_set_nml_var): Now just calls set_nml_var with 'dtio_sub'
and 'vtable' NULL.
(st_set_nml_dtio_var): New function that calls set_nml_var.
* io/unit.c (get_external_unit): If the found unit child_dtio
is non zero, don't do any mutex locking/unlocking.  Just
return the unit.
* io/unix.c (tempfile_open): Revert to C style comment.
* io/write.c (list_formatted_write_scalar): Do the DTIO call.
(nml_write_obj): Add BT_CLASS and do the DTIO call.

2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
Paul Thomas  <pault@gcc.gnu.org>

PR fortran/48298
* gfortran.dg/dtio_1.f90: New test.
* gfortran.dg/dtio_2.f90: New test.
* gfortran.dg/dtio_3.f90: New test.
* gfortran.dg/dtio_4.f90: New test.
* gfortran.dg/dtio_5.f90: New test.
* gfortran.dg/dtio_6.f90: New test.
* gfortran.dg/dtio_7.f90: New test.
* gfortran.dg/dtio_8.f90: New test.
* gfortran.dg/dtio_9.f90: New test.
* gfortran.dg/dtio_10.f90: New test.

From-SVN: r239880

8 years agoRemove arbitrary limits from rich_location
David Malcolm [Wed, 31 Aug 2016 00:35:01 +0000 (00:35 +0000)]
Remove arbitrary limits from rich_location

This patch eliminates the hard-coded limits within rich_location
(up to 3 ranges, up to 2 fixits).  The common case is still
handled by embedding the values inside rich_location - it only
uses dynamic allocation if these limits are exceeded, so
creation of rich_location instances on the stack should still
be fast.  This is implemented via a new container class,
semi_embedded_vec <T, N>.

gcc/ChangeLog:
* diagnostic-show-locus.c (colorizer::begin_state): Support more
than 3 ranges per diagnostic by alternating between color 1 and
color 2.
(layout::layout): Replace use of rich_location::MAX_RANGES
with richloc->get_num_locations ().
(layout::calculate_line_spans): Replace use of
rich_location::MAX_RANGES with m_layout_ranges.length ().
(layout::print_annotation_line): Handle arbitrary numbers of
ranges in caret-printing by defaulting to '^'.
(selftest::test_one_liner_many_fixits): New function.
(test_diagnostic_show_locus_one_liner): Call it.
* diagnostic.c (diagnostic_initialize): Update for renaming
of rich_location::MAX_RANGES to
rich_location::STATICALLY_ALLOCATED_RANGES.
* diagnostic.h (struct diagnostic_context): Likewise.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
(test_many_nested_locations): New function.
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
(test_show_locus): Handle "test_many_nested_locations".

libcpp/ChangeLog:
* include/line-map.h (class semi_embedded_vec): New class.
(semi_embedded_vec<T, NUM_EMBEDDED>::semi_embedded_vec): New ctor.
(semi_embedded_vec<T, NUM_EMBEDDED>::~semi_embedded_vec): New
dtor.
(semi_embedded_vec<T, NUM_EMBEDDED>::operator[]): New methods.
(semi_embedded_vec<T, NUM_EMBEDDED>::push): New method.
(semi_embedded_vec<T, NUM_EMBEDDED>::truncate): New method.
(rich_location::get_num_locations): Reimplement in terms of
m_ranges.
(rich_location::get_range): Make non-inline.
(rich_location::get_num_fixit_hints): Reimplement in terms of
m_fixit_hints.
(rich_location::add_fixit): New function.
(rich_location::MAX_RANGES): Rename to...
(rich_location::STATICALLY_ALLOCATED_RANGES): ...this.
(rich_location::MAX_FIXIT_HINTS): Rename to...
(rich_location::STATICALLY_ALLOCATED_RANGES): ...this, and make
private.
(rich_location::m_num_ranges): Eliminate in favor of...
(rich_location::m_ranges): ...this, converting from a fixed-size
array to a semi_embedded_vec.
(rich_location::m_num_fixit_hints): Eliminate in favor of...
(rich_location::m_fixit_hints): ...this, converting from a
fixed-size array to a semi_embedded_vec.
* line-map.c (rich_location::rich_location): Update for above
changes.
(rich_location::~rich_location): Likewise.
(rich_location::get_loc): Likewise.
(rich_location::get_range): New methods.
(rich_location::add_range): Update for above changes.
(rich_location::set_range): Likewise.
(rich_location::add_fixit_insert): Likewise.
(rich_location::add_fixit_replace): Likewise.
(rich_location::get_last_fixit_hint): Likewise.
(rich_location::reject_impossible_fixit): Likewise.
(rich_location::add_fixit): New method.

From-SVN: r239879

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

From-SVN: r239878

8 years agoselftest: split out named_temp_file from temp_source_file
David Malcolm [Wed, 31 Aug 2016 00:07:38 +0000 (00:07 +0000)]
selftest: split out named_temp_file from temp_source_file

Split out a new base class for temp_source_file, named_temp_file,
moving the deletion to the base class dtor, so that we can write
out temporary files in other ways in selftests.

gcc/ChangeLog:
* selftest.c (selftest::named_temp_file::named_temp_file): New
ctor.
(selftest::temp_source_file::~temp_source_file): Move to...
(selftest::named_temp_file::~named_temp_file): ...here.
(selftest::test_named_temp_file): New function.
(selftest::selftest_c_tests): Call test_named_temp_file.
* selftest.h (class named_temp_file): New class.
(class temp_source_file): Convert to a subclass of named_temp_file.

From-SVN: r239875

8 years agoC++: add fixit for '>>' template error
David Malcolm [Tue, 30 Aug 2016 21:21:42 +0000 (21:21 +0000)]
C++: add fixit for '>>' template error

gcc/cp/ChangeLog:
* parser.c (cp_parser_enclosed_template_argument_list): Add fix-it
hint to ">>" within nested template argument list error.

gcc/testsuite/ChangeLog:
* g++.dg/template/double-greater-than-fixit.C: New test case.

From-SVN: r239873

8 years agoruntime: use -fgo-c-header to build C header file
Ian Lance Taylor [Tue, 30 Aug 2016 21:07:47 +0000 (21:07 +0000)]
runtime: use -fgo-c-header to build C header file

    Use the new -fgo-c-header option to build a header file for the Go
    runtime code in libgo/go/runtime, and use the new header file in the C
    runtime code in libgo/runtime.  This will ensure that the Go code and C
    code share the same data structures as we convert the runtime from C to
    Go.

    The new file libgo/go/runtime/runtime2.go is copied from the Go 1.7
    release, and then edited to remove unnecessary data structures and
    modify others for use with libgo.

    The new file libgo/go/runtime/mcache.go is an initial version of the
    same files in the Go 1.7 release, and will be replaced by the Go 1.7
    file when we convert to the new memory allocator.

    The new file libgo/go/runtime/type.go describes the gccgo version of the
    reflection data structures, and replaces the Go 1.7 runtime file which
    describes the gc version of those structures.

    Using the new header file means changing a number of struct fields to
    use Go naming conventions (that is, no underscores) and to rename
    constants to have a leading underscore so that they are not exported
    from the Go package.  These names were updated in the C code.

    The C code was also changed to drop the thread-local variable m, as was
    done some time ago in the gc sources.  Now the m field is always
    accessed using g->m, where g is the single remaining thread-local
    variable.  This in turn required some adjustments to set g->m correctly
    in all cases.

    Also pass the new -fgo-compiling-runtime option when compiling the
    runtime package, although that option doesn't do anything yet.

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

From-SVN: r239872

8 years agore PR libstdc++/77395 (std::is_constructible is false for type constructible via...
Ville Voutilainen [Tue, 30 Aug 2016 18:46:11 +0000 (21:46 +0300)]
re PR libstdc++/77395 (std::is_constructible is false for type constructible via implicit conversion operator affecting std::tuple)

PR libstdc++/77395
* include/std/type_traits (is_constructible): Forward-declare...
(__is_base_to_derived_ref): ...and use here.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/is_constructible/77395.cc: New.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/tuple/77395.cc: New.

From-SVN: r239870

8 years ago2.cc: Move dg-do run directive above dg-require-namedlocale directive.
Uros Bizjak [Tue, 30 Aug 2016 16:59:39 +0000 (18:59 +0200)]
2.cc: Move dg-do run directive above dg-require-namedlocale directive.

* testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
directive above dg-require-namedlocale directive.
* testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
* testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
* testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
* testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
* testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.

From-SVN: r239867

8 years agors6000: Don't emit a use of LR in returns and sibcalls
Segher Boessenkool [Tue, 30 Aug 2016 16:30:01 +0000 (18:30 +0200)]
rs6000: Don't emit a use of LR in returns and sibcalls

The exit block (to which every return artificially jumps) already has
a use of LR.  The LR use in all returns and sibcalls is an anachronism,
probably made unnecessary by the dataflow merge.  The simple_returns
that shrink-wrapping generates also do not have such a use.  Newer
backends do not do this either it seems.

With this use removed, a normal return is no longer a parallel but just
a return insn, and cfgcleanup then can transform conditional jumps to
those into conditional returns.

This splits the return emission code with restoring_FPRs_inline from
that without it; this is simpler code, fewer lines, and less indentation.

The return_internal_<mode> pattern can now be deleted since nothing uses
it anymore.

* config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
USEs of LR_REGNO in returns and sibcalls.
(rs6000_output_mi_thunk): Similar.
(rs6000_sibcall_aix): Similar.
* config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
sibcall_local64, sibcall_value_local32, sibcall_value_local64,
sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
Remove the USE of LR_REGNO from the patterns as well.  Delete an
obsolete comment.
(return_internal_<mode>): Delete.

From-SVN: r239866

8 years ago[PATCH][Aarch64][gcc] Fix vld2/3/4 on big endian systems
Tamar Christina [Tue, 30 Aug 2016 15:40:19 +0000 (15:40 +0000)]
[PATCH][Aarch64][gcc] Fix vld2/3/4 on big endian systems

On behalf of Tamar Christina  <tamar.christina@arm.com>

gcc/

* gcc/config/aarch64/aarch64-simd.md
(aarch64_ld2<mode>_dreg_le): New.
(aarch64_ld2<mode>_dreg_be): New.
(aarch64_ld2<mode>_dreg): Removed.
(aarch64_ld3<mode>_dreg_le): New.
(aarch64_ld3<mode>_dreg_be): New.
(aarch64_ld3<mode>_dreg): Removed.
(aarch64_ld4<mode>_dreg_le): New.
(aarch64_ld4<mode>_dreg_be): New.
(aarch64_ld4<mode>_dreg): Removed.
(aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.

From-SVN: r239865

8 years agogfortran.texi: Fix typo in STRUCTURE documentation.
Fritz Reese [Tue, 30 Aug 2016 14:33:00 +0000 (14:33 +0000)]
gfortran.texi: Fix typo in STRUCTURE documentation.

2016-08-30  Fritz Reese  <fritzoreese@gmail.com>

* gcc/fortran/gfortran.texi: Fix typo in STRUCTURE documentation.

From-SVN: r239862

8 years agorich_location: add convenience overloads for adding fix-it hints
David Malcolm [Tue, 30 Aug 2016 13:54:48 +0000 (13:54 +0000)]
rich_location: add convenience overloads for adding fix-it hints

Adding a fix-it hint to a diagnostic usually follows one of these
patterns:
(a) an insertion fix-its, with the insertion at the primary caret location
(b) a removals/replacements, affecting the range of the primary location

(other cases are possible, e.g. multiple fix-its, and affecting other
locations, but these are the common ones)

Given these common cases, this patch adds overloads of the rich_location
methods for adding fix-it hints, so that the location information can
be omitted if it matches that of the primary location within the
rich_location.

Similarly when adding "remove" and "replace" fix-it hints to a diagnostic,
it's tedious to have to extract the source_range from a location_t
(aka source_location).  To make this more convenient, this patch
adds overload of the rich_location::add_fixit_remove/replace methods,
accepting a source_location directly.

The patch updates the various in-tree users of fix-it hints to use
the new simpler API where appropriate.  I didn't touch the case where
there are multiple fix-its in one rich_location, as it seems better to
be more explicit about locations for this case (adding a pair of parens
in warn_logical_not_parentheses).

The above makes the gcc_rich_location::add_fixit_misspelled_id overload
taking a const char * rather redundant, so I eliminated it.

gcc/c/ChangeLog:
* c-decl.c (implicit_decl_warning): Use add_fixit_replace
rather than add_fixit_misspelled_id.
(undeclared_variable): Likewise.
* c-parser.c (c_parser_declaration_or_fndef): Likewise.  Remove
now-redundant "here" params from add_fixit_insert method calls.
(c_parser_parameter_declaration): Likewise.
* c-typeck.c (build_component_ref): Remove now-redundant range
param from add_fixit_replace method calls.

gcc/cp/ChangeLog:
* name-lookup.c (suggest_alternatives_for): Use add_fixit_replace
rather than add_fixit_misspelled_id.
* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.

gcc/ChangeLog:
* diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
redundant location param.
(test_one_liner_fixit_remove): Likewise.
(test_one_liner_fixit_replace): Likewise.
(test_one_liner_fixit_replace_equal_secondary_range): Likewise.
* gcc-rich-location.c
(gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
get_range_from_loc.  Drop overload taking a const char *.
* gcc-rich-location.h
(gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
a const char *.

libcpp/ChangeLog:
* include/line-map.h (rich_location::add_fixit_insert): Add
comments.  Add overload omitting the source_location param.
(rich_location::add_fixit_remove): Add comments.  Add overloads
omitting the range, and accepting a source_location.
(rich_location::add_fixit_replace): Likewise.
* line-map.c (rich_location::add_fixit_insert): Add comments.  Add
overload omitting the source_location param.
(rich_location::add_fixit_remove): Add comments.  Add overloads
omitting the range, and accepting a source_location.
(rich_location::add_fixit_replace): Likewise.

From-SVN: r239861

8 years agoreport supported function classes correctly on *-musl
Szabolcs Nagy [Tue, 30 Aug 2016 10:28:06 +0000 (10:28 +0000)]
report supported function classes correctly on *-musl

gcc/
* config/linux.c (linux_libc_has_function): Return true on musl.

From-SVN: r239860

8 years agodisable ifunc on *-musl by default
Szabolcs Nagy [Tue, 30 Aug 2016 10:26:22 +0000 (10:26 +0000)]
disable ifunc on *-musl by default

gcc/
* config.gcc (*-*-*musl*): Disable gnu-indirect-function.

From-SVN: r239859

8 years agopostreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion used for abnorm...
Eric Botcazou [Tue, 30 Aug 2016 10:10:26 +0000 (10:10 +0000)]
postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion used for abnormal egdes.

* postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
used for abnormal egdes.

From-SVN: r239858

8 years agore PR tree-optimization/69047 (memcpy is not as optimized as union is)
Richard Biener [Tue, 30 Aug 2016 09:22:17 +0000 (09:22 +0000)]
re PR tree-optimization/69047 (memcpy is not as optimized as union is)

2016-08-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/69047
* gcc.dg/pr69047.c: Fix byte-order check.

From-SVN: r239857

8 years agore PR tree-optimization/72866 (Compile time hog w/ -O3 (-Ofast))
Jakub Jelinek [Tue, 30 Aug 2016 06:54:02 +0000 (08:54 +0200)]
re PR tree-optimization/72866 (Compile time hog w/ -O3 (-Ofast))

PR tree-optimization/72866
* tree-vect-patterns.c (search_type_for_mask): Turn into
a small wrapper, move all code to ...
(search_type_for_mask_1): ... this new function.  Add caching
and adjust recursive calls.

* gcc.dg/vect/pr72866.c: New test.

From-SVN: r239856

8 years agore PR c++/77363 (Missing debug information in DWARF)
Jakub Jelinek [Tue, 30 Aug 2016 06:46:38 +0000 (08:46 +0200)]
re PR c++/77363 (Missing debug information in DWARF)

PR debug/77363
* dwarf2out.c (modified_type_die): Use lookup_type_die (type)
instead of lookup_type_die (type_main_variant (type)) even for array
types.

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

From-SVN: r239855

8 years agore PR middle-end/77377 (c-c++-common/pr59037.c ICEs with -fpic -msse on i686)
Jakub Jelinek [Tue, 30 Aug 2016 06:45:56 +0000 (08:45 +0200)]
re PR middle-end/77377 (c-c++-common/pr59037.c ICEs with -fpic -msse on i686)

PR middle-end/77377
* simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
constant pool reference return x instead of c.

* gcc.target/i386/pr77377.c: New test.

From-SVN: r239854

8 years agore PR debug/77389 (FAIL: g++.dg/debug/dwarf2/template-params-12f.C -std=gnu++11...
Jakub Jelinek [Tue, 30 Aug 2016 06:44:43 +0000 (08:44 +0200)]
re PR debug/77389 (FAIL: g++.dg/debug/dwarf2/template-params-12f.C  -std=gnu++11  scan-assembler-times DIE \\\\([^\\n]*\\\\) DW_TAG_template_value_param ...)

PR debug/77389
* g++.dg/debug/dwarf2/template-params-12f.C: Pass -gno-strict-dwarf
in dg-options.

From-SVN: r239853

8 years agocompiler: add -fgo-c-header=FILE to create a C header
Ian Lance Taylor [Tue, 30 Aug 2016 03:27:43 +0000 (03:27 +0000)]
compiler: add -fgo-c-header=FILE to create a C header

    The new -fgo-c-header=FILE option will write a C header file defining
    all the struct types and numeric const values in package scope.  This
    will be used when building the Go runtime package (libgo/go/runtime) to
    generate a C header file that may be included by the C code in the C
    runtime package (libgo/runtime).

    This will ensure that the Go code and C code are working with the same
    data structures as we convert the runtime from C to Go to upgrade to the
    current GC runtime, notably the concurrent garbage collector.

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

* lang.opt (fgo-c-header, fgo-compiling-runtime): New options.
* go-c.h (struct go_create_gogo_args): Define.
(go_create_gogo): Change declaration to take struct pointer.
* go-lang.c (go_c_header): New static variable.
(go_langhook_init): Update call to go_create_gogo.
* gccgo.texi (Invoking gccgo): Document -fgo-c-header and
-fgo-compiling-runtime.

From-SVN: r239852

8 years agoEradicate MQ some more
Segher Boessenkool [Tue, 30 Aug 2016 02:46:07 +0000 (04:46 +0200)]
Eradicate MQ some more

Nothing uses MQ anymore, but it still shows up in all the dump files.
This patch removes it from CALL_REALLY_USED_REGISTERS so that that does
not happen anymore (it is still a fixed register, there should be no
functional change).

* config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
include MQ.

From-SVN: r239851

8 years agoDaily bump.
GCC Administrator [Tue, 30 Aug 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239850

8 years agopr77372.f90: Moved to ...
Steven G. Kargl [Mon, 29 Aug 2016 23:19:25 +0000 (23:19 +0000)]
pr77372.f90: Moved to ...

2016-08-29  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/pr77372.f90: Moved to ...
* gfortran.dg/ieee/pr77372.f90: here.

From-SVN: r239847

8 years agoinput.c: fix the comment for test_make_location_nonpure_range_endpoints
David Malcolm [Mon, 29 Aug 2016 20:52:10 +0000 (20:52 +0000)]
input.c: fix the comment for test_make_location_nonpure_range_endpoints

gcc/ChangeLog:
* input.c
(selftest::test_make_location_nonpure_range_endpoints): Fix
header comment.

From-SVN: r239844

8 years agoAllow the use of ad-hoc locations for fix-it hints
David Malcolm [Mon, 29 Aug 2016 20:42:57 +0000 (20:42 +0000)]
Allow the use of ad-hoc locations for fix-it hints

Currently the fix-it validator rejects ad-hoc locations.
Fix this by calling get_pure_location on the input locations to
add_fixit_insert/replace.  Doing so requires moving get_pure_location
from gcc to libcpp.

gcc/ChangeLog:
* diagnostic-show-locus.c
(selftest::test_one_liner_fixit_validation_adhoc_locations): New
function.
(selftest::test_diagnostic_show_locus_one_liner): Call it.
* input.c (get_pure_location): Move to libcpp/line-map.c.
* input.h (get_pure_location): Convert decl to an inline function
calling implementation in libcpp.

libcpp/ChangeLog:
* include/line-map.h (get_pure_location): New decl.
* line-map.c (get_pure_location): Move here, from gcc/input.c, adding
a line_maps * param.
(rich_location::add_fixit_insert): Call get_pure_location on "where".
(rich_location::add_fixit_replace): Call get_pure_location on the
end-points.

From-SVN: r239843

8 years agovec-init-4.c: New runtime tests for various vector short/char initializations.
Michael Meissner [Mon, 29 Aug 2016 19:38:07 +0000 (19:38 +0000)]
vec-init-4.c: New runtime tests for various vector short/char initializations.

2016-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-init-4.c: New runtime tests for various
vector short/char initializations.
* gcc.target/powerpc/vec-init-5.c: Likewise.
* gcc.target/powerpc/vec-init-6.c: New compile time test for
vector initialization optimizations.
* gcc.target/powerpc/vec-init-7.c: Likewise.
* gcc.target/powerpc/vec-init-8.c: New runtime tests for various
vector float/double initializations.
* gcc.target/powerpc/vec-init-9.c: Likewise.

From-SVN: r239837

8 years agoconfigure.ac (nvptx-*): Hardwire newlib.
Nathan Sidwell [Mon, 29 Aug 2016 19:09:57 +0000 (19:09 +0000)]
configure.ac (nvptx-*): Hardwire newlib.

* configure.ac (nvptx-*): Hardwire newlib.
* configure: Rebuilt.

From-SVN: r239836

8 years agore PR target/77403 (assemble failure of vinserti64x4 with -masm=intel)
Uros Bizjak [Mon, 29 Aug 2016 18:58:10 +0000 (20:58 +0200)]
re PR target/77403 (assemble failure of vinserti64x4 with -masm=intel)

PR target/77403
* config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
template for intel asm dialect.
(vec_set_hi_<mode><mask_name>): Ditto.

testsuite/ChangeLog:

PR target/77403
* gcc.target/i386/pr77403.c: New test.

From-SVN: r239834

8 years agore PR c/77292 (Spurious warning: logical not is only applied to the left hand side...
Marek Polacek [Mon, 29 Aug 2016 18:13:13 +0000 (18:13 +0000)]
re PR c/77292 (Spurious warning: logical not is only applied to the left hand side of comparison)

PR c/77292
* c-common.c (warn_logical_not_parentheses): Don't warn for
a comparison or a logical operator.

* c-c++-common/Wlogical-not-parentheses-1.c: New test.

From-SVN: r239833

8 years agoselftest.h: mark failure functions with ATTRIBUTE_NORETURN.
David Malcolm [Mon, 29 Aug 2016 17:23:14 +0000 (17:23 +0000)]
selftest.h: mark failure functions with ATTRIBUTE_NORETURN.

gcc/ChangeLog:
* selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
(selftest::fail_formatted): Likewise.

From-SVN: r239832

8 years agomake_location: ensure end-points are pure locations
David Malcolm [Mon, 29 Aug 2016 17:10:23 +0000 (17:10 +0000)]
make_location: ensure end-points are pure locations

gcc/ChangeLog:
* input.c (make_location): Call get_start and get_finish
on the endpoints to avoid storing packed ranges or ad-hoc
ranges in them.
(selftest::test_make_location_nonpure_range_endpoints): New function.
(selftest::input_c_tests): Call it.
* input.h (get_start): New inline function.

From-SVN: r239831

8 years agoPR c++/77379 - ABI tag on thunk
Jason Merrill [Mon, 29 Aug 2016 16:42:57 +0000 (12:42 -0400)]
PR c++/77379 - ABI tag on thunk

* mangle.c (maybe_check_abi_tags): Add version parm, handle thunks.
(mangle_thunk): Add thunk parameter.
* method.c (finish_thunk): Pass it.
* cp-tree.h: Declare it.

From-SVN: r239830

8 years agoFix assert in build_va_arg, case 2b
Tom de Vries [Mon, 29 Aug 2016 16:42:16 +0000 (16:42 +0000)]
Fix assert in build_va_arg, case 2b

2016-08-29  Tom de Vries  <tom@codesourcery.com>

* c-common.c (build_va_arg): Fix type comparison assert.

From-SVN: r239829

8 years agoReplace error_at with assert in build_va_arg
Tom de Vries [Mon, 29 Aug 2016 16:41:42 +0000 (16:41 +0000)]
Replace error_at with assert in build_va_arg

2016-08-29  Tom de Vries  <tom@codesourcery.com>

* c-common.c (build_va_arg): Replace first argument type error
with assert.

From-SVN: r239828

8 years agoHandle errors in both args of va_arg
Tom de Vries [Mon, 29 Aug 2016 16:41:33 +0000 (16:41 +0000)]
Handle errors in both args of va_arg

2016-08-29  Tom de Vries  <tom@codesourcery.com>

PR c/77398
* c-common.c (build_va_arg): Add first argument error.  Build va_arg
with error_mark_node as va_list instead of with illegal va_list.

* gimplify.c (gimplify_va_arg_expr): Replace first argument type error
with assert.

* g++.dg/ext/va-arg1.C: Add error check for illegal first argument.

From-SVN: r239827

8 years ago* Makefile.in (gcov-iov.h): Add dummy recipe.
Eric Botcazou [Mon, 29 Aug 2016 14:43:29 +0000 (14:43 +0000)]
* Makefile.in (gcov-iov.h): Add dummy recipe.

From-SVN: r239823

8 years ago* gcc.dg/ipa/iinline-attr.c: XFAIL on Visium.
Eric Botcazou [Mon, 29 Aug 2016 14:25:45 +0000 (14:25 +0000)]
* gcc.dg/ipa/iinline-attr.c: XFAIL on Visium.

From-SVN: r239821

8 years ago* config/nvptx/nvptx.c: #include tree-vrp.h.
Nathan Sidwell [Mon, 29 Aug 2016 12:49:10 +0000 (12:49 +0000)]
* config/nvptx/nvptx.c: #include tree-vrp.h.

From-SVN: r239820

8 years agoFix, reorganize, and clarify comparisons of anonymous types/components.
Fritz Reese [Mon, 29 Aug 2016 12:24:25 +0000 (12:24 +0000)]
Fix, reorganize, and clarify comparisons of anonymous types/components.

2016-08-29  Fritz Reese  <fritzoreese@gmail.com>

Fix, reorganize, and clarify comparisons of anonymous types/components.

PR fortran/77327
* interface.c (is_anonymous_component, is_anonymous_dt): New functions.
* interface.c (compare_components, gfc_compare_derived_types): Use new
functions.

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

From-SVN: r239819

8 years agoPR fortran/77261 Run random_3 testcase only when real(10) is available.
Janne Blomqvist [Mon, 29 Aug 2016 08:29:16 +0000 (11:29 +0300)]
PR fortran/77261 Run random_3 testcase only when real(10) is available.

From-SVN: r239817

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

From-SVN: r239814

8 years agoi386.c (ix86_option_override_internal): Re-sort a couple of processor_alias_table...
Uros Bizjak [Sun, 28 Aug 2016 16:22:22 +0000 (18:22 +0200)]
i386.c (ix86_option_override_internal): Re-sort a couple of processor_alias_table entries.

* config/i386/i386.c (ix86_option_override_internal): Re-sort
  a couple of processor_alias_table entries.

From-SVN: r239809

8 years agore PR target/77324 (ICE in push_reload, at reload.c:1350)
Eric Botcazou [Sun, 28 Aug 2016 08:50:09 +0000 (08:50 +0000)]
re PR target/77324 (ICE in push_reload, at reload.c:1350)

PR target/77324
* config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
HIGH+LO construct during reload.

From-SVN: r239807

8 years agoTag {ms,sysv}_va_list_type_node with '{ms,sysv}_abi va_list' attribute
Tom de Vries [Sun, 28 Aug 2016 05:05:15 +0000 (05:05 +0000)]
Tag {ms,sysv}_va_list_type_node with '{ms,sysv}_abi va_list' attribute

2016-08-28  Tom de Vries  <tom@codesourcery.com>

PR lto/70955
* config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
'sysv_abi va_list' attribute.
(ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
(ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
attributes.

* gcc.dg/pr70955.c: New test.
* gcc.dg/lto/pr70955_0.c: Same.
* gcc.dg/lto/pr70955_1.c: Same.

From-SVN: r239805

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

From-SVN: r239804

8 years agomake stack_slot_list a vec<rtx>
Trevor Saunders [Sun, 28 Aug 2016 00:04:04 +0000 (00:04 +0000)]
make stack_slot_list a vec<rtx>

gcc/ChangeLog:

2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
* emit-rtl.c (unshare_all_rtl_1): Adjust.
(unshare_all_rtl_again): Likewise.
* function.c (assign_stack_local_1): Likewise.
(assign_stack_temp_for_type): Likewise.

From-SVN: r239801

8 years agomake forced labels a vec
Trevor Saunders [Sun, 28 Aug 2016 00:03:59 +0000 (00:03 +0000)]
make forced labels a vec

gcc/ChangeLog:

2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* cfgbuild.c (make_edges): Adjust.
* cfgrtl.c (can_delete_label_p): Likewise.
* dwarf2cfi.c (create_trace_edges): Likewise.
* except.c (sjlj_emit_dispatch_table): Likewise.
* function.h (struct expr_status): make x_forced_labels a vector.
* jump.c (rebuild_jump_labels_1): Adjust.
* reload1.c (set_initial_label_offsets): Likewise.
* stmt.c (force_label_rtx): Likewise.
(expand_label): Likewise.

From-SVN: r239800

8 years agohaifa-sched.c: make ready_list an auto_vec<rtx_insn *>
Trevor Saunders [Sun, 28 Aug 2016 00:03:52 +0000 (00:03 +0000)]
haifa-sched.c: make ready_list an auto_vec<rtx_insn *>

gcc/ChangeLog:

2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* haifa-sched.c (fix_recovery_deps): Make ready_list a vector.

From-SVN: r239799

8 years agoFix folding of VECTOR_CST comparisons
Patrick Palka [Sat, 27 Aug 2016 22:00:17 +0000 (22:00 +0000)]
Fix folding of VECTOR_CST comparisons

gcc/ChangeLog:

PR tree-optimization/71077
PR tree-optimization/68542
* fold-const.c (fold_relational_const): Fix folding of
VECTOR_CST comparisons that have a scalar boolean result type.
(selftest::test_vector_folding): New static function.
(selftest::fold_const_c_tests): Call it.

gcc/testsuite/ChangeLog:

PR tree-optimization/71077
* gcc.target/i386/pr71077.c: New test.

From-SVN: r239798

8 years agoextend.texi (SPU Built-in Functions): Remove stale references to material formerly...
Gerald Pfeifer [Sat, 27 Aug 2016 18:15:59 +0000 (18:15 +0000)]
extend.texi (SPU Built-in Functions): Remove stale references to material formerly at IBM and Sony.

* doc/extend.texi (SPU Built-in Functions): Remove stale
references to material formerly at IBM and Sony.

From-SVN: r239797

8 years agore PR fortran/77380 (ICE in gfc_check_dependency, at fortran/dependency.c:1255)
Steven G. Kargl [Sat, 27 Aug 2016 15:45:35 +0000 (15:45 +0000)]
re PR fortran/77380 (ICE in gfc_check_dependency, at fortran/dependency.c:1255)

2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/77380
* dependency.c (gfc_check_dependency): Do not assert with
-fcoarray=lib.

2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/77380
* gfortran.dg/pr77380.f90: New test.

From-SVN: r239796

8 years agore PR fortran/77372 (ICE in simplify_ieee_selected_real_kind, at fortran/simplify...
Steven G. Kargl [Sat, 27 Aug 2016 15:38:55 +0000 (15:38 +0000)]
re PR fortran/77372 (ICE in simplify_ieee_selected_real_kind, at fortran/simplify.c:7049)

2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/77372
simplify.c (simplify_ieee_selected_real_kind): Check for NULL pointers.

2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/77372
gfortran.dg/pr77372.f90: New test.

From-SVN: r239795

8 years agore PR libstdc++/77356 (regex error for a ECMAScript syntax string)
Tim Shen [Sat, 27 Aug 2016 02:03:23 +0000 (02:03 +0000)]
re PR libstdc++/77356 (regex error for a ECMAScript syntax string)

PR libstdc++/77356
* include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
_M_expression_term): Modify to support dash literal.
* include/bits/regex_scanner.h: Add dash as a token type to make
a different from the mandated dash literal by escaping.
* include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
token in bracket expression parsing.
* testsuite/28_regex/regression.cc: Add new testcases.

From-SVN: r239794

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

From-SVN: r239793

8 years agore PR target/77349 (AIX DWARF debugging offset in 64 bit mode)
David Edelsohn [Fri, 26 Aug 2016 23:51:27 +0000 (23:51 +0000)]
re PR target/77349 (AIX DWARF debugging offset in 64 bit mode)

PR target/77349
* config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.

From-SVN: r239790

8 years agoAdd validation and consolidation of fix-it hints
David Malcolm [Fri, 26 Aug 2016 21:25:41 +0000 (21:25 +0000)]
Add validation and consolidation of fix-it hints

The first aspect of this patch is to add some checking of fix-it hints.
The idea is to put this checking within the rich_location machinery,
rather than requiring every diagnostic to implement it for itself.

The fixits within a rich_location are "atomic": all must be valid for
any to be applicable.

We reject any fixits involving locations above
LINE_MAP_MAX_LOCATION_WITH_COLS.

There's no guarantee that it's sane to modify a macro, so we reject
any fix-its that touch them.

For example, note the attempt to provide a fix-it for the definition
of the macro FIELD:

spellcheck-fields-2.c: In function â€˜test_macro’:
spellcheck-fields-2.c:26:15: error: â€˜union u’ has no member named â€˜colour’; did you mean â€˜color’?
 #define FIELD colour
               ^
               color
spellcheck-fields-2.c:27:15: note: in expansion of macro â€˜FIELD’
   return ptr->FIELD;
               ^~~~~

After this patch, the fixit is not displayed:

spellcheck-fields-2.c: In function â€˜test_macro’:
spellcheck-fields-2.c:26:15: error: â€˜union u’ has no member named â€˜colour’; did you mean â€˜color’?
 #define FIELD colour
               ^
spellcheck-fields-2.c:27:15: note: in expansion of macro â€˜FIELD’
   return ptr->FIELD;
               ^~~~~

We might want some way for a diagnostic to opt-in to fix-its that
affect macros, but for now it's simplest to reject them.

The other aspect of this patch is fix-it consolidation: in some cases
neighboring fix-its can be merged.  For example, in a diagnostic to
modernize old-style struct initializers from:

 struct s example = {
- foo: 1,
+ .foo = 1,
 };

one approach would be to replace the "foo" with ".foo" and the ":"
with " =".  This would give two "replace" fix-its:

  foo: 1,
  --- FIXIT 1
  .foo
     - FIXIT 2
     =

This patch allows them to be consolidated into a single "replace" fix-it:

  foo: 1,
  ----
  .foo =

gcc/ChangeLog:
* diagnostic-show-locus.c
(selftest::test_fixit_consolidation): New function.
(selftest::diagnostic_show_locus_c_tests): Call it.
* gcc-rich-location.h (gcc_rich_location): Eliminate unused
constructor based on source_range.

gcc/testsuite/ChangeLog:
* gcc.dg/spellcheck-fields-2.c (test): Move
dg-begin/end-multiline-output within function body.
(test_macro): New function.

libcpp/ChangeLog:
* include/line-map.h (rich_location): Eliminate unimplemented
constructor based on source_range.
(rich_location::get_last_fixit_hint): New method.
(rich_location::reject_impossible_fixit): New method.
(rich_location): Add fields m_line_table and
m_seen_impossible_fixit.
(fixit_hint::maybe_append_replace): New pure virtual function.
(fixit_insert::maybe_append_replace): New function.
(fixit_replace::maybe_append_replace): New function.
* line-map.c (rich_location::rich_location): Initialize
m_line_table and m_seen_impossible_fixit.
(rich_location::add_fixit_insert): Call
reject_impossible_fixit and bail out if true.
(column_before_p): New function.
(rich_location::add_fixit_replace): Call reject_impossible_fixit
and bail out if true.  Attempt to consolidate with neighboring
fixits.
(rich_location::get_last_fixit_hint): New method.
(rich_location::reject_impossible_fixit): New method.
(fixit_insert::maybe_append_replace): New method.
(fixit_replace::maybe_append_replace): New method.

From-SVN: r239789

8 years agoTweak to colors of fix-it hints
David Malcolm [Fri, 26 Aug 2016 17:59:08 +0000 (17:59 +0000)]
Tweak to colors of fix-it hints

Previous, fix-it hints were printed using the color of the severity
of the diagnostic (magenta for warnings, red for errors, cyan for
notes).

This patch updates fix-it hints so that replacement text is printed in
green, to better distinguish the suggested improvement from
the current code.  For example:

spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;  <<< RED
               ^~~~~~   <<< RED
               color    <<< GREEN

It makes sense for the underlinings that indicate deletions to
be printed in red, so the patch changes that also.  For example:

diagnostic-test-show-locus-color.c:179:9: warning: example of a removal hint
   int a;;  <<< MAGENTA
         ^  <<< MAGENTA
         -  <<< RED

gcc/ChangeLog:
* diagnostic-color.c (color_dict): Add "fixit-insert" and
"fixit-delete".
(parse_gcc_colors): Update description of default GCC_COLORS.
* diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
(colorizer::set_fixit_insert): New method.
(colorizer::set_fixit_delete): New method.
(colorizer::get_color_by_name): New method.
(colorizer::STATE_FIXIT_INSERT): New constant.
(colorizer::STATE_FIXIT_DELETE): New constant.
(class colorizer): Drop "_cs" suffix from fields.  Delete "_ce"
fields in favor of new field "m_stop_color".  Add fields
"m_fixit_insert" and "m_fixit_delete".
(colorizer::colorizer): Update for above changes.  Replace
colorize_start calls with calls to get_color_by_name.
(colorizer::begin_state): Handle STATE_FIXIT_INSERT and
STATE_FIXIT_DELETE.  Update for field renamings.
(colorizer::finish_state): Simplify by using m_stop_color,
rather than multiple identical "*_ce" fields.
(colorizer::get_color_by_name): New method.
(layout::print_any_fixits): Print insertions and replacements
using the "fixit-insert" color, and deletions using the
"fixit-delete" color.
* doc/invoke.texi (-fdiagnostics-color): Update description of
default GCC_COLORS, and of the supported capabilities.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-show-locus-color.c
(test_fixit_insert): Update expected output.
(test_fixit_remove): Likewise.
(test_fixit_replace): Likewise.

From-SVN: r239787

8 years agoFix gcc.dg/ipa/propbits-2.c
Rainer Orth [Fri, 26 Aug 2016 17:32:05 +0000 (17:32 +0000)]
Fix gcc.dg/ipa/propbits-2.c

* gcc.dg/ipa/propbits-2.c: Add -fdump-tree-optimized to dg-options.
Fix typo.

From-SVN: r239786

8 years agoxtensa: report stack usage
Max Filippov [Fri, 26 Aug 2016 17:23:37 +0000 (17:23 +0000)]
xtensa: report stack usage

This enables options -fstack-usage and -Wstack-usage.

2016-08-26  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.c (xtensa_expand_prologue): Update
current_function_static_stack_size variable with the static
stack frame size of the current function when
flag_stack_usage_info is enabled.

From-SVN: r239785

8 years agoAvoid calling a trivial default constructor.
Jason Merrill [Fri, 26 Aug 2016 15:10:57 +0000 (11:10 -0400)]
Avoid calling a trivial default constructor.

* class.c (default_ctor_p): New.
(in_class_defaulted_default_constructor): Use it.
(type_has_non_user_provided_default_constructor): Use it.
* call.c (build_over_call): Handle trivial default constructor.
* cp-tree.h: Declare default_ctor_p.

From-SVN: r239783

8 years agoPR c++/57728 - explicit instantiation and defaulted functions
Jason Merrill [Fri, 26 Aug 2016 15:10:51 +0000 (11:10 -0400)]
PR c++/57728 - explicit instantiation and defaulted functions

* pt.c (do_type_instantiation): Don't mess with non-user-provided
member functions.

From-SVN: r239782

8 years agolibstdc++/51960 move-construction for raw_storage_iterator
Jonathan Wakely [Fri, 26 Aug 2016 13:11:29 +0000 (14:11 +0100)]
libstdc++/51960 move-construction for raw_storage_iterator

PR libstdc++/51960
* doc/xml/manual/intro.xml: Document DR 2127 change.
* doc/html/*: Regenerate.
* include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
(operator++(), operator++(int)): Use injected class name.
* testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.

From-SVN: r239781

8 years agoipa-inline-analysis.c (inline_write_summary): Remove unnecessary assignment inside...
Nathan Sidwell [Fri, 26 Aug 2016 13:03:32 +0000 (13:03 +0000)]
ipa-inline-analysis.c (inline_write_summary): Remove unnecessary assignment inside if condition.

* ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
assignment inside if condition.

From-SVN: r239779

8 years agore PR tree-optimization/69047 (memcpy is not as optimized as union is)
Richard Biener [Fri, 26 Aug 2016 12:33:43 +0000 (12:33 +0000)]
re PR tree-optimization/69047 (memcpy is not as optimized as union is)

2016-08-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/69047
* tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
extracts similar to what FRE does.
(non_rewritable_mem_ref_base): Likewise.

* gcc.dg/pr69047.c: New testcase.

From-SVN: r239778

8 years agoUse effective-target instead of -std options
Jonathan Wakely [Fri, 26 Aug 2016 11:41:37 +0000 (12:41 +0100)]
Use effective-target instead of -std options

* testsuite/*: Use { target c++11 } or { target c++14 } instead of
using -std in dg-options.

From-SVN: r239777

8 years agoRestore dg-interpreter-batch-mode for libstdc++ tests
Jonathan Wakely [Fri, 26 Aug 2016 11:35:58 +0000 (12:35 +0100)]
Restore dg-interpreter-batch-mode for libstdc++ tests

2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
    Pedro Alves  <palves@redhat.com>

* testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
and restore dg-interpreter-batch-mode.
* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
gdb-dg-runtest instead of dg-runtest.
* testsuite/libstdc++-xmethods/xmethods.exp: Likewise.

Co-Authored-By: Pedro Alves <palves@redhat.com>
From-SVN: r239776

8 years agoAlways support float128 on x86.
Joseph Myers [Fri, 26 Aug 2016 11:13:42 +0000 (12:13 +0100)]
Always support float128 on x86.

In <https://gcc.gnu.org/ml/gcc-bugs/2016-08/msg03233.html>, Nick
reported i386-elf and ia64-elf failing to build because of
float128_type_node being NULL, but being used by the back end for
__float128.

The global float128_type_node is only available conditionally, if
target hooks indicate TFmode is not only available as a scalar mode
and of the right format, but also supported in libgcc.  The back-end
support, however, expects the type always to be available for
__float128 even if the libgcc support is missing.

Although a target-specific node could be restored in the case where
libgcc support is missing, it seems better to address the missing
libgcc support.  Thus, this patch enables TFmode soft-fp in libgcc
globally for all x86 targets - the only special cases needed being for
targets that use soft-fp for SFmode and DFmode, one of which already
had the support for TFmode as well (so I based the i[34567]86-*-rtems*
configuration on that present for i[34567]86-*-elfiamcu).  The i386
implementation of TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P is then
removed as no longer needed.

I can provide such a patch for ia64 if useful, but am not in a
position to test it (and while I'm reasonably confident that enabling
this support would be right for ia64-elf and ia64-freebsd, I've no
real idea if enabling libgcc support for TFmode, with or without also
enabling it for XFmode, would be safe for ia64-vms).

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

gcc:
* config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
* config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
* config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
* config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
Likewise.
* config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
* config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
* config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
* config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
* config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.

libgcc:
* config.host (i[34567]86-*-* | x86_64-*-*): Enable TFmode soft-fp
where not already enabled.

From-SVN: r239775

8 years agomangle.c (java_mangle_decl): Re-sync with lhd_set_decl_assembler_name.
Richard Biener [Fri, 26 Aug 2016 10:59:50 +0000 (10:59 +0000)]
mangle.c (java_mangle_decl): Re-sync with lhd_set_decl_assembler_name.

2016-08-26  Richard Biener  <rguenther@suse.de>

java/
* mangle.c (java_mangle_decl): Re-sync with lhd_set_decl_assembler_name.

From-SVN: r239774

8 years agoAdd new std::basic_string constructor (LWG 2583)
Jonathan Wakely [Fri, 26 Aug 2016 10:41:37 +0000 (11:41 +0100)]
Add new std::basic_string constructor (LWG 2583)

* config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
precise patterns for basic_string constructors.
(GLIBCXX_3.4.23): Export new constructors.
* doc/xml/manual/intro.xml: Document LWG 2583 status.
* doc/html/*: Regenerate.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string(const basic_string&, size_type, const Alloc&)): Add
new constructor for LWG 2583.
(basic_string(const basic_string&, size_type, size_type)): Remove
default argument.
[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
* testsuite/21_strings/basic_string/cons/char/8.cc: New test.
* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.

From-SVN: r239773

8 years ago[ARM] PR target/70473: Reduce size of Cortex-A8 automaton
Kyrylo Tkachov [Fri, 26 Aug 2016 10:23:20 +0000 (10:23 +0000)]
[ARM] PR target/70473: Reduce size of Cortex-A8 automaton

PR target/70473
* config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
reservation duration to 15 cycles.
(cortex_a8_vfp_macs): Likewise.
(cortex_a8_vfp_macd): Likewise.
(cortex_a8_vfp_divs): Likewise.
(cortex_a8_vfp_divd): Likewise.

From-SVN: r239772

8 years ago[ARM] Refactor MOVW/MOVT fusion logic to allow extension
Kyrylo Tkachov [Fri, 26 Aug 2016 10:22:08 +0000 (10:22 +0000)]
[ARM] Refactor MOVW/MOVT fusion logic to allow extension

* config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
(aarch_macro_fusion_pair_p): Use above to avoid early return.

From-SVN: r239771

8 years agoPatch for performing interprocedural bitwise constant propagation.
Prathamesh Kulkarni [Fri, 26 Aug 2016 08:05:39 +0000 (08:05 +0000)]
Patch for performing interprocedural bitwise constant propagation.

2016-08-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
    Martin Jambhor  <mjambor@suse.cz>

* common.opt: New option -fipa-bit-cp.
* doc/invoke.texi: Document -fipa-bit-cp.
* opts.c (default_options_table): Add entry for -fipa-bit-cp.
(enable_fdo_optimizations): Check for flag_ipa_bit_cp.
* tree-ssa-ccp.h: New header file.
* tree-ssa-ccp.c: Include tree-ssa-ccp.h
(bit_value_binop_1): Change to bit_value_binop_1 and export it.
Replace all occurences of tree parameter by two new params: signop, int.
(bit_value_unop_1): Change to bit_value_unop and export it.
Replace all occurences of tree parameter by two new params: signop,
int.
(bit_value_binop): Change call from bit_value_binop_1 to
bit_value_binop.
(bit_value_assume_aligned): Likewise.
(bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
(do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
to ccp_finalize.
(ccp_finalize): Skip processing if val->mask == 0.
* ipa-cp.c: Include tree-ssa-ccp.h
(ipcp_bits_lattice): New class.
(ipcp_param_lattice (bits_lattice): New member.
(print_all_lattices): Call ipcp_bits_lattice::print.
(set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
(initialize_node_lattices): Likewise.
(propagate_bits_accross_jump_function): New function.
(propagate_constants_accross_call): Call
propagate_bits_accross_jump_function.
(ipcp_propagate_stage): Store parameter types when in_lto_p is true.
(ipcp_store_bits_results): New function.
(ipcp_driver): Call ipcp_store_bits_results.
* ipa-prop.h (ipa_bits): New struct.
(ipa_jump_func): Add new member bits of type ipa_bits.
(ipa_param_descriptor): Change decl to decl_or_type.
(ipa_get_param): Change decl to decl_or_type and assert on
PARM_DECL.
(ipa_get_type): New function.
(ipcp_transformation_summary): New member bits.
* ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
(ipa_populate_param_decls): Likewise.
(ipa_dump_param): Likewise.
(ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
function.
(ipa_set_jf_unknown): Set ipa_bits::known to false.
(ipa_compute_jump_functions_for_edge): Compute jump function for bits
propagation.
(ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
(ipa_write_jump_function): Add streaming for ipa_bits.
(ipa_read_jump_function): Add support for reading streamed ipa_bits.
(write_ipcp_transformation_info): Add streaming for ipa_bits
summary for ltrans.
(read_ipcp_transfomration_info): Add support for reading streamed ipa_bits.
(ipcp_update_bits): New function.
(ipcp_transform_function): Call ipcp_update_bits.

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

Co-Authored-By: Martin Jambor <mjambor@suse.cz>
From-SVN: r239769

8 years agoUpdate .po files.
Joseph Myers [Fri, 26 Aug 2016 01:05:13 +0000 (02:05 +0100)]
Update .po files.

* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.

From-SVN: r239767

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

From-SVN: r239766

8 years agore PR fortran/77351 (ICE in remove_trim, at frontend-passes.c:1145)
Steven G. Kargl [Thu, 25 Aug 2016 19:35:46 +0000 (19:35 +0000)]
re PR fortran/77351 (ICE in remove_trim, at frontend-passes.c:1145)

2016-08-25  Steven g. Kargl  <kargl@gcc.gnu.org>

PR fortran/77351
* frontend-passes.c (remove_trim,combine_array_constructor): Check for
NULL pointer.

2016-08-25  Steven g. Kargl  <kargl@gcc.gnu.org>

PR fortran/77351
* gfortran.dg/pr77351.f90: New test.

From-SVN: r239763

8 years ago[mips] Add support for mips*r6-*-musl
Szabolcs Nagy [Thu, 25 Aug 2016 14:13:02 +0000 (14:13 +0000)]
[mips] Add support for mips*r6-*-musl

gcc/
* config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
(MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.

From-SVN: r239760

8 years ago[mips] Fix linux header use in libgcc
Szabolcs Nagy [Thu, 25 Aug 2016 14:08:27 +0000 (14:08 +0000)]
[mips] Fix linux header use in libgcc

libgcc/
* config/mips/linux-unwind.h: Use sys/syscall.h.

From-SVN: r239759

8 years agoc-common.c (warn_logical_not_parentheses): Print fixit hints.
Marek Polacek [Thu, 25 Aug 2016 12:48:34 +0000 (12:48 +0000)]
c-common.c (warn_logical_not_parentheses): Print fixit hints.

* c-common.c (warn_logical_not_parentheses): Print fixit hints.
* c-common.h (warn_logical_not_parentheses): Update declaration.

* c-typeck.c (parser_build_binary_op): Pass LHS to
warn_logical_not_parentheses.

* parser.c (cp_parser_binary_expression): Pass LHS to
warn_logical_not_parentheses.

* c-c++-common/Wlogical-not-parentheses-2.c: New test.

Co-Authored-By: David Malcolm <dmalcolm@redhat.com>
From-SVN: r239756

8 years ago* multiple_target.c (pass_data_dispatcher_calls): Fix typo.
David Edelsohn [Thu, 25 Aug 2016 12:07:10 +0000 (12:07 +0000)]
* multiple_target.c (pass_data_dispatcher_calls): Fix typo.

From-SVN: r239755

8 years agodwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): Only add locations in...
Richard Biener [Thu, 25 Aug 2016 09:25:31 +0000 (09:25 +0000)]
dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): Only add locations in late dwarf.

2016-08-25  Richard Biener  <rguenther@suse.de>

* dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
Only add locations in late dwarf.
(gen_scheduled_generic_parms_dies): Do not set early dwarf here.
(dwarf2out_early_finish): But do it here.

From-SVN: r239753

8 years agore PR c/77323 (Bad "defaults to 'int'" warning for unsupported types)
Marek Polacek [Thu, 25 Aug 2016 08:22:56 +0000 (08:22 +0000)]
re PR c/77323 (Bad "defaults to 'int'" warning for unsupported types)

PR c/77323
* c-decl.c (declspecs_add_type): Set typespec_word even when __intN
or _FloatN or _FloatNx is not supported.
(finish_declspecs): Set type to integer_type_node when _FloatN or
_FloatNx is not supported.

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

From-SVN: r239752

8 years agoDaily bump.
GCC Administrator [Thu, 25 Aug 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239751

8 years agore PR fortran/77358 ([F08] deferred-length character function returns zero-length...
Paul Thomas [Wed, 24 Aug 2016 19:33:14 +0000 (19:33 +0000)]
re PR fortran/77358 ([F08] deferred-length character function returns zero-length string)

2016-08-24  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/77358
* resolve.c (resolve_fl_procedure): Use the correct gfc_charlen
for deferred character length module procedures.

2016-08-24  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/77358
* gfortran.dg/submodule_17.f08: New test.

From-SVN: r239740

8 years agoarm-modes.def: Add new condition code mode CC_V to represent the overflow bit.
Michael Collison [Wed, 24 Aug 2016 19:31:20 +0000 (19:31 +0000)]
arm-modes.def: Add new condition code mode CC_V to represent the overflow bit.

2016-08-24  Michael Collison <michael.collison@linaro.org>
    Michael Collison <michael.collison@arm.com>

* config/arm/arm-modes.def: Add new condition code mode CC_V
to represent the overflow bit.
* config/arm/arm.c (maybe_get_arm_condition_code):
Add support for CC_Vmode.
(arm_gen_unlikely_cbranch): New function to generate common
rtl conditional branches for overflow patterns.
* config/arm/arm-protos.h: Add prototype for
arm_gen_unlikely_cbranch.
* config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
addsi3_compareV_upper): New patterns to support signed
builtin overflow add operations.
(uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
New patterns to support unsigned builtin add overflow operations.
(subv<mode>4, sub<mode>3_compare1): New patterns to support signed
builtin overflow subtract operations,
(usubv<mode>4): New patterns to support unsigned builtin subtract
overflow operations.
(negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
to support builtin overflow negate operations.
* gcc.target/arm/builtin_saddl.c: New testcase.
* gcc.target/arm/builtin_saddll.c: New testcase.
* gcc.target/arm/builtin_uaddl.c: New testcase.
* gcc.target/arm/builtin_uaddll.c: New testcase.
* gcc.target/arm/builtin_ssubl.c: New testcase.
* gcc.target/arm/builtin_ssubll.c: New testcase.
* gcc.target/arm/builtin_usubl.c: New testcase.
* gcc.target/arm/builtin_usubll.c: New testcase.

Co-Authored-By: Michael Collison <michael.collison@arm.com>
From-SVN: r239739

8 years agore PR target/77270 (Flag -mprftchw is shared with 3dnow for -march=k8)
Uros Bizjak [Wed, 24 Aug 2016 14:59:43 +0000 (16:59 +0200)]
re PR target/77270 (Flag -mprftchw is shared with 3dnow for -march=k8)

PR target/77270
* gcc.dg/tree-ssa/loop-28.c: Also compile on 32bit x86 targets.
(dg-options): Use -march=amdfam10 instead of -march=athlon.
* gcc.dg/tree-ssa/update-unroll-1.c: Ditto.
* gcc.dg/tree-ssa/prefetch-3.c: Ditto.
* gcc.dg/tree-ssa/prefetch-4.c: Ditto.
* gcc.dg/tree-ssa/prefetch-5.c: Ditto.
* gcc.dg/tree-ssa/prefetch-6.c: Ditto.  Do not require sse2
effective target.  Remove scan-assembler-times directives.
* gcc.dg/tree-ssa/prefetch-7.c: Ditto.
* gcc.dg/tree-ssa/prefetch-8.c: Ditto.
* gcc.dg/tree-ssa/prefetch-9.c: Ditto.

From-SVN: r239737

8 years agoRevert "Drop excess size used for run time allocated stack variables."
Andreas Krebbel [Wed, 24 Aug 2016 10:56:37 +0000 (10:56 +0000)]
Revert "Drop excess size used for run time allocated stack variables."

This patch caused a bootstrap failure on AIX.

2016-08-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

Revert
2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* explow.c (get_dynamic_stack_size): Take known alignment of stack
pointer + STACK_DYNAMIC_OFFSET into account when calculating the
size needed.

From-SVN: r239735

8 years agofragments.texi (MULTILIB_REUSE): Mention that only options in MULTILIB_OPTIONS should...
Thomas Preud'homme [Wed, 24 Aug 2016 09:51:35 +0000 (09:51 +0000)]
fragments.texi (MULTILIB_REUSE): Mention that only options in MULTILIB_OPTIONS should be used.

2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
    MULTILIB_OPTIONS should be used.  Small wording fixes.
    * genmultilib: Memorize set of all option combinations in
    combination_space.  Detect if RHS of MULTILIB_REUSE uses an option not
    found in MULTILIB_OPTIONS by checking if option set is listed in
    combination_space.  Output new and existing error message to stderr.

From-SVN: r239734

8 years agot-aprofile (MULTILIB_MATCHES): Add mapping for -mcpu=cortex-a7, -mfpu=neon-fp16,...
Thomas Preud'homme [Wed, 24 Aug 2016 09:51:26 +0000 (09:51 +0000)]
t-aprofile (MULTILIB_MATCHES): Add mapping for -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.

2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
    -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
    Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
    (MULTILIB_REUSE): Remove reuse rules for option set including
    -mfpu=fp-armv8 and -mfpu=vfpv4

From-SVN: r239733

8 years agoFix bogus testsuite failures for avr.
Senthil Kumar Selvaraj [Wed, 24 Aug 2016 08:36:56 +0000 (08:36 +0000)]
Fix bogus testsuite failures for avr.

gcc/testsuite/

2016-08-24  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.c-torture/execute/pr71083.c: Use UINT32_TYPE instead
        of unsigned int.
        * gcc.dg/zero_sign_ext_test.c: Require int32plus.

From-SVN: r239732

8 years agoRemove trailing whitespace in C++ headers
Aditya Kumar [Wed, 24 Aug 2016 08:03:01 +0000 (08:03 +0000)]
Remove trailing whitespace in C++ headers

2016-08-24  Aditya Kumar  <hiraditya@msn.com>

* include/bits/algorithmfwd.h: Remove trailing whitespace.
* include/bits/shared_ptr_base.h: Likewise.

From-SVN: r239731

8 years agore PR testsuite/77317 (x86_64 --target_board=''unix/ unix/-m32'' parallel testrun...
Robert Suchanek [Wed, 24 Aug 2016 07:53:07 +0000 (07:53 +0000)]
re PR testsuite/77317 (x86_64 --target_board=''unix/ unix/-m32'' parallel testrun gives inconsistent results in gcc.dg/vect)

Fix PR testsuite/77317

gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_vect_aligned_arrays): Don't cache the result.
(check_effective_target_vect_natural_alignment): Ditto.
(check_effective_target_vector_alignment_reachable): Ditto.
(check_effective_target_vector_alignment_reachable_for_64bit): Ditto.

From-SVN: r239730

8 years ago[RTEMS] Add vfp multilib for ARM
Sebastian Huber [Wed, 24 Aug 2016 06:05:04 +0000 (06:05 +0000)]
[RTEMS] Add vfp multilib for ARM

gcc/

* config/arm/t-rtems: Add vfp multilib.

From-SVN: r239727

8 years agoDaily bump.
GCC Administrator [Wed, 24 Aug 2016 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239726

8 years agos390.c (s390_asm_file_start): Call default_file_start.
Ian Lance Taylor [Tue, 23 Aug 2016 20:43:17 +0000 (20:43 +0000)]
s390.c (s390_asm_file_start): Call default_file_start.

gcc/:
* config/s390/s390.c (s390_asm_file_start): Call
default_file_start.
gcc/testsuite/:
* gcc.target/s390/nolrl-1.c: Don't match the file name.

From-SVN: r239713

8 years agors6000.c (rs6000_expand_vector_init): Set initialization of all 0's to the 0 constant...
Michael Meissner [Tue, 23 Aug 2016 20:41:32 +0000 (20:41 +0000)]
rs6000.c (rs6000_expand_vector_init): Set initialization of all 0's to the 0 constant, instead of directly generating XOR.

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

* config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
initialization of all 0's to the 0 constant, instead of directly
generating XOR.  Add support for V4SImode vector initialization on
64-bit systems with direct move, and rework the ISA 3.0 V4SImode
initialization.  Change variables used in V4SFmode vector
intialization.  For V4SFmode vector splat on ISA 3.0, make sure
any memory addresses are in index form.  Add support for using
VSPLTH/VSPLTB to initialize vector short and vector char vectors
with all of the same element.
(regno_or_subregno): New helper function to return a register
number for either REG or SUBREG.
(rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
Use regno_or_subregno where possible.
(rs6000_split_v4si_init_di_reg): New helper function to build up a
DImode value from two SImode values in order to generate V4SImode
vector initialization on 64-bit systems with direct move.
(rs6000_split_v4si_init): Split up the insns for a V4SImode vector
initialization.
(rtx_is_swappable_p): V4SImode vector initialization insn is not
swappable.
* config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
declaration.
* config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
attributes to initialize V8HImode and V16QImode vectors with the
same element.
(VSX_SPLAT_COUNT): Likewise.
(VSX_SPLAT_SUFFIX): Likewise.
(UNSPEC_VSX_VEC_INIT): New unspec.
(vsx_concat_v2sf): Eliminate using 'preferred' register classes.
Allow SFmode values to come from Altivec registers.
(vsx_init_v4si): New insn/split for V4SImode vector initialization
on 64-bit systems with direct move.
(vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
vector initializations, to allow V4SImode vector initializations
on 64-bit systems with direct move.
(vsx_splat_v4si): Likewise.
(vsx_splat_v4si_di): Likewise.
(vsx_splat_v4sf): Likewise.
(vsx_splat_v4sf_internal): Likewise.
(vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
register classes.
(vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
(vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
initializing V8HImode and V16QImode vectors with the same
element.
* config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
optimization if -maltivec=be.

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

* gcc.target/powerpc/vec-init-1.c: Add tests where the vector is
being created from pointers to memory locations.
* gcc.target/powerpc/vec-init-2.c: Likewise.

From-SVN: r239712

8 years agoline-map.h: add source_range::from_locations
David Malcolm [Tue, 23 Aug 2016 20:20:48 +0000 (20:20 +0000)]
line-map.h: add source_range::from_locations

libcpp/ChangeLog:
* include/line-map.h (source_range::from_locations): New method.

From-SVN: r239711

8 years ago[ARM] Fix predicable_short_it attribute for arm_movqi_insn
Christophe Lyon [Tue, 23 Aug 2016 20:07:52 +0000 (20:07 +0000)]
[ARM] Fix predicable_short_it attribute for arm_movqi_insn

2016-08-23  Christophe Lyon  <christophe.lyon@linaro.org>

* config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
attribute for alternatives 3 and 4.

From-SVN: r239710

8 years agodecl.c (gfc_match_structure_decl): Make gfc_structure_id static.
Fritz Reese [Tue, 23 Aug 2016 19:33:46 +0000 (19:33 +0000)]
decl.c (gfc_match_structure_decl): Make gfc_structure_id static.

2016-08-23  Fritz Reese  <fritzoreese@gmail.com>

gcc/fortran/
* decl.c (gfc_match_structure_decl): Make gfc_structure_id static.

gcc/testsuite/gfortran.dg/
* dec_structure_12.f90: New testcase.

From-SVN: r239709