1. 01 Sep, 2016 15 commits
    • ipa-inline-analysis.c (param_change_prob): Get to the base object first in all cases. · 0a6b0523
      	* ipa-inline-analysis.c (param_change_prob): Get to the base object
      	first in all cases.
      
      From-SVN: r239943
      Eric Botcazou committed
    • rs6000: Use LR_REGNO directly in the save/restore patterns · d87a85c6
      Various patterns use "register_operand" "l" (or "=l") although those
      patterns are only created refering to LR_REGNO directly.  This patch
      changes those patterns to use the hard regs as well.
      
      
      	* config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
      	*restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
      	*return_and_restore_gpregs_<mode>_r11,
      	*return_and_restore_gpregs_<mode>_r12,
      	*return_and_restore_gpregs_<mode>_r1,
      	*return_and_restore_fpregs_<mode>_r11,
      	*return_and_restore_fpregs_<mode>_r12,
      	*return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
      	directly instead of via the "l" constraint.  Renumber operands.
      	Fix whitespace.
      
      From-SVN: r239942
      Segher Boessenkool committed
    • rs6000: Use LR_REGNO instead of constant 65 · 893fc0a0
      Many places still use 65 instead of the symbolic constant LR_REGNO.  This
      fixes them all (I looked for the string "65" only, in config/rs6000/ only,
      I didn't read all code :-) )
      
      I left it in *restore_world because Iain will remove it there soon.
      
      
      	* config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
      	save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
      	*restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
      	* config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
      	load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
      	*call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
      	*call_value_nonlocal_darwin64, reload_macho_picbase,
      	reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
      	* config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
      	* config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
      	*save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
      	*save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
      	*save_fpregs_<mode>_r1): Ditto.
      	* config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
      	*return_and_restore_gpregs_spe): Ditto.
      
      From-SVN: r239941
      Segher Boessenkool committed
    • rs6000: Fix for AIX, for r239866 · a345b5b0
      This should fix r239866 for AIX.  I missed two patterns that refer to LR
      as "register_operand" "l" instead of as reg:P LR_REGNO.
      
      
      	* config/rs6000/rs6000.md
      	(define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
      	the use of the link register.
      	(define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
      
      From-SVN: r239940
      Segher Boessenkool committed
    • re PR c/7652 (-Wswitch-break : Warn if a switch case falls through) · 295844f6
      	PR c/7652
      gcc/c-family/
      	* c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
      	FALLTHRU comments.
      gcc/c/
      	* c-typeck.c (composite_type): Add FALLTHRU comment.
      gcc/gcc/cp/
      	* error.c (dump_type): Fix falls through comment.
      	(dump_decl): Likewise.
      	(dump_expr): Likewise.
      
      From-SVN: r239939
      Marek Polacek committed
    • re PR target/72827 (gnat bootstrap broken on powerpc64le-linux-gnu) · 1ca94f36
      2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      	    Michael Meissner <meissner@linux.vnet.ibm.com>
      
      	PR target/72827
      	* config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
      	reg+reg addressing for TImode.
      	(rs6000_legitimate_address_p): Only allow register indirect
      	addressing for TImode, even without TARGET_QUAD_MEMORY.
      
      
      Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
      
      From-SVN: r239938
      Bill Schmidt committed
    • re PR middle-end/77436 (Incorrect constant result for summing loop inserted) · 2a99de7b
      2016-09-01  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/77436
      	* tree-chrec.c (tree_fold_binomial): Use widest_int, properly
      	check whether the result fits the desired result type.
      
      	* gcc.dg/torture/pr77436.c: New testcase.
      
      From-SVN: r239937
      Richard Biener committed
    • This patch adds legitimize_address_displacement hook so that stack accesses... · 491ec060
      This patch adds legitimize_address_displacement hook so that stack accesses
      with large offsets are split into a more efficient sequence.  Unaligned and
      TI/TFmode use a 256-byte range, byte and halfword accesses use a 4KB range,
      wider accesses use a 16KB range to maximise the available addressing range
      and increase opportunities to share the base address.
      
      int f(int x)
      {
        int arr[8192];
        arr[4096] = 0;
        arr[6000] = 0;
        arr[7000] = 0;
        arr[8191] = 0;
        return arr[x];
      }
      
      Now generates:
      
        sub   sp, sp, #32768
        add   x1, sp, 16384
        str   wzr, [x1]
        str   wzr, [x1, 7616]
        str   wzr, [x1, 11616]
        str   wzr, [x1, 16380]
        ldr   w0, [sp, w0, sxtw 2]
        add   sp, sp, 32768
        ret
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
      	New function.
      	(TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
      
      From-SVN: r239923
      Wilco Dijkstra committed
    • Fix more bogus testsuite failures for avr. · f79d8786
      gcc/testsuite/
      
      2016-09-01  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
      
              * gcc.dg/pr64252.c: Require int32plus.
              * gcc.dg/pr66299-1.c: Likewise.
              * gcc.dg/pr66299-2.c: Likewise.
              * gcc.dg/torture/20131115-1.c: Skip for avr.
      
      From-SVN: r239921
      Senthil Kumar Selvaraj committed
    • [AArch64] Add ANDS pattern for CMP+ZERO_EXTEND · b06335f9
      	* config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
      	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
      	for comparisons of integer ZERO_EXTEND against zero.
      
      	* gcc.target/aarch64/ands_3.c: New test.
      
      From-SVN: r239919
      Kyrylo Tkachov committed
    • i386.c (ix86_option_override_internal): Also disable the STV pass if -mstackrealign is enabled. · 3409207a
      	* config/i386/i386.c (ix86_option_override_internal): Also disable the
      	STV pass if -mstackrealign is enabled.
      
      From-SVN: r239916
      Eric Botcazou committed
    • PR c++/57728 - adjust testcase · e5b9932b
      	* g++.dg/cpp0x/explicit12.C: Add -save-temps.
      
      From-SVN: r239913
      Jason Merrill committed
    • C: Fix missing spaces in 'struct' fix-it hints · 089af25c
      In r237714 I added fix-it hints to the C frontend for missing "struct"
      keywords e.g.:
      
      spellcheck-typenames.c:69:1: error: unknown type name ‘foo_t’; use
      ‘struct’ keyword to refer to the type
       foo_t *foo_ptr;
       ^~~~~
       struct 
      
      However when using the (not yet in trunk) option
       -fdiagnostics-generate-patch,
      the generated patch is nonsensical:
      
        -foo_t *foo_ptr;
        +structfoo_t *foo_ptr;
      
      Fix the fix-its by adding a trailing space to each one, giving:
      
        -foo_t *foo_ptr;
        +struct foo_t *foo_ptr;
      
      gcc/c/ChangeLog:
      	* c-parser.c (c_parser_declaration_or_fndef): Add trailing space
      	to the insertion fixits for "struct", "union", and "enum".
      
      From-SVN: r239912
      David Malcolm committed
    • Daily bump. · 76e6cb83
      From-SVN: r239911
      GCC Administrator committed
  2. 31 Aug, 2016 19 commits
    • Fix detection of AVX512IFMA in host_detect_local_cpu · 21272090
      gcc/
      	* config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
      	AVX512IFMA.
      
      From-SVN: r239908
      Ilya Verbin committed
    • diagnostic-show-locus.c: handle fixits on lines outside the regular ranges · 3d4f9f87
      The diagnostic_show_locus implementation determines the set
      of line spans that need printing based on the ranges within the
      rich_location (in layout::calculate_line_spans).
      
      Currently this doesn't take into account fix-it hints, and hence
      we fail to print fix-it hints that are on lines outside of
      those ranges.
      
      This patch updates the implementation to take fix-it hints into
      account when calculating the pertinent line spans, so that such fix-it
      hints do get printed.  It also adds some validation, to ensure that
      we don't attempt to print fix-its hints affecting a different source
      file.
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
      	(layout_range::intersects_line_p): New method.
      	(test_range_contains_point_for_single_point): Rename to...
      	(test_layout_range_for_single_point): ...this, and add testing
      	for layout_range::intersects_line_p.
      	(test_range_contains_point_for_single_line): Rename to...
      	(test_layout_range_for_single_line): ...this,  and add testing
      	for layout_range::intersects_line_p.
      	(test_range_contains_point_for_multiple_lines): Rename to...
      	(test_layout_range_for_multiple_lines): ...this,  and add testing
      	for layout_range::intersects_line_p.
      	(layout::layout): Populate m_fixit_hints.
      	(layout::get_expanded_location): Handle the case of a line-span
      	for a fix-it hint.
      	(layout::validate_fixit_hint_p): New method.
      	(get_line_span_for_fixit_hint): New function.
      	(layout::calculate_line_spans): Add spans for fixit-hints.
      	(layout::should_print_annotation_line_p): New method.
      	(layout::print_any_fixits): Drop param "richloc", instead using
      	validated fixits in m_fixit_hints.  Add "const" to hint pointers.
      	(diagnostic_show_locus): Avoid printing blank annotation lines.
      	(selftest::test_diagnostic_context::test_diagnostic_context):
      	Initialize show_column and start_span.
      	(selftest::test_diagnostic_context::start_span_cb): New static
      	function.
      	(selftest::test_diagnostic_show_locus_fixit_lines): New function.
      	(selftest::diagnostic_show_locus_c_tests): Update for function
      	renamings.  Call test_diagnostic_show_locus_fixit_lines.
      
      libcpp/ChangeLog:
      	* include/line-map.h (class fixit_remove): Remove stray decl.
      	(fixit_hint::affects_line_p): Make const.
      	(fixit_insert::affects_line_p): Likewise.
      	(fixit_replace::affects_line_p): Likewise.
      	* line-map.c (fixit_insert::affects_line_p): Likewise.
      	(fixit_replace::affects_line_p): Likewise.
      
      From-SVN: r239906
      David Malcolm committed
    • re PR tree-optimization/77352 (ICE: verify_ssa failed) · d12a0b5a
      	PR fortran/77352
      	* trans-openmp.c (gfc_trans_omp_parallel_workshare): Always add a
      	BIND_EXPR with BLOCK around what gfc_trans_omp_workshare returns.
      
      	* gfortran.dg/gomp/pr77352.f90: New test.
      
      From-SVN: r239904
      Jakub Jelinek committed
    • re PR fortran/77374 (ICE in resolve_omp_atomic, at fortran/openmp.c:3949) · f25f40be
      	PR fortran/77374
      	* parse.c (parse_omp_oacc_atomic): Copy over cp->ext.omp_atomic
      	to cp->block->ext.omp_atomic.
      	* resolve.c (gfc_resolve_blocks): Assert block with one or two
      	EXEC_ASSIGNs for EXEC_*_ATOMIC.
      	* openmp.c (resolve_omp_atomic): Don't assert one or two
      	EXEC_ASSIGNs, instead return quietly for EXEC_NOPs and otherwise
      	error unexpected statements.
      
      	* gfortran.dg/gomp/pr77374.f08: New test.
      
      From-SVN: r239903
      Jakub Jelinek committed
    • match.pd: Revert a * (1 << b) relaxation. · 9ff6fb6e
      2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR tree-optimization/73714
      gcc/
      	* match.pd (a * (1 << b)): Revert change from 2016-05-23.
      gcc/testsuite/
      	* gcc.dg/tree-ssa/pr73714.c: New test.
      
      From-SVN: r239902
      Marc Glisse committed
    • re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0) · 8e95a674
      2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/77393
      	* gfortran.dg/fmt_f0_2.f90: New test.
      
      From-SVN: r239901
      Jerry DeLisle committed
    • re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0) · d7756960
      2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/77393
      	* io/write.c (kind_from_size): New function to calculate required buffer
      	size based on kind type. (select_buffer, select_string): Use new
      	function. (write_float_0, write_real, write_real_g0, write_complex):
      	Adjust calls to pass parameters needed by new function.
      
      From-SVN: r239900
      Jerry DeLisle committed
    • Constrain std::shared_ptr assignment and resetting · 7663cae2
      	* include/bits/shared_ptr.h (_Assignable): New alias template.
      	(shared_ptr::operator=(const shared_ptr<_Tp1>&))
      	(shared_ptr::operator=(shared_ptr<_Tp1>&&))
      	(shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
      	_Assignable.
      	* include/bits/shared_ptr_base.h (_Assignable): New alias template.
      	(__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
      	(__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
      	(__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
      	_Assignable.
      	(__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
      	(__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
      	_Convertible.
      	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
      	match on any line.
      	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
      	* testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
      	* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
      	expected errors. Remove unnecessary code.
      	* testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
      
      From-SVN: r239898
      Jonathan Wakely committed
    • Move comparison object in map/set move assignment · e46d22a8
      	* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
      	comparison object.
      	* testsuite/23_containers/set/move_comparison.cc: New test.
      
      From-SVN: r239897
      Jonathan Wakely committed
    • Add test accidentally not added in revision r239121 · 3625264f
      	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
      	New test.
      
      From-SVN: r239896
      Jonathan Wakely committed
    • runtime: make gsignal stack at least SIGSTKSZ bytes · fc4eaccf
          
          The default stack size for the gsignal goroutine, 32K, is not enough on
          ia64.  Make sure that the stack size is at least SIGSTKSZ.
          
          Reviewed-on: https://go-review.googlesource.com/28224
      
      From-SVN: r239894
      Ian Lance Taylor committed
    • selftest.c: avoid explicit "selftest::" qualifiers · 96f14006
      gcc/ChangeLog:
      	* selftest.c: Move "namespace selftest {" to top of file,
      	removing explicit "selftest::" qualifiers throughout.
      
      From-SVN: r239892
      David Malcolm committed
    • [x86] Don't use builtins for unaligned load/store · c6b0037d
      2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
      	New types.
      	(_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
      	_mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
      	Replace builtin with vector extension.
      	* config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
      	New types.
      	(_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
      	_mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
      	Replace builtin with vector extension.
      	* config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
      	(_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
      	Replace builtin with vector extension.
      	* config/i386/xmmintrin.h (__m128_u): New type.
      	(_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
      	(_mm_load_ps, _mm_store_ps): Simplify.
      
      gcc/testsuite/
      	* gcc.target/i386/pr59539-2.c: Adapt options.
      	* gcc.target/i386/avx512f-vmovdqu32-1.c: Relax expected asm.
      
      From-SVN: r239889
      Marc Glisse committed
    • re PR testsuite/77418 (SELECT TYPE associating entity can be (de)allocated) · 1a576b13
      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
      Paul Thomas committed
    • [multiple changes] · e73d3ca6
      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
      Paul Thomas committed
    • Remove arbitrary limits from rich_location · b816477a
      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
      David Malcolm committed
    • Daily bump. · fb8e9c5e
      From-SVN: r239878
      GCC Administrator committed
    • selftest: split out named_temp_file from temp_source_file · 4ecfc453
      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
      David Malcolm committed
  3. 30 Aug, 2016 6 commits
    • C++: add fixit for '>>' template error · 71b30891
      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
      David Malcolm committed
    • runtime: use -fgo-c-header to build C header file · 75791bab
          
          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
      Ian Lance Taylor committed
    • re PR libstdc++/77395 (std::is_constructible is false for type constructible via… · 7875b41f
      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
      Ville Voutilainen committed
    • 2.cc: Move dg-do run directive above dg-require-namedlocale directive. · e1becf59
      	* 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
      Uros Bizjak committed
    • rs6000: Don't emit a use of LR in returns and sibcalls · dd9fe1b9
      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
      Segher Boessenkool committed
    • [PATCH][Aarch64][gcc] Fix vld2/3/4 on big endian systems · ac45b2ba
      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
      Tamar Christina committed