1. 06 Dec, 2017 16 commits
    • C/C++: don't suggest implementation names as spelling fixes (PR c/83236) · c79144f8
      gcc/c-family/ChangeLog:
      	PR c/83236
      	* c-common.c (selftest::c_family_tests): Call
      	selftest::c_spellcheck_cc_tests.
      	* c-common.h (selftest::c_spellcheck_cc_tests): New decl.
      	* c-spellcheck.cc: Include "selftest.h".
      	(name_reserved_for_implementation_p): New function.
      	(should_suggest_as_macro_p): New function.
      	(find_closest_macro_cpp_cb): Move the check for NT_MACRO to
      	should_suggest_as_macro_p and call it.
      	(selftest::test_name_reserved_for_implementation_p): New function.
      	(selftest::c_spellcheck_cc_tests): New function.
      	* c-spellcheck.h (name_reserved_for_implementation_p): New decl.
      
      gcc/c/ChangeLog:
      	PR c/83236
      	* c-decl.c (lookup_name_fuzzy): Don't suggest names that are
      	reserved for use by the implementation.
      
      gcc/cp/ChangeLog:
      	PR c/83236
      	* name-lookup.c (consider_binding_level): Don't suggest names that
      	are reserved for use by the implementation.
      
      gcc/testsuite/ChangeLog:
      	PR c/83236
      	* c-c++-common/spellcheck-reserved.c: New test case.
      
      From-SVN: r255453
      David Malcolm committed
    • Move macro-spellchecking code from "gcc" to new files in c-family · 613bc14f
      The code for spellchecking macros really belongs in c-family, rather
      than in gcc/spellcheck-tree.c, so this patch moves it there.
      
      gcc/ChangeLog:
      	* Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
      	* spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
      	c-family/c-spellcheck.cc.
      	(best_macro_match::best_macro_match): Likewise.
      	* spellcheck-tree.h
      	(struct edit_distance_traits<cpp_hashnode *>): Move to
      	c-family/c-spellcheck.h.
      	(class best_macro_match): Likewise.
      
      gcc/c-family/ChangeLog:
      	* c-spellcheck.cc: New file, taken from macro-handling code in
      	spellcheck-tree.c.
      	* c-spellcheck.h: New file, taken from macro-handling code in
      	spellcheck-tree.h.
      
      gcc/c/ChangeLog:
      	* c-decl.c: Include "c-family/c-spellcheck.h".
      
      gcc/cp/ChangeLog:
      	* name-lookup.c: Include "c-family/c-spellcheck.h".
      
      From-SVN: r255452
      David Malcolm committed
    • re PR tree-optimization/83293 (ICE: in gsi_insert_seq_nodes_after, at gimple-iterator.c:278) · 06f97084
      	PR tree-optimization/83293
      	* gimple-ssa-strength-reduction.c (insert_initializers): Use
      	GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
      	might insert into empty bb.
      
      	* g++.dg/torture/pr83293.C: New test.
      
      From-SVN: r255451
      Jakub Jelinek committed
    • PR testsuite/83303 - FAIL: g++.dg/opt/new1.C on arm-none-eabi · bf8ce85a
      PR testsuite/83303 - FAIL: g++.dg/opt/new1.C on arm-none-eabi
      (extra -Walloc-size-larger-than warning
      
      	* g++.dg/opt/new1.C: Prune warning from test output.
      
      From-SVN: r255450
      Martin Sebor committed
    • re PR sanitizer/81281 (UBSAN: false positive, dropped promotion to long type.) · d7f44d4d
      	PR sanitizer/81281
      	* match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
      	simplify for plus with :c added, and pointer_plus without that.
      	((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
      	with undefined overflow and the conversion is not widening,
      	perform negation in utype and only convert to type afterwards.
      	((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
      	simplify for plus with :c added, and pointer_plus without that.
      	If type is integral with undefined overflow and the conversion is
      	not widening, perform minus in utype and only convert to type
      	afterwards.  Move the last pointer_diff_expr simplify into the
      	two outermost ifs.
      
      	* gcc.c-torture/execute/pr81281.c: New test.
      	* gcc.dg/pr81281-1.c: New test.
      	* gcc.dg/pr81281-2.c: New test.
      	* g++.dg/ubsan/pr81281.C: New test.
      	* g++.dg/ubsan/pr81281-aux.cc: New test.
      
      From-SVN: r255449
      Jakub Jelinek committed
    • PR tree-optimization/82646 - bogus -Wstringop-overflow with -D_FORTIFY_SOURCE=2… · 9c1caf50
      PR tree-optimization/82646 - bogus -Wstringop-overflow with -D_FORTIFY_SOURCE=2 on strncpy with range to a member array
      
      gcc/ChangeLog:
      
      	PR tree-optimization/82646
      	* builtins.c (maybe_emit_chk_warning): Use size as the bound for
      	strncpy, not maxlen.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/82646
      	* gcc.dg/builtin-stringop-chk-1.c: Adjust.
      	* gcc.dg/builtin-stringop-chk-9.c: New test.
      	* g++.dg/ext/strncpy-chk1.C: Adjust.
      
      From-SVN: r255448
      Martin Sebor committed
    • invoke.texi (-Wstringop-truncation): Mention attribute nonstring. · 8a797929
      gcc/ChangeLog:
      
      	* doc/invoke.texi (-Wstringop-truncation): Mention attribute
      	nonstring.
      
      From-SVN: r255447
      Martin Sebor committed
    • PR tree-optimization/83075 - Invalid strncpy optimization · 25b15e95
      gcc/ChangeLog:
      
      	PR tree-optimization/83075
      	* tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
      	strncat/strncpy don't change length of source string.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/83075
      	* gcc.dg/tree-ssa/strncat.c: New test.
      	* gcc.dg/tree-ssa/strncpy-2.c: Same.
      
      From-SVN: r255446
      Martin Sebor committed
    • libgo: remove -fplan9-extensions from CFLAGS · 4c413747
          
          Remove -fplan9-extensions from the CFLAGS used for libgo (no
          longer needed since the runtime was converted from C to Go).
          
          Reviewed-on: https://go-review.googlesource.com/82177
      
      From-SVN: r255445
      Ian Lance Taylor committed
    • pr41305.C: Refine test option. · 8a8493ab
      	gcc/testsuite
      	* g++.dg/graphite/pr41305.C: Refine test option.
      	* gcc.dg/graphite/pr42205-1.c: Ditto.
      	* gcc.dg/graphite/pr42205-2.c: Ditto.
      	* gcc.dg/graphite/pr42211.c: Ditto.
      	* gcc.dg/graphite/pr46185.c: Ditto.
      	* gcc.dg/graphite/pr46966.c: Ditto.
      	* gcc.dg/graphite/pr59817-1.c: Ditto.
      	* gcc.dg/graphite/pr59817-2.c: Ditto.
      	* gcc.dg/graphite/pr60740.c: Ditto.
      	* gcc.dg/graphite/pr60785.c: Ditto.
      	* gcc.dg/graphite/pr68715-2.c: Ditto.
      	* gcc.dg/graphite/pr68715.c: Ditto.
      	* gcc.dg/graphite/pr70045.c: Ditto.
      	* gfortran.dg/graphite/pr14741.f90: Ditto.
      	* gfortran.dg/graphite/pr40982.f90: Ditto.
      	* gfortran.dg/graphite/pr42285.f90: Ditto.
      	* gfortran.dg/graphite/pr42334-1.f: Ditto.
      	* gfortran.dg/graphite/pr42334.f90: Ditto.
      	* gfortran.dg/graphite/pr43349.f: Ditto.
      	* gfortran.dg/graphite/pr59817.f: Ditto.
      
      From-SVN: r255444
      Bin Cheng committed
    • [ARM] testsuite: force hardfp in addr-modes-float.c · cff4e414
      gcc/testsuite/ChangeLog:
      
      <date>  Charles Baylis  <charles.baylis@linaro.org>
      
      	* gcc.target/arm/addr-modes-float.c: Place dg-add-options after
             	dg-require-effective-target.
             	(ATTR): New define.
             	(POST_STORE): Pass ATTR as 2nd argument.
             	(POST_LOAD): Likewise.
             	(POST_STORE_VEC): Likewise.
             	* gcc.target/arm/addr-modes-int.c (ATTR): New define.
             	(PRE_STORE): Pass ATTR as 2nd argument.
             	(POST_STORE): Likewise.
             	(PRE_LOAD): Likewise.
             	(POST_LOAD): Likewise.
             	* gcc.target/arm/addr-modes.h:  (PRE_STORE): New parameter.
             	(POST_STORE): Likewise.
             	(POST_STORE_VEC): Likewise.
             	(PRE_LOAD): Likewise.
             	(POST_LOAD): Likewise.
             	(POST_LOAD_VEC): Likewise.
      
      From-SVN: r255443
      Charles Baylis committed
    • compiler: handle set-and-use-temp in nilcheck code · 4c6f5562
          
          Change the code in Unary_expression::do_get_backend that introduces
          explicit nil checks for dereference operations to special case
          set-and-use-temporary expressions. For this case it is better to
          generate an explicit reference of the temp in the final conditional
          (avoids introducing tree sharing).
          
          Reviewed-on: https://go-review.googlesource.com/81915
      
      From-SVN: r255442
      Ian Lance Taylor committed
    • re PR ada/66205 (gnatbind generates invalid code when finalization is enabled in… · 40242256
      re PR ada/66205 (gnatbind generates invalid code when finalization is enabled in restricted runtime)
      
      	PR ada/66205
      	* bindgen.adb (Gen_AdaFinal): If the restriction No_Task_Termination is
      	set, generate a null body.
      
      From-SVN: r255441
      Simon Wright committed
    • Revert · 67acacee
      	2017-11-29  Martin Aberg  <maberg@gaisler.com>
      
      	* config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
      	to prevent b2bst errata sequence.
      	(sqrtdf2_fix): Likewise.
      
      From-SVN: r255439
      Eric Botcazou committed
    • re PR tree-optimization/81945 (ICE in operator[], at vec.h:749) · 650a8fcf
      	PR tree-optimization/81945
      	* cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
      	* tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
      	to dest_cfun has orig_loop_num set, either remap it to the new
      	loop number if the loop got moved too, or clear it.
      
      	* gcc.dg/graphite/pr81945.c: New test.
      
      From-SVN: r255438
      Jakub Jelinek committed
    • Daily bump. · c3ad2f62
      From-SVN: r255437
      GCC Administrator committed
  2. 05 Dec, 2017 24 commits
    • re PR c++/79228 ('i' suffix for __complex__ extension interferes with C++14 UDLs for std::complex) · a7b1ce04
      	PR c++/79228
      	* expr.c (interpret_float_suffix): Avoid memcmp.
      	(interpret_int_suffix): Likewise.  Don't check for if.
      
      From-SVN: r255434
      Jakub Jelinek committed
    • Remove $tmpdir from -dumpbase, we should be in $tmpdir. · 186d43a7
      From-SVN: r255433
      Mike Stump committed
    • dump-noaddr.x: Generate dump files in tmpdir. · 14b5d8ec
      2017-12-05  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
      
      	* gcc.c-torture/unsorted/dump-noaddr.x: Generate dump files in
      	tmpdir.
      
      From-SVN: r255432
      Matthew Gretton-Dann committed
    • thunderx2-t99.md (thunderx2t99_branch): Add trap to reservation. · 6981f098
      2017-12-05  Steve Ellcey  <sellcey@cavium.com>
      
      	* config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
      	to reservation.
      	(thunderx2t99_nothing): New insn reservation.
      	(thunderx2t99_mrs): New insn reservation.
      	(thunderx2t99_multiple): New insn reservation.
      	(thunderx2t99_alu_basi): Add bfx to reservation.
      	(thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
      
      From-SVN: r255431
      Steve Ellcey committed
    • PR c++/82331 - ICE with variadic partial specialization of auto · 53943619
      	* pt.c (unify) [TEMPLATE_PARM_INDEX]: Set processing_template_decl
      	around call to tsubst.
      
      From-SVN: r255430
      Jason Merrill committed
    • [PR C++/83287] Mark lookup for keeping · ea9e71de
      https://gcc.gnu.org/ml/gcc-patches/2017-12/msg00242.html
      	PR c++/83287
      	* tree.c (build_min): Check CAST_EXPR arg for OVERLOADs.
      
      	* g++.dg/lookup/pr83287.C: New.
      
      From-SVN: r255429
      Nathan Sidwell committed
    • [Patch ARM] Fix probe_stack constraint. · 7109d224
      The probe_stack pattern uses r0 as a fixed register. This can cause issues if we have auto-increment instructions coming out that have r0 as the base register. 
      
      Tested with a bootstrap and regression run. richi reports that the original issue was fixed in the run. I did consider whether probe_stack_range was affected but it all comes back to probe_stack pattern so I think we are ok.
      
      I don't have a testcase that seems to provoke this but it seems to be default on most distributions so I'm expecting the testcoverage to come from there.
      
      Applied.
      
      Ramana
      
      PR target/82248
      
      * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
      
      From-SVN: r255428
      Ramana Radhakrishnan committed
    • re PR testsuite/83289 (i386/sse2-init-v2di-2.c, i386/avx256-unaligned-load-1.c,… · 26c2efbc
      re PR testsuite/83289 (i386/sse2-init-v2di-2.c, i386/avx256-unaligned-load-1.c, i386/avx256-unaligned-store-*.c fails)
      
      	PR testsuite/83289
      	* gcc.target/i386/avx256-unaligned-load-1.c: Adjust for -dp
      	alternative numbers being 0 based instead of former 1 based.
      	* gcc.target/i386/avx256-unaligned-store-1.c: Likewise.
      	* gcc.target/i386/avx256-unaligned-store-2.c: Likewise.
      	* gcc.target/i386/avx256-unaligned-store-3.c: Likewise.
      	* gcc.target/i386/avx256-unaligned-store-4.c: Likewise.
      	* gcc.target/i386/sse2-init-v2di-2.c: Likewise.
      
      From-SVN: r255427
      Jakub Jelinek committed
    • tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from… · 23ffbafe
      tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from tree-ssa-pre.c::remove_dead_inserted_code.
      
      	* tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
      	tree-ssa-pre.c::remove_dead_inserted_code.
      	* tree-ssa-dce.h: New file.
      	* tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
      	(remove_dead_inserted_code): Move and rename to function
      	tree-ssa-dce.c::simple_dce_from_worklist.
      	(pass_pre::execute): Update use.
      
      From-SVN: r255426
      Bin Cheng committed
    • Correct noexcept mismatch in declarations. · 0382bcfc
      2017-12-05  Jason Merrill  <jason@redhat.com>
      	    Jonathan Wakely  <jwakely@redhat.com>
      
      	* include/bits/fs_fwd.h (copy, copy_file): Remove noexcept.
      	(permissions): Add noexcept.
      	* include/bits/fs_ops.h (permissions): Add noexcept.
      	* libsupc++/eh_throw.cc (__cxa_init_primary_exception): Add
      	_GLIBCXX_NOTHROW.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r255425
      Jason Merrill committed
    • re PR tree-optimization/83277 ([graphite] Wrong code w/ -O2 -floop-nest-optimize) · 9824a520
      2017-12-05  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83277
      	* graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
      	to code-gen liveout vars.
      
      	* gcc.dg/graphite/pr83277.c: New testcase.
      
      From-SVN: r255424
      Richard Biener committed
    • [AArch64] Fix some define_insn_and_split conditions · 6acc5948
      The split conditions for aarch64_simd_bsldi_internal and
      aarch64_simd_bsldi_alt were:
      
        "&& GP_REGNUM_P (REGNO (operands[0]))"
      
      But since they (deliberately) can be split before reload, the operand
      matched by register_operand can be a SUBREG rather than a REG.  This
      triggered a boostrap failure building libgcc with rtl checking enabled.
      
      While checking other define_insn_and_splits for the same thing,
      I noticed a couple of SIMD ones were missing the leading "&&",
      meaning that they would trigger even without TARGET_SIMD.  That
      shouldn't matter in practice, since combine should never end up
      generating matching rtl, but...
      
      2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
      	(aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
      	(aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
      	split condition.
      
      From-SVN: r255423
      Richard Sandiford committed
    • gcc: xtensa: enable address sanitizer · 8c9ee176
      gcc/
      2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
      
      	* config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
      	function.
      	(TARGET_ASAN_SHADOW_OFFSET): New macro definition.
      	* config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
      	ASAN is enabled.
      
      From-SVN: r255420
      Max Filippov committed
    • re PR testsuite/83281 (libgomp.oacc-c-c++-common/reduction-cplx-flt.c and… · ac550b9a
      re PR testsuite/83281 (libgomp.oacc-c-c++-common/reduction-cplx-flt.c and reduction-cplx-dbl.c fail starting with r255335)
      
      	PR testsuite/83281
      	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c (main): Use
      	j suffix instead of i.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c (main):
      	Likewise.
      
      From-SVN: r255418
      Jakub Jelinek committed
    • re PR tree-optimization/83283 (Casting from boolean to unsigned char to enum… · 240cf3e5
      re PR tree-optimization/83283 (Casting from boolean to unsigned char to enum returns incorrect results)
      
      	PR tree-optimization/83283
      	* g++.dg/torture/pr83283.C: New test.
      
      From-SVN: r255417
      Jakub Jelinek committed
    • timevar.def (TV_TREE_RECIP, [...]): Add. · 1b6546cc
      2017-12-05  Richard Biener   <rguenther@suse.de>
      
      	* timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL):
      	Add.
      	* tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
      	(pass_data_cse_sincos): Use TV_TREE_SINCOS.
      	(pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
      
      From-SVN: r255415
      Richard Biener committed
    • sem_util.adb (Contains_Refined_State): Remove. · 40c21e91
      gcc/ada/
      
      2017-12-05  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sem_util.adb (Contains_Refined_State): Remove.
      
      2017-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_Aspect_Specifications, case Predicate): A
      	predicate cannot apply to a formal type.
      
      2017-12-05  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_unst.ads: Fix typos.
      
      2017-12-05  Jerome Lambourg  <lambourg@adacore.com>
      
      	* libgnarl/s-taprop__qnx.adb: Better detect priority ceiling bug in
      	QNX.  At startup, the first mutex created has a non-zero ceiling
      	priority whatever its actual policy. This makes some tests fail
      	(c940013 for example).
      
      2017-12-05  Bob Duff  <duff@adacore.com>
      
      	* exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Call
      	Expand_Cleanup_Actions for N_Extended_Return_Statement.
      	* exp_ch7.adb (Expand_Cleanup_Actions): Handle
      	N_Extended_Return_Statement by transforming the statements into a
      	block, and (indirectly) calling Expand_Cleanup_Actions on the block.
      	It's too hard for Expand_Cleanup_Actions to operate directly on the
      	N_Extended_Return_Statement, because it has a different structure than
      	the other node kinds that Expand_Cleanup_Actions.
      	* exp_util.adb (Requires_Cleanup_Actions): Add support for
      	N_Extended_Return_Statement.  Change "when others => return False;" to
      	"when others => raise ...;" so it's clear what nodes this function
      	handles.  Use named notation where appropriate.
      	* exp_util.ads: Mark incorrect comment with ???.
      
      2017-12-05  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch9.adb (Install_Private_Data_Declarations): Add missing
      	Debug_Info_Needed decoration of internally generated discriminal
      	renaming declaration.
      
      2017-12-05  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_unst.adb (Unnest_Subprogram): Add handling of 'Access on
      	nested subprograms.
      
      2017-12-05  Sergey Rybin  <rybin@adacore.com>
      
      	* doc/gnat_ugn/gnat_utility_programs.rst: Add description of '--ignore'
      	option for gnatmetric, gnatpp, gnat2xml, and gnattest.
      
      2017-12-05  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sem_util.adb (Contains_Refined_State): Remove.
      
      2017-12-05  Piotr Trojanek  <trojanek@adacore.com>
      
      	* rtsfind.ads: Add new enumeration literals: RE_Clock_Time (for
      	Ada.Real_Time.Clock_Time) and RO_CA_Clock_Time (for
      	Ada.Calendar.Clock_Time).
      
      2017-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Is_Private_Overriding): If the candidate private
      	subprogram is overloaded, scan the list of homonyms in the same
      	scope, to find the inherited operation that may be overridden
      	by the candidate.
      	* exp_ch11.adb, exp_ch7.adb: Minor reformatting.
      
      2017-12-05  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): If the
      	Init_Assignment is rewritten, we need to set Assignment_OK on the new
      	node.  Otherwise, we will get spurious errors when initializing via
      	assignment statement.
      
      gcc/testsuite/
      
      2017-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/private_overriding.adb: New testcase.
      
      From-SVN: r255414
      Pierre-Marie de Rodat committed
    • [multiple changes] · b91f986b
      2017-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb: Update the terminology and switch sections.
      	(Check_SPARK_Model_In_Effect): New routine.
      	(Check_SPARK_Scenario): Verify the model in effect for SPARK.
      	(Process_Conditional_ABE_Call_SPARK): Verify the model in effect for
      	SPARK.
      	(Process_Conditional_ABE_Instantiation_SPARK): Verify the model in
      	effect for SPARK.
      	(Process_Conditional_ABE_Variable_Assignment_SPARK): Verify the model
      	in effect for SPARK.
      
      2017-12-05  Nicolas Setton  <setton@adacore.com>
      
      	* terminals.c (__gnat_setup_child_communication): As documented,
      	__gnat_setup_child_communication should not terminate - it is intended
      	to be used as the child process of a call to fork().  However, execvp
      	might actually return in some cases, for instance when attempting to
      	run a 32-bit binary on a 64-bit Linux distribution when the
      	compatibility packages are not installed. In these cases, exit the
      	program to conform to the documentation.
      
      2017-12-05  Olivier Hainque  <hainque@adacore.com>
      
      	* libgnat/s-tsmona.adb: Fix for oversight in the tsmona interface
      	update.
      
      2017-12-05  Gary Dismukes  <dismukes@adacore.com>
      
      	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Minor typo fix
      	and reformatting.
      	* gnat_ugn.texi: Regenerate.
      
      2017-12-05  Olivier Hainque  <hainque@adacore.com>
      
      	* sem_util.adb (Set_Convention): Always clear Can_Use_Internal_Rep
      	on access to subprogram types with foreign convention.
      
      2017-12-05  Yannick Moy  <moy@adacore.com>
      
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix User's
      	Guide description of default settings of warnings.
      
      From-SVN: r255413
      Pierre-Marie de Rodat committed
    • [multiple changes] · 967947ed
      2017-12-05  Olivier Hainque  <hainque@adacore.com>
      
      	* s-dwalin.adb (Read_And_Execute_Isn): Adjust test checking for the end
      	of section. Add comments explaining the rationale of the computation.
      
      2017-12-05  Bob Duff  <duff@adacore.com>
      
      	* exp_ch11.adb: Minor refactoring.
      
      2017-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb: Add debug switches d_a, d_e, and d_p, along with
      	documentation.
      	(Set_Underscored_Debug_Flag): New routine.
      	* debug.ads: Add the flags for all underscore switches.
      	(Set_Underscored_Debug_Flag): New routine.
      	* einfo.adb: Flag303 is now Suppress_Elaboration_Warnings.
      	(Suppress_Elaboration_Warnings): New routine.
      	(Set_Suppress_Elaboration_Warnings): New routine.
      	(Write_Entity_Flags): Add output for Suppress_Elaboration_Warnings.
      	* einfo.ads: Add new flag Suppress_Elaboration_Warnings.
      	(Suppress_Elaboration_Warnings): New routine along with pragma Inline.
      	(Set_Suppress_Elaboration_Warnings): New routine along with pragma
      	Inline.
      	* exp_ch3.adb (Build_Init_Procedure): Restore the behavior of the
      	legacy elaboration model.
      	(Default_Initialize_Object): Restore the behavior of the legacy
      	elaboration model.
      	* exp_ch9.adb: Add with and use clause for Sem_Elab.
      	(Build_Task_Activation_Call): Restore the behavior of the legacy
      	elaboration model.
      	* frontend.adb (Frontend): Restore the behavior of the legacy
      	elaboration model.
      	* opt.ads: Add new flags Legacy_Elaboration_Checks and
      	Relaxed_Elaboration_Checks, along with documentation.
      	* sem_attr.adb (Analyze_Access_Attribute): Restore the behavior of the
      	legacy elaboration model.
      	* sem_ch5.adb (Analyze_Assignment): Restore the behavior of the legacy
      	elaboration model.
      	* sem_ch7.adb (Analyze_Package_Declaration): Restore the behavior of
      	the legacy elaboration model.
      	* sem_ch8.adb (Attribute_Renaming): Restore the behavior of the legacy
      	elaboration model.
      	* sem_ch12.adb (Analyze_Instance_And_Renamings): Restore the behavior
      	of the legacy elaboration model.
      	(Analyze_Package_Instantiation): Restore the behavior of the legacy
      	elaboration model.
      	(Analyze_Subprogram_Instantiation): Restore the behavior of the legacy
      	elaboration model.
      	* sem_elab.adb: Update the documentation of the Processing phase.
      	Update the documentation on elaboration-related compilation
      	switches.  Update the documentation on adding a new target.  Add
      	Processing_Attributes which represent the state of the Processing
      	phase.  Resurrect the previous elaboration model as "legacy elaboration
      	model".
      	(Build_Call_Marker): This routine does not function when the legacy
      	elaboration model is in effect. Do not consider entry calls and requeue
      	statements when debug flag d_e is in effect. Do not consider calls to
      	subprograms which verify the runtime semantics of certain assertion
      	pragmas when debug flag d_p is in effect.
      	(Build_Variable_Reference_Marker): This routine does not function when
      	the legacy elaboration model is in effect.
      	(Check_Elaboration_Scenarios): This routine does not function when the
      	legacy elaboration model is in effect.
      	(Ensure_Prior_Elaboration): The various flags have now been replaced
      	with a state. Do not generate implicit Elaborate[_All] pragmas when
      	their creation has been suppressed.
      	(Ensure_Prior_Elaboration_Static): The with clause is marked based on
      	the requested pragma, not on the nature of the scenario.
      	(In_External_Context): Removed.
      	(Is_Assertion_Pragma_Target): New routine.
      	(Is_Potential_Scenario): Stop the traversal of a task body when
      	reaching an accept or select statement, and debug switch d_a is in
      	effect.
      	(Kill_Elaboration_Scenario): This routine does not function when the
      	legacy elaboration model is in effect.
      	(Process_Activation_Generic): The various flags have now been replaced
      	with a state.
      	(Process_Conditional_ABE): The various flags have now been replaced
      	with a state.
      	(Process_Conditional_ABE_Access): The various flags have now been
      	replaced with a state.
      	(Process_Conditional_ABE_Activation_Impl): The various flags have now
      	been replaced with a state. Do not process an activation call which
      	activates a task whose type is defined in an external instance, and
      	debug switch dL is in effect. Suppress the generation of implicit
      	Elaborate[_All] pragmas once a conditional ABE check has been
      	installed.
      	(Process_Conditional_ABE_Call): The various flags have now been
      	replaced with a state. Do not process a call which invokes a subprogram
      	defined in an external instance, and debug switch dL is in effect.
      	(Process_Conditional_ABE_Call_Ada): The various flags have now been
      	replaced with a state. Suppress the generation of implicit
      	Elaborate[_All] pragmas once a conditional ABE check has been
      	installed.
      	(Process_Conditional_ABE_Call_SPARK): The various flags have now been
      	replaced with a state.
      	(Process_Conditional_ABE_Instantiation): The various flags have now
      	been replaced with a state.
      	(Process_Conditional_ABE_Instantiation_Ada): The various flags have now
      	been replaced with a state. Suppress the generation of implicit
      	Elaborate[_All] pragmas once a conditional ABE check has been
      	installed.
      	(Process_Conditional_ABE_Instantiation_SPARK): The various flags have
      	now been replaced with a state.
      	(Process_Guaranteed_ABE_Activation_Impl): The various flags have now
      	been replaced with a state.
      	(Process_Single_Activation): The various flags have now been replaced
      	with a state.
      	(Record_Elaboration_Scenario): This routine does not function when the
      	legacy elaboration model is in effect.
      	(Traverse_Body): The various flags have now been replaced with a state.
      	* sem_elab.ads: Resurrect the pre-18.x elaboration model as "legacy
      	elaboration model".
      	* sem_prag.adb (Analyze_Pragma): Restore the behavior of the legacy
      	elaboration model.
      	* sem_res.adb (Resolve_Call): Restore the behavior of the legacy
      	elaboration model.
      	(Resolve_Entity_Name): Restore the behavior of the legacy elaboration
      	model.
      	* sem_util.adb (Mark_Elaboration_Attributes): This routine does not
      	function when the legacy elaboration model is in effect.
      	* sinfo.adb (Is_Known_Guaranteed_ABE): Update the assertion check.
      	(No_Elaboration_Check): New routine.
      	(Set_Is_Known_Guaranteed_ABE): Update the assertion check.
      	(Set_No_Elaboration_Check): New routine.
      	* sinfo.ads: Update the documentation of flag Is_Known_Guaranteed_ABE
      	along with occurrences in nodes.  Add new flag No_Elaboration_Check
      	along with occurrences in nodes.
      	* switch-c.adb (Scan_Front_End_Switches): Add processing for debug
      	switches with underscores.  Add processing for switches -gnatH and
      	-gnatJ.
      	* usage.adb (Usage): Add output for switches -gnatH and -gnatJ.
      	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the
      	documentation to include the legacy and relaxed elaboration models.
      	* gnat_ugn.texi: Regenerate.
      
      2017-12-05  Arnaud Charlet  <charlet@adacore.com>
      
      	* doc/gnat_ugn/platform_specific_information.rst: Minor edit.
      	Improve doc on required packages for linux 32bits.
      
      2017-12-05  Doug Rupp  <rupp@adacore.com>
      
      	* tracebak.c (ppc64-vx7): USE_GCC_UNWINDER for 64bit.
      
      2017-12-05  Javier Miranda  <miranda@adacore.com>
      
      	* checks.adb (Generate_Range_Check): Force evaluation of the node in
      	more cases.  This patch was written to improve the code generated by
      	the CCG compiler but it is enabled for all targets since double
      	evaluation is always a potential source of inefficiency.
      
      2017-12-05  Gary Dismukes  <dismukes@adacore.com>
      
      	* doc/gnat_ugn/gnat_utility_programs.rst: Remove reference to obsolete
      	-fdump-xref switch.
      
      From-SVN: r255412
      Pierre-Marie de Rodat committed
    • [multiple changes] · 6cbd45e4
      2017-12-05  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use the SLOC of the
      	iteration scheme throughout, except for the new loop statement(s).
      
      2017-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Gen_Assign): Do not analyze the expressionn of the
      	assignment if it is part of an Iterated_Component_Association: the
      	analysis needs to take place once the loop structure is analyzed and
      	the loop parameter made visible, because references to it typically
      	appear in the corresponding expression.  This is necessary if the
      	expression is an aggregate, because previous pre-analysis of the
      	expression does not handle nested aggregates properly.
      
      2017-12-05  Bob Duff  <duff@adacore.com>
      
      	* sem_res.adb (Resolve_Allocator): Avoid coextension processing for an
      	allocator that is the expansion of a build-in-place function call.
      
      2017-12-05  Olivier Hainque  <hainque@adacore.com>
      
      libgnat/
      	* s-trasym__dwarf.adb (spec of Module_Name.Get): Instead of
      	possibly adjusting the lookup address by a load address, expect
      	a extra argument through which the load address can be conveyed
      	separately.
      	(Multi_Module_Symbolic_Traceback): Adjust accordingly. Pass the
      	retrieved load address to Init_Module.
      	* s-tsmona__linux.adb (Get): Honor the new interface.
      	* s-tsmona__mingw.adb (Get): Likewise.
      	* s-dwalin.ads: Adjust comments to be explicit about which
      	addresses are from module info and which are run-time addresses,
      	offsetted by the module load address.
      	* s-dwalin.adb (Set_Load_Address): Simply set C.Load_Slide.
      	Do not alter the module Low and High (relative) addresses.
      	(Is_Inside): Improve documentation regarding the kinds of addresses
      	at hand and correct the test.
      	(Symbolic_Traceback): Use separate variables with explicit names
      	for the address in traceback (run-time value) and the address to
      	lookup within the shared object (module-relative). Adjust the
      	computation of address passed to Symbolic_Address for symbolization.
      
      From-SVN: r255411
      Pierre-Marie de Rodat committed
    • [multiple changes] · f4ac86dd
      2017-12-05  Arnaud Charlet  <charlet@adacore.com>
      
      	* opt.ads (Expand_Nonbinary_Modular_Ops): New flag.
      	* exp_ch4.adb (Expand_Nonbinary_Modular_Op): Use
      	Expand_Nonbinary_Modular_Ops instead of Modify_Tree_For_C, so that
      	other back-ends can also benefit from the front-end expansion. Remove
      	test for Modify_Tree_For_C in all callers to better share code.
      	* gnat1drv.adb (Adjust_Global_Switches): Set
      	Expand_Nonbinary_Modular_Ops when generating C code.
      
      2017-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_Formal_Container_Loop): Ensure that the loop
      	parameter becomes invisible after analyzing the loop, which has been
      	rewritten as a while-loop.
      
      2017-12-05  Doug Rupp  <rupp@adacore.com>
      
      	* vxaddr2line.adb: Revise and enhance for new ports, remove dead ports,
      	and update for 64bit ports.
      
      From-SVN: r255410
      Pierre-Marie de Rodat committed
    • [multiple changes] · 16d92641
      2017-12-05  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Build_In_Place_Formal): Search for the formal by suffix
      	instead of the full name.
      	* sem_ch6.adb (Create_Extra_Formals): Make sure there are extra formals
      	in the case of an instance of a generic.
      
      2017-12-05  Arnaud Charlet  <charlet@adacore.com>
      
      	(Adjust_Global_Switches): Create an alias GNAT_Annotate to map to
      	pragma Annotate.
      
      From-SVN: r255409
      Pierre-Marie de Rodat committed
    • RTEMS/Ada: Define EH_MECHANISM · ab92e6e6
      Without this definition I got the following error:
      
      <...>/xgcc <...>  -c -g -O2   -W -Wall -gnatpg -nostdinc  -g -fno-inline \
            -fno-toplevel-reorder -O1  a-except.adb -o a-except.o
      a-exexpr.adb:38:06: "System.Exceptions.Machine" is not a predefined library unit
      a-exexpr.adb:38:06: "Ada.Exceptions (body)" depends on "Ada.Exceptions.Exception_Propagation (body)"
      a-exexpr.adb:38:06: "Ada.Exceptions.Exception_Propagation (body)" depends on "System.Exceptions.Machine (spec)"
      ../gcc-interface/Makefile:2661: recipe for target 'a-except.o' failed
      
      gcc/ada
      
      	* gcc-interface/Makefile.in (RTEMS): Define EH_MECHANISM.
      
      From-SVN: r255408
      Sebastian Huber committed
    • Avoid -Werror=format-overflow error in dbxout.c (dbxout_block) on 64-bit Solaris/SPARC · bf2f5c89
      	* dbxout.c (dbxout_block): Grow buf to 30 bytes.
      
      From-SVN: r255406
      Rainer Orth committed