1. 30 May, 2018 5 commits
    • Replace dead store with early return · b005486b
      	* typeck.c (cxx_sizeof_or_alignof_type): Return size_one_node instead
      	of using it in dead store.
      
      From-SVN: r260920
      Jonathan Wakely committed
    • Use poly_int tree accessors · 6e246559
      This patch generalises various places that used hwi tree accessors so
      that they can handle poly_ints instead.  In many cases these changes
      are by inspection rather than because something had shown them to be
      necessary.
      
      I think the alias.c part is a minor bug fix: previously we used
      fits_uhwi_p for a signed HOST_WIDE_INT (which the caller does
      treat as signed rather than unsigned).  We also checked whether
      each individual offset overflowed but didn't check whether the
      sum did.
      
      2018-05-30  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* alias.c (adjust_offset_for_component_ref): Use poly_int_tree_p
      	and wi::to_poly_offset.  Add the current offset and then check
      	whether the sum fits, rather than using an unchecked addition of
      	a checked term.  Check for a shwi rather than a uhwi.
      	* expr.c (get_bit_range): Use tree_to_poly_uint64.
      	(store_constructor): Use poly_int_tree_p.
      	(expand_expr_real_1): Likewise.
      	* function.c (assign_temp): Likewise.
      	* fold-const.c (const_binop): Use poly_int_tree_p and
      	wi::to_poly_offset.
      	(fold_indirect_ref_1): Likewise.  Use multiple_p to attempt an exact
      	division.
      	* ipa-icf-gimple.c (func_checker::compare_operand): Use
      	to_poly_offset for MEM offsets.
      	* ipa-icf.c (sem_variable::equals): Likewise.
      	* stor-layout.c (compute_record_mode): Use poly_int_tree_p.
      	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
      	wi::to_poly_offset for BIT_FIELD_REF offsets.
      	(vn_reference_maybe_forwprop_address): Use poly_int_tree_p and
      	wi::to_poly_offset.
      	* var-tracking.c (emit_note_insn_var_location): Use
      	tree_to_poly_uint64.
      
      From-SVN: r260914
      Richard Sandiford committed
    • cmd/go, cmd/vet: make vet work with gccgo · bb3976df
          
          Backport https://golang.org/cl/113715 and https://golang.org/cl/113716:
          
          cmd/go: don't pass -compiler flag to vet
          
          Without this running go vet -compiler=gccgo causes vet to fail.
          The vet tool does need to know the compiler, but it is passed in
          vetConfig.Compiler.
          
          cmd/go, cmd/vet, go/internal/gccgoimport: make vet work with gccgo
          
          When using gccgo/GoLLVM, there is no package file for a standard
          library package. Since it is impossible for the go tool to rebuild the
          package, and since the package file exists only in the form of a .gox
          file, this seems like the best choice. Unfortunately it was confusing
          vet, which wanted to see a real file. This caused vet to report errors
          about missing package files for standard library packages. The
          gccgoimporter knows how to correctly handle this case. Fix this by
          
          1) telling vet which packages are standard;
          2) letting vet skip those packages;
          3) letting the gccgoimporter handle this case.
          
          As a separate required fix, gccgo/GoLLVM has no runtime/cgo package,
          so don't try to depend on it (as it happens, this fixes golang/go#25324).
          
          The result is that the cmd/go vet tests pass when using -compiler=gccgo.
          
          Reviewed-on: https://go-review.googlesource.com/114516
      
      From-SVN: r260913
      Ian Lance Taylor committed
    • Daily bump. · fc27db2b
      From-SVN: r260912
      GCC Administrator committed
  2. 29 May, 2018 35 commits
    • RISC-V: Fix a comment typo. · 5af3ff21
      	* config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo.
      
      From-SVN: r260907
      Jim Wilson committed
    • PR c++/67445 - returning temporary initializer_list. · 04eb9c55
      	PR c++/67711 - assigning from temporary initializer_list.
      	PR c++/48562 - new initializer_list.
      	* typeck.c (maybe_warn_about_returning_address_of_local): Also warn
      	about returning local initializer_list.
      	* cp-tree.h (AUTO_TEMP_NAME, TEMP_NAME_P): Remove.
      	* call.c (build_over_call): Warn about assignment from temporary
      	init_list.
      	* init.c (build_new_1): Warn about 'new std::initializer_list'.
      	(find_list_begin, maybe_warn_list_ctor): New.
      	(perform_member_init): Use maybe_warn_list_ctor.
      
      From-SVN: r260905
      Jason Merrill committed
    • re PR target/85950 (Unsafe-math-optimizations regresses optimization using SSE4.1 roundss) · 5d2e68ea
      	PR target/85950
      	* config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2):
      	Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q}
      	sequence.
      	(sse4_1_round<mode>2): Use nonimmediate_operand
      	for operand 1 predicate.
      
      testsuite/ChangeLog:
      
      	PR target/85950
      	* gcc.target/i386/pr85950.c: New test.
      
      From-SVN: r260903
      Uros Bizjak committed
    • PR middle-end/85888 - New test case c-c++-common/attr-nonstring-6.c from r260541… · 72930d9f
      PR middle-end/85888 - New test case c-c++-common/attr-nonstring-6.c from r260541 fails with excess errors
      
      2018-05-29  Martin Sebor  <msebor@redhat.com>
      	    Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/85888
      	* calls.c (get_size_range): Call determine_value_range instead
      	of get_value_range..
      	* tree-vrp.h (determine_value_range): Declared new function.
      	* tree-vrp.c (determine_value_range_1, determine_value_range): New.
      
      Co-Authored-By: Richard Biener <rguenther@suse.de>
      
      From-SVN: r260902
      Martin Sebor committed
    • re PR c++/85883 (class template argument deduction fails in new-expression) · 009bb506
      	PR c++/85883
      	* init.c (build_new): Handle deducing a class with new
      	with more than one argument.
      
      	* g++.dg/cpp1z/class-deduction55.C: New test.
      	* g++.dg/cpp1z/class-deduction56.C: New test.
      	* g++.dg/cpp1z/class-deduction57.C: New test.
      
      From-SVN: r260901
      Marek Polacek committed
    • Qualify another call in <variant> · 5baa6f8e
      	* include/std/variant (__erased_dtor): Qualify call to __get.
      
      From-SVN: r260900
      Jonathan Wakely committed
    • re PR c++/85952 (Bogus -Wunused-but-set-variable warning with array structured binding) · 69ce0c8c
      	PR c++/85952
      	* init.c (build_aggr_init): For structured binding initialized from
      	array call mark_rvalue_use on the initializer.
      
      	* g++.dg/warn/Wunused-var-33.C: New test.
      
      From-SVN: r260899
      Jakub Jelinek committed
    • tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make sure to use… · fec0bf30
      tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make sure to use non-pattern stmts for get_earlier_stmt arguments.
      
      2018-05-29  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make
      	sure to use non-pattern stmts for get_earlier_stmt arguments.
      	* tree-vectorizer.h (get_earlier_stmt): Assert we do not get
      	called on pattern stmts.
      	(get_later_stmt): Likewise.
      
      From-SVN: r260896
      Richard Biener committed
    • libgcov: report about a different timestamp (PR gcov-profile/85759). · 0e8f29da
      2018-05-29  Martin Liska  <mliska@suse.cz>
      
              PR gcov-profile/85759
      	* doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR
      	env variables.
      2018-05-29  Martin Liska  <mliska@suse.cz>
      
              PR gcov-profile/85759
      	* libgcov-driver-system.c (gcov_error): Introduce usage of
              GCOV_EXIT_AT_ERROR env. variable.
      	* libgcov-driver.c (merge_one_data): Print error that we
              overwrite a gcov file with a different timestamp.
      
      From-SVN: r260895
      Martin Liska committed
    • tree-cfg.c (verify_gimple_assign_unary): Add checking for VEC_UNPACK_*_EXPR. · e379122d
      	* tree-cfg.c (verify_gimple_assign_unary): Add checking for
      	VEC_UNPACK_*_EXPR.
      	(verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for
      	VEC_PACK_*_EXPR.
      
      From-SVN: r260894
      Jakub Jelinek committed
    • re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized… · 1bda738b
      re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized for AVX512DQ target)
      
      	PR target/85918
      	* tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR,
      	VEC_PACK_FLOAT_EXPR): New tree codes.
      	* tree-pretty-print.c (op_code_prio): Handle
      	VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR.
      	(dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR,
      	VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR.
      	* fold-const.c (const_binop): Likewise.
      	(const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and
      	VEC_UNPACK_FIX_TRUNC_LO_EXPR.
      	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
      	(verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR.
      	* cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR,
      	VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR.
      	* expr.c (expand_expr_real_2): Likewise.
      	* optabs.def (vec_packs_float_optab, vec_packu_float_optab,
      	vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab,
      	vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New
      	optabs.
      	* optabs.c (expand_widen_pattern_expr): For
      	VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use
      	sign from result type rather than operand's type.
      	(expand_binop_directly): For vec_packu_float_optab and
      	vec_packs_float_optab allow result type to be different from operand's
      	type.
      	* optabs-tree.c (optab_for_tree_code): Handle
      	VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and
      	VEC_PACK_FLOAT_EXPR.  Formatting fixes.
      	* tree-vect-generic.c (expand_vector_operations_1):  Handle
      	VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and
      	VEC_PACK_FLOAT_EXPR.
      	* tree-vect-stmts.c (supportable_widening_operation): Handle
      	FIX_TRUNC_EXPR.
      	(supportable_narrowing_operation): Handle FLOAT_EXPR.
      	* config/i386/i386.md (fixprefix, floatprefix): New code attributes.
      	* config/i386/sse.md (*float<floatunssuffix>v2div2sf2): Rename to ...
      	(float<floatunssuffix>v2div2sf2): ... this.  Formatting fix.
      	(vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New
      	mode attributes.
      	(vec_pack<floatprefix>_float_<mode>): New expander.
      	(vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode
      	attributes.
      	(vec_unpack_<fixprefix>fix_trunc_lo_<mode>,
      	vec_unpack_<fixprefix>fix_trunc_hi_<mode>): New expanders.
      	* doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m},
      	vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m},
      	vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}):
      	Document.
      	* doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR,
      	VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description.
      	(VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR,
      	VEC_PACK_FLOAT_EXPR): Document.
      
      	* gcc.target/i386/avx512dq-pr85918.c: Add -mprefer-vector-width=512
      	and -fno-vect-cost-model options.  Add aligned(64) attribute to the
      	arrays.  Add suffix 1 to all functions and use 4 iterations rather
      	than N.  Add functions with conversions to and from float.
      	Add new set of functions with 8 iterations and another one
      	with 16 iterations, expect 24 vectorized loops instead of just 4.
      	* gcc.target/i386/avx512dq-pr85918-2.c: New test.
      
      From-SVN: r260893
      Jakub Jelinek committed
    • tree-vectorizer.h (struct vec_info): Add stmt_vec_infos member. · f8c0baaf
      2018-05-29  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.h (struct vec_info): Add stmt_vec_infos
      	member.
      	(stmt_vec_info_vec): Make pointer.
      	(init_stmt_vec_info_vec): Remove.
      	(free_stmt_vec_info_vec): Likewise.
      	(set_stmt_vec_info_vec): New function.
      	(free_stmt_vec_infos): Likewise.
      	(vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection.
      	(set_vinfo_for_stmt): Likewise.
      	(get_earlier_stmt): Likewise.
      	(get_later_stmt): Likewise.
      	* tree-vectorizer.c (stmt_vec_info_vec): Make pointer.
      	(vec_info::vec_info): Allocate stmt_vec_infos and set the global.
      	(vec_info::~vec_info): Free stmt_vec_infos.
      	(vectorize_loops): Set the global stmt_vec_info_vec to NULL.
      	Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls.
      	(pass_slp_vectorize::execute): Likewise.
      	* tree-vect-stmts.c (init_stmt_vec_info_vec): Remove.
      	(free_stmt_vec_info_vec): Likewise.
      	(set_stmt_vec_info_vec): New function.
      	(free_stmt_vec_infos): Likewise.
      	* tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set
      	the global stmt_vec_info_vec.
      	* tree-parloops.c (gather_scalar_reductions): Use
      	set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local
      	vector.
      
      From-SVN: r260892
      Richard Biener committed
    • dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE. · 092cb01c
      2018-05-29  Richard Biener  <rguenther@suse.de>
      
      	* dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE.
      
      From-SVN: r260891
      Richard Biener committed
    • Add vec::reverse. · c04f6480
      2018-05-29  Martin Liska  <mliska@suse.cz>
      	    David Malcolm  <dmalcolm@redhat.com>
      
      	* vec.c (test_reverse): New.
      	(vec_c_tests): Add new test.
      	* vec.h (vl_ptr>::reverse): New function.
      
      Co-Authored-By: David Malcolm <dmalcolm@redhat.com>
      
      From-SVN: r260890
      Martin Liska committed
    • [Ada] Adjust documentation of -gnatn switch · 86e74d58
      This changes the wording in the documentation of the -gnatn switch to make
      it use "units" rather than "modules" and also adjusts the usage message.
      
      No functional changes.
      
      2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical
      	List of All Switches): Replace "modules" with "units".
      	(Subprogram Inlining Control): Likewise.
      	* gnat_ugn.texi: Regenerate.
      	* usage.adb (Usage): Fix description of -gnatn switch.
      
      From-SVN: r260889
      Eric Botcazou committed
    • [Ada] Fix typos in Makefile.in · 4f95a818
      2018-05-29  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/Makefile.in: Fix typos.
      
      From-SVN: r260888
      Arnaud Charlet committed
    • [Ada] Attach reference to finalizers to tree · 795d0063
      2018-05-29  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to
      	the finalizer procedure in the At_End handler, for use in LLVM
      	generation.
      
      From-SVN: r260887
      Ed Schonberg committed
    • [Ada] Wrong equality on untagged private type · 65641255
      When a private type declaration T1 is completed with a derivation of an
      untagged private type that overrides the predefined equality primitive, and the
      full view of T2 is a derivation of another private type T2 whose full view is a
      tagged type, the compiler may generate code that references the wrong equality
      primitive when processing comparisons of objects of type T1.
      
      2018-05-29  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new
      	subprogram Inherits_From_Tagged_Full_View to identify more reliably
      	untagged private types completed with a derivation of an untagged
      	private whose full view is a tagged type.
      	* sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New
      	subprogram.
      	(Collect_Primitive_Operations): Handle untagged private types completed
      	with a derivation of an untagged private type whose full view is a
      	tagged type. In such case, collecting the list of primitives we may
      	find two equality primitives: one associated with the untagged private
      	and another associated with the ultimate tagged type (and we must
      	remove from the returned list this latter one).
      
      gcc/testsuite/
      
      	* gnat.dg/equal2.adb: New testcase.
      
      From-SVN: r260886
      Javier Miranda committed
    • [Ada] Unnesting: handle statement sequences that include an At_End handler · 999acab6
      2018-05-29  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Visit_Node): Handle statement sequences that include an
      	At_End handler.
      
      From-SVN: r260885
      Ed Schonberg committed
    • [Ada] Plug small hole in -gnatR output · 944e24a3
      The -gnatR switch outputs representation information for locally-defined
      types but it was skipping those defined in blocks without label, unlike
      those defined in named blocks.  This change plugs this small hole.
      
      The following procedure:
      
      procedure P is
      begin
        declare
          type R is record
            I : Integer;
          end record;
        begin
          null;
        end;
      end;
      
      must now generate the following output with -gnatR:
      
      Representation information for unit P (body)
      --------------------------------------------
      
      for B_1.R'Size use 32;
      for B_1.R'Alignment use 4;
      for B_1.R use record
         I at 0 range  0 .. 31;
      end record;
      
      2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Entities): Also recurse into blocks without label.
      
      From-SVN: r260884
      Eric Botcazou committed
    • [Ada] Unnesting: do not generate push/pop for exceptions · 3747db82
      2018-05-29  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for
      	exceptions if subprogram unnesting is in effect, because these branch
      	nodes are relevant only in the presence of nested subprograms.
      
      From-SVN: r260883
      Ed Schonberg committed
    • [Ada] Improper behavior of floating-point attributes · ef22a3b2
      This patch fixes an error in the handling of attributes Pred qnd Succ when
      applied to the limit values of a floating-point type. The RM mandates that
      such operations must raise constraint_error, but GNAT generated in most cases
      an infinite value, regardless of whether overflow checks were enabled.
      
      2018-05-29  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* libgnat/s-fatgen.adb (Succ, Pred):  Raise Constraint_Error
      	unconditionally when applied to the largest positive (resp. largest
      	negative) value of a floating-point type.
      
      gcc/testsuite/
      
      	* gnat.dg/float_attributes_overflows.adb: New testcase.
      
      From-SVN: r260882
      Ed Schonberg committed
    • [Ada] Clarify use of Activation_Record_Component · 54e33e5f
      2018-05-29  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* einfo.ads, einfo.adb: Clarify use of Activation_Record_Component:
      	discriminants and exceptions are never components of such.  The flag
      	Needs_Activation_Record is set on subprogram types, not on access to
      	them.
      
      From-SVN: r260881
      Ed Schonberg committed
    • [Ada] Set scope of component of subtype · 895500a2
      2018-05-29  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch3.adb: Set scope of component of subtype.
      
      From-SVN: r260880
      Ed Schonberg committed
    • [Ada] Unnesting: exclude selected components whose prefix carry no type · 14f8ba9a
      2018-05-29  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Visit_Node): Exclude selected components whose prefix
      	carry no type. Such selected components appear in unit names that are
      	child units, both in the specification and possibly in an end label for
      	the unit, and they do not contain any relevant uplevel references.
      
      From-SVN: r260879
      Ed Schonberg committed
    • [Ada] Turn Ada.Calendar.Epoch_Offset into a function · ec3b72c5
      2018-05-29  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a
      	function.
      
      From-SVN: r260878
      Arnaud Charlet committed
    • [Ada] Add system-vxworks7 variants of system.ads files for Vx7 · 57dfb3ec
      Based on the Vx6 versions, using a different link spec to accomodate VxWorks 7
      specificities, in particular the ability in some configurations to rely on
      .ctor sections to trigger constructors in kernel modules.
      
      2018-05-29  Olivier Hainque  <hainque@adacore.com>
      
      gcc/ada/
      
      	* libgnat/system-vxworks7-ppc-rtp.ads: New file.
      	* libgnat/system-vxworks7-ppc-kernel.ads: New file.
      	* libgnat/system-vxworks7-e500-rtp.ads: New file.
      	* libgnat/system-vxworks7-e500-kernel.ads: New file.
      	* libgnat/system-vxworks7-x86-rtp.ads: New file.
      	* libgnat/system-vxworks-ppc64-kernel.ads: Rename as ...
      	* libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of
      	gnat-crtbe link spec to use the vx7 variant.
      
      From-SVN: r260877
      Olivier Hainque committed
    • [Ada] Tighten crtbegin files for VxWorks · 1f39fcd6
      Enforce a more explicit distinction of crtbegin objects holding
      either functions with ctor/dtor attributes or _ctors/_dtors arrays,
      or none of the two (no array, no attributes). Then allow/enforce
      different linking strategies for VxWorks 7.
      
      2018-05-29  Olivier Hainque  <hainque@adacore.com>
      
      gcc/ada/
      
      	* vx_crtbegin.inc: Use a consistent naming convention for the
      	registration/deregistration functions across RTP or kernel.  Remove the
      	ctor/dtor attribute setting based on RTP/kernel, expect the optional
      	attribute extension to be provided by includers instead.
      	* vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute
      	extension for the registration/deregistration functions.
      	* vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit
      	constructor/destructor attribute extensions.
      	* vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty
      	attribute extensions and declare _ctors/_dtors arrays.
      	* vx_crtbegin_auto.c: Remove.
      	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use
      	vxworks7-gnat-crtbe-link.spec.
      	* libgnat/system-vxworks7-aarch64.ads: Likewise.
      	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
      	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
      	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
      	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
      	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
      	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
      	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
      
      From-SVN: r260876
      Olivier Hainque committed
    • [Ada] Minor reformatting · 8f1edbd3
      2018-05-29  Piotr Trojanek  <trojanek@adacore.com>
      
      gcc/ada/
      
      	* ali.adb: Minor reformatting.
      
      From-SVN: r260875
      Piotr Trojanek committed
    • [Ada] GNAT UGN: update package requirements for 32bit GNAT on x86_64-linux · c258a5b2
      2018-05-29  Joel Brobecker  <brobecker@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/platform_specific_information.rst: Update package
      	requirements for 32bit GNAT on x86_64-linux.
      	* gnat_ugn.texi: Regenerate.
      
      From-SVN: r260874
      Joel Brobecker committed
    • [Ada] Adjustment of behavior of new -gnatRj switch · de9b2a96
      This decouples -gnatRj from the destination, either standard output or file,
      so that it only toggles the format of the representation information.
      
      2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging
      	Control): Adjust description of -gnatRj.
      	* gnat_ugn.texi: Regenerate.
      	* opt.ads (List_Representation_Info_To_JSON): Likewise.
      	* repinfo.adb (List_Rep_Info): Do not automatically create a file
      	if List_Representation_Info_To_JSON is true.
      	* switch-c.adb (Scan_Front_End_Switches) <R>: Remove incompatibility
      	check between -gnatRj and -gnatRs.
      	* usage.adb (Usage): Adjust description of -gnatRj.
      
      From-SVN: r260873
      Eric Botcazou committed
    • [Ada] Fix constraint error in Normalize_Pathname · ce09c3c0
      Fix Normalize_Pathname to avoid a constraint error.
      
      2018-05-29  Pascal Obry  <obry@adacore.com>
      
      gcc/ada/
      
      	* libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in
      	the root directory.
      
      gcc/testsuite/
      
      	* gnat.dg/normalize_pathname.adb: New testcase.
      
      From-SVN: r260872
      Pascal Obry committed
    • [Ada] System.Os_Lib: minor reformatting · ae3d5f11
      2018-05-29  Pascal Obry  <obry@adacore.com>
      
      gcc/ada/
      
      	* libgnat/s-os_lib.adb: Minor reformatting.
      
      From-SVN: r260871
      Pascal Obry committed
    • [Ada] New function to return nanoseconds from Unix Epoch · 35f5e2c1
      2018-05-29  Doug Rupp  <rupp@adacore.com>
      
      gcc/ada/
      
      	* libgnat/a-calend.adb (Epoch_Offset): Move from body to ...
      	* libgnat/a-calend.ads (Epoch_Offset): to private part of spec
      	* libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec.
      	* libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body.
      
      From-SVN: r260870
      Doug Rupp committed
    • [Ada] Enhance output of discriminants with -gnatR in JSON mode · 0f9ca030
      This arranges for the Discriminant_Number of discriminants to be output
      by -gnatR in JSON mode.  This number is referenced in symbolic expressions
      present for offsets and sizes, so its definition is also required for the
      sake of completeness.
      
      2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.ads (JSON format): Document new pair for components.
      	* repinfo.adb (Derived_Discriminant): New function.
      	(List_Structural_Record_Layout): Add Outer_Ent parameter and pass it
      	in recursive calls. If the record type is the parent of an extension,
      	find and list the derived discriminant from the extension, if any.
      	(List_Component_Layout): List the Discriminant_Number in JSON mode.
      	(List_Record_Info): Adjust call to List_Structural_Record_Layout.
      
      From-SVN: r260869
      Eric Botcazou committed