aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-01-20[AArch64][1/4] Support Return address protection on AArch64Jiong Wang13-1/+271
gcc/ * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum. * config/aarch64/aarch64-protos.h (aarch64_return_address_signing_enabled): New declaration. * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): New function. (aarch64_expand_prologue): Sign return address before it's pushed onto stack. (aarch64_expand_epilogue): Authenticate return address fetched from stack. (aarch64_override_options): Sanity check for ILP32 and ISA level. (aarch64_attributes): New function attributes for "sign-return-address". * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP, UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs. ("*do_return"): Generate combined instructions according to key index. ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New. * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer iterators. (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes. * config/aarch64/aarch64.opt (msign-return-address=): New. * doc/extend.texi (AArch64 Function Attributes): Documents "sign-return-address=". * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=". gcc/testsuite/ * gcc.target/aarch64/return_address_sign_1.c: New testcase for no combined instructions. * gcc.target/aarch64/return_address_sign_2.c: New testcase for combined instructions. * gcc.target/aarch64/return_address_sign_3.c: New testcase for disable of pointer authentication. From-SVN: r244666
2017-01-19MIPS: Documentation fix for -mlxc1-sxc1Matthew Fortune2-0/+6
gcc/ * doc/invoke.texi: Add missing -mlxc1-sxc1 options to overall option summary. From-SVN: r244665
2017-01-19[AArch64] Add commandline support for -march=armv8.3-aJiong Wang4-1/+20
gcc/ * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a". * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3, AARCH64_ISA_V8_3, TARGET_ARMV8_3): New. * doc/invoke.texi (AArch64 Options): Document "armv8.3-a". From-SVN: r244663
2017-01-19rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable -mpower9-minmax by default ↵Michael Meissner4-4/+17
for -mcpu=power9. [gcc] 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable -mpower9-minmax by default for -mcpu=power9. (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE 128-bit floating point. [gcc/testsuite] 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/float128-hw.c: Do not require IEEE 128-bit floating point hardware to run test. From-SVN: r244662
2017-01-19PR64903 fix number of predicate tests in std::is_partitionedJonathan Wakely3-0/+53
PR libstdc++/64903 * include/bits/stl_algo.h (is_partioned): Don't retest the partition point. * testsuite/25_algorithms/is_partitioned/2.cc: New test. From-SVN: r244661
2017-01-20[RS6000] Don't expand strcmp and strncmp inline when -OsAlan Modra2-0/+11
* config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if optimizing for size. From-SVN: r244660
2017-01-20[RS6000] PR79144, cmpstrnsi optimization breaks glibcAlan Modra2-10/+24
glibc compiled with current gcc-7 fails one test due to strcmp and strncmp appearing in the PLT. This is because the inline expansion of those functions falls back to a function call, but doesn't use the asm name for the call. PR target/79144 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name for strcmp and strncmp from corresponding builtin decl. From-SVN: r244659
2017-01-19Fix typo in recent doc updatesJonathan Wakely3-2/+5
* doc/xml/manual/abi.xml: Fix typo. * doc/html/manual/abi.html: Likewise. From-SVN: r244658
2017-01-19Add missing period at end of -ftest-forall-temp option text.Louis Krupp1-1/+1
From-SVN: r244657
2017-01-19PR67085 pass comparison functions by reference in heap algorithmsJonathan Wakely4-47/+109
PR libstdc++/67085 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add converting constructors from _Iter_less_iter. (_Iter_comp_val, _Val_comp_iter): Add converting constructors from _Iter_comp_iter. (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor. (__val_comp_iter(_Iter_comp_iter<C>): Likewise. * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap) (__make_heap, __sort_heap): Change _Compare parameters to references. (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap) (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison functions as lvalues. (is_heap): Call __is_heap_until directly to avoid copying __comp. * testsuite/23_containers/priority_queue/67085.cc: Adjust test to count copies during construction with empty sequence. From-SVN: r244656
2017-01-19config.gcc (x86_64-*-rtems*): Use i386/rtemself.h instead of i386/rtems-64.h.Uros Bizjak3-31/+7
* config.gcc (x86_64-*-rtems*): Use i386/rtemself.h instead of i386/rtems-64.h. * config/i386/rtems-64.h: Remove. From-SVN: r244655
2017-01-19re PR target/78478 (Compile Error for i386-rtems)Uros Bizjak2-3/+8
PR target/78478 Revert: 2013-11-05 Uros Bizjak <ubizjak@gmail.com> * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define. From-SVN: r244653
2017-01-19re PR target/78478 (Compile Error for i386-rtems)Uros Bizjak7-1/+152
PR target/78478 * config/ax_check_define.m4: New file. libgfortran/ChangeLog: PR target/78478 * acinclude.m4: Include ../config/ax_check_define.m4 * configure.ac: Check if _SOFT_FLOAT is defined. * configure.host (i?86 | x86_64): Use fpu-generic when have_soft_float is set. * configure: Regenerate. From-SVN: r244651
2017-01-19Fix unsafe moves inside loopsJonathan Wakely4-5/+53
PR libstdc++/67085 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE. (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops. * testsuite/23_containers/priority_queue/67085.cc: Adjust expected number of copies. * testsuite/25_algorithms/make_heap/movable.cc: New test. From-SVN: r244650
2017-01-19aarch64.c (aarch64_simd_gen_const_vector_dup): Change int to HOST_WIDE_INT.Tamar Christina6-4/+38
gcc/ 2017-01-19 Tamar Christina <tamar.christina@arm.com> * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup): Change int to HOST_WIDE_INT. * config/aarch64/aarch64-protos.h (aarch64_simd_gen_const_vector_dup): Likewise. * config/aarch64/aarch64-simd.md: Add copysign<mode>3. gcc/testsuite/ 2017-01-19 Tamar Christina <tamar.christina@arm.com> * gcc/testsuite/lib/target-supports.exp (check_effective_target_vect_call_copysignf): Enable for AArch64. From-SVN: r244649
2017-01-19PR67085 move comparison functions in heap operationsJonathan Wakely3-10/+73
PR libstdc++/67085 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap) (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use _GLIBCXX_MOVE when passing comparison function to other functions. (is_heap_until, is_heap): Use std::move when passing comparison function. * testsuite/23_containers/priority_queue/67085.cc: New test. From-SVN: r244648
2017-01-19Fix gcc.dg/attr-alloc_size-4.c on i?86 (PR testsuite/79051)Rainer Orth2-1/+7
PR testsuite/79051 * gcc.dg/attr-alloc_size-4.c (test_int_range) [__i386__ || __x86_64__]: Allow for target i?86-*-*. From-SVN: r244647
2017-01-19Make LTO's implementation of LANG_HOOKS_TYPE_FOR_SIZE the defaultDavid Malcolm7-107/+73
gcc/jit/ChangeLog: * dummy-frontend.c (jit_langhook_type_for_size): Delete. (LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine. gcc/ChangeLog: * langhooks-def.h (lhd_type_for_size): New decl. (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size. * langhooks.c (lhd_type_for_size): New function, taken from lto_type_for_size. gcc/lto/ChangeLog: * lto-lang.c (builtin_type_for_size): Convert call to lto_type_for_size to one through the langhook. (lto_type_for_size): Move to langhooks.c and rename to lhd_type_for_size. (LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine. From-SVN: r244646
2017-01-19power9.md (power9-alu): Remove 'cmp' type and add define_bypass for CR latency.Pat Haugen2-9/+32
* config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add define_bypass for CR latency. (power9-cracked-alu): Update bypass latency and remove power9-branch. (power9-alu2): Add define_bypass for CR latency. (power9-cmp): New. (power9-mul): Update insn latency. (power9-mul-compare): Update insn latency, bypass latency and remove power9-branch. From-SVN: r244645
2017-01-19target.h (htm_available): Determine vendor from __get_cpuid_max return.Uros Bizjak2-17/+23
* config/x86/target.h (htm_available): Determine vendor from __get_cpuid_max return. Use signature_INTEL_ebx. Cleanup. From-SVN: r244644
2017-01-19[AArch64] Purge leftover occurrences of aarch64_nopcrelative_literal_loadsKyrylo Tkachov3-3/+11
* config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): Delete. * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to aarch64_nopcrelative_literal_loads. (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise. From-SVN: r244643
2017-01-19PR78905 define _GLIBCXX_RELEASE macroJonathan Wakely7-99/+171
PR libstdc++/78905 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to macro names, filenames, and literal values. Document _GLIBCXX_RELEASE. Document that the deprecated _GLIBCXX_VERSION macro was removed for the 4.0.0 release. * doc/html/*: Regenerate. * include/Makefile.am (_GLIBCXX_RELEASE): Set value. * include/Makefile.in: Regenerate. * include/bits/c++config (_GLIBCXX_RELEASE): Add #define. * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in dg-error. From-SVN: r244642
2017-01-19MIPS: Make loongson3a use fused madd.dChenghua Xu2-2/+10
gcc/ * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for TARGET_LOONGSON_3A. (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A. From-SVN: r244641
2017-01-19MIPS: PR target/78176 add -mlxc1-sxc1.Matthew Fortune10-5/+209
gcc/ PR target/78176 * config.gcc (supported_defaults): Add lxc1-sxc1. (with_lxc1_sxc1): Add validation. (all_defaults): Add lxc1-sxc1. * config/mips/mips.opt (mlxc1-sxc1): New option. * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for mlxc1-sxc1. (TARGET_CPU_CPP_BUILTINS): Add builtin_define for __mips_no_lxc1_sxc1. (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1. * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option. * doc/install.texi (--with-lxc1-sxc1): Document the new option. gcc/testsuite/ * gcc.target/mips/lxc1-sxc1-1.c: New file. * gcc.target/mips/lxc1-sxc1-2.c: Likewise. * gcc.target/mips/mips.exp (mips_option_groups): Add ghost option HAS_LXC1. (mips_option_groups): Add -m[no-]lxc1-sxc1. (mips-dg-init): Detect default -mno-lxc1-sxc1. (mips-dg-options): Handle HAS_LXC1 arch upgrade/downgrade. From-SVN: r244640
2017-01-19Array decomposition fix.Jason Merrill3-8/+27
* decl.c (check_initializer): Always use build_aggr_init for array decomposition. From-SVN: r244639
2017-01-19cuda.h (CUdeviceptr): Typedef to unsigned long long even for _WIN64.Jakub Jelinek2-1/+6
* plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even for _WIN64. From-SVN: r244638
2017-01-19re PR fortran/70696 ([Coarray] ICE on EVENT POST of host-associated ↵Andre Vehreschild4-1/+27
EVENT_TYPE coarray) gcc/fortran/ChangeLog: 2017-01-19 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/70696 * trans-decl.c (gfc_build_qualified_array): Add static decl to parent function only, when the decl-context is not the translation unit. gcc/testsuite/ChangeLog: 2017-01-19 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/70696 * gfortran.dg/coarray_43.f90: New test. From-SVN: r244637
2017-01-19re PR target/79127 (Error: invalid register for .seh_savexmm in matmul_i4.c)Jakub Jelinek3-2/+24
PR target/79127 * acinclude.m4 (LIBGFOR_CHECK_AVX512F): Ensure the test clobbers some zmm16+ registers to verify they are handled by unwind info properly if needed. * configure: Regenerated. From-SVN: r244636
2017-01-19PR c++/79130 - decomposition and direct-initializationJason Merrill4-23/+76
* init.c (build_aggr_init): Communicate direct-initialization to build_vec_init. (build_vec_init): Check for array copy sooner. * parser.c (cp_parser_decomposition_declaration): Remove call to build_x_compound_expr_from_list. From-SVN: r244635
2017-01-19Code cleanup.Arnaud Charlet1-1/+4
From-SVN: r244634
2017-01-19[multiple changes]Arnaud Charlet4-3/+28
2017-01-19 Javier Miranda <miranda@adacore.com> * ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the identifier attribute of a block-statement node. Required to avoid assertion failure when building the new containers library. 2017-01-19 Bob Duff <duff@adacore.com> * exp_ch3.adb: Update comment. 2017-01-19 Vincent Celier <celier@adacore.com> * gprep.adb (Gnatprep): Parse the definition file without "replace in comments" even when switch -C is used. From-SVN: r244633
2017-01-19Minor reformatting.Arnaud Charlet1-5/+10
From-SVN: r244632
2017-01-19exp_ch9.adb (Is_Pure_Barrier): Create function Is_Count_Attribute to ↵Justin Squirek2-0/+36
identify an expansion of the 'Count attribute. 2017-01-19 Justin Squirek <squirek@adacore.com> * exp_ch9.adb (Is_Pure_Barrier): Create function Is_Count_Attribute to identify an expansion of the 'Count attribute. From-SVN: r244631
2017-01-19[multiple changes]Arnaud Charlet3-10/+31
2017-01-19 Pierre-Marie de Rodat <derodat@adacore.com> * exp_dbug.adb (Debug_Renaming_Declaration): Process underlying types. Emit GNAT encodings for object renamings involving record components whose normalized bit offset is not null. * uintp.h (UI_No_Uint): Declare. 2017-01-19 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Loop_Statement): In GNATprove mode the statements within an element iterator loop are only analyzed agter the loop is rewritten. Within a generic the analysis must be performed in any case to complete name capture. 2017-01-19 Bob Duff <duff@adacore.com> * sem_prag.adb (Analyze_Pragma): Check for ignored pragmas first, before checking for unrecognized pragmas. Initialize Pname on its declarations; that's always good style. From-SVN: r244630
2017-01-19exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the body into the ↵Claire Dross3-52/+114
tree for GNATprove by setting its Parent field. 2017-01-19 Claire Dross <dross@adacore.com> * exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the body into the tree for GNATprove by setting its Parent field. The components invariants of composite types are not checked by the composite type's invariant procedure in GNATprove mode. (Build_Invariant_Procedure_Declaration): Semi-insert the declaration into the tree for GNATprove by setting its Parent field. * freeze.adb (Freeze_Arry_Type):In GNATprove mode, do not add the component invariants to the array type invariant procedure so that the procedure can be used to check the array type invariants if any. (Freeze_Record_Type): In GNATprove mode, do not add the component invariants to the record type invariant procedure so that the procedure can be used to check the record type invariants if any. From-SVN: r244629
2017-01-19[multiple changes]Arnaud Charlet3-1/+20
2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> * lib-xref-spark_specific.adb: Minor reformatting. * exp_ch7.adb (Add_Parent_Invariants): Do not process array types. 2017-01-19 Tristan Gingold <gingold@adacore.com> * fe.h (Constant_Value): Export. From-SVN: r244628
2017-01-19re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)Jakub Jelinek6-6/+38
PR other/79046 * aclocal.m4: Include ../config/acx.m4. * configure: Regenerated. * Makefile.in: Regenerated. * mpxrt/Makefile.in: Regenerated. * mpxwrap/Makefile.in: Regenerated. From-SVN: r244627
2017-01-19[multiple changes]Arnaud Charlet13-320/+486
2017-01-19 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as Build_Back_End_Aggregate. (Generate_Aggregate_For_Derived_Type): Code cleanup. (Prepend_Stored_Values): Code cleanup. 2017-01-19 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): Check for an incomplete return type after attempting to freeze it, so that other freeze actiona are generated in the proper order. 2017-01-19 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Aggregate): If the type is a string type, ie. a type whose component is a character type, and the aggregate is positional, do not convert into a string literal if the index type is not an integer type, because the original type may be required in an enclosing operation. 2017-01-19 Bob Duff <duff@adacore.com> * binde.adb, debug.adb: Enable new elaboration order algorithm by default. -dp switch reverts to the old algorithm. 2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb Add with and use clauses for Exp_Ch7. (Analyze_Declarations): Create the DIC and Invariant procedure bodies s after all freezing has taken place. (Build_Assertion_Bodies): New routine. * sem_ch7.adb Remove the with and use clauses for Exp_Ch7 and Exp_Util. (Analyze_Package_Specification): Remove the generation of the DIC and Invariant procedure bodies. This is now done by Analyze_Declarations. * sem_disp.adb (Check_Dispatching_Operation): DIC and Invariant procedures are never treated as primitives. 2017-01-19 Yannick Moy <moy@adacore.com> * frontend.adb: Analyze inlined bodies and check elaboration rules in GNATprove mode too. * sem_elab.adb (Delay_Element): Add Boolean component to save indication that call is in SPARK code. (Check_Elab_Calls): Check elaboration rules in GNATprove mode, and correctly set the current value of SPARK_Mode. * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Simplify iteration over dereferences. 2017-01-19 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Expand_Concatenate): Do no enable overflow checks on the expression for the high bound of concatenation when checks are disabled, to suppress warnings about potential constraint errors in restricted runtimes. From-SVN: r244626
2017-01-19exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the ↵Hristian Kirtchev4-16/+32
representation-to-position function as inlined. 2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the representation-to-position function as inlined. * sem_cat.adb (Set_Categorization_From_Scope): Do not modify the purity of an internally generated entity if it has been explicitly marked as pure for optimization purposes. * exp_aggr.adb: Minor reformatting. From-SVN: r244624
2017-01-19re PR rtl-optimization/72488 (wrong code (SIGFPE) at -Os and above on ↵Richard Biener3-15/+48
x86_64-linux-gnu (in the 64-bit mode)) 2017-01-19 Richard Biener <rguenther@suse.de> PR tree-optimization/72488 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make sure to restore SSA info. * tree-ssa.c (verify_ssa): Verify SSA info is not shared. From-SVN: r244623
2017-01-19[multiple changes]Arnaud Charlet13-216/+322
2017-01-19 Javier Miranda <miranda@adacore.com> * exp_ch6.adb (Expand_Call): Remove side effects on actuals that are allocators with qualified expression since the initialization of the object is performed by means of individual statements (and hence it must be done before the call). 2017-01-19 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Declarations): Minor reformatting. (Build_Derived_Enumeration_Type): If the derived type inherits a dynamic predicate from its parent, the bounds of the type must freeze because an explicit constraint is constructed for the type and the corresponding range is elaborated now. 2017-01-19 Arnaud Charlet <charlet@adacore.com> * sem_attr.ads: minor fix of inconsistent casing in comment * lib-writ.ads: minor align comments in columns * sem_ch3.adb: Minor reformatting. * spark_xrefs.ads: minor fix typo in SPARK-related comment * table.ads: minor style fix in comment * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): simplify processing of SPARK cross-references. * sem_ch12.adb: minor whitespace fix * freeze.adb: Add comment. * sem_util.adb (Unique_Name): for instances of generic subprograms ignore the name of the wrapper package. 2017-01-19 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Resolve_Record_Aggregate): Factorize code needed for aggregates of limited and unlimited types in a new routine. (Pass_Aggregate_To_Back_End): New subprogram. 2017-01-19 Yannick Moy <moy@adacore.com> * sinfo.adb (Pragma_Name): Only access up to Last_Pair of Pragma_Map. From-SVN: r244622
2017-01-19Minor reformatting and code cleanup.Arnaud Charlet1-17/+20
From-SVN: r244621
2017-01-19[multiple changes]Arnaud Charlet5-18/+60
2017-01-19 Ed Schonberg <schonberg@adacore.com> * sem_ch4.ads, sem_ch4.adb (Try_Object_Operation): Make subprogram public, for use elsewhere. * sem_ch6.adb (Analyze_Procedure_Call): In SPARK_Mode and within an Inlined_body, recognize a call that uses object notation and has not been rewritten as a regular call because regular expansion has not taken place. 2017-01-19 Bob Duff <duff@adacore.com> * checks.adb (Apply_Type_Conversion_Checks): Disable small optimization in case of generic formal discrete types, because it causes crashes in the compiler when built with assertions on. From-SVN: r244620
2017-01-19[multiple changes]Arnaud Charlet18-54/+112
2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> * lib-xref-spark_specific.adb, sem_util.adb, sem_util.ads, sem_ch4.adb, sem_ch8.adb, lib-xref.ads: Minor reformatting. 2017-01-19 Bob Duff <duff@adacore.com> * bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): Increment Warnings_Detected. It was decrementing, which is wrong since we just issued a warning message. * binderr.ads (Errors_Detected, Warnings_Detected): Declare these variables to be of subtype Nat instead of Int, because they should never be negative. 2017-01-19 Javier Miranda <miranda@adacore.com> * contracts.adb (Build_Postconditions_Procedure): Replace Generate_C_Code by Modify_Tree_For_C. * exp_aggr.adb (Build_Record_Aggr_Code, Expand_Array_Aggregate): Replace Generate_C_Code by Modify_Tree_For_C. * exp_attr.adb (Float_Valid, Is_GCC_Target): Replace Generate_C_Code by Modify_Tree_For_C. * exp_ch11.adb (Expand_N_Exception_Declaration): Replace Generate_C_Code by Modify_Tree_For_C. * exp_ch4.adb (Expand_Allocator_Expression): Replace Generate_C_Code by Modify_Tree_For_C. * exp_dbug.adb (Qualify_Entity_Name): Replace Generate_C_Code by Modify_Tree_For_C. * exp_util.adb (Remove_Side_Effects, Side_Effect_Free): Replace Generate_C_Code by Modify_Tree_For_C. * sem_res.adb (Resolve_Type_Conversion): Replace Generate_C_Code by Modify_Tree_For_C. * sinfo.ads (Modify_Tree_For_C): Adding documentation. From-SVN: r244619
2017-01-19[multiple changes]Arnaud Charlet7-84/+147
2017-01-19 Javier Miranda <miranda@adacore.com> * sem_util.ads, sem_util.adb (Expression_Of_Expression_Function): New subprogram. (Is_Inlinable_Expression_Function): New subprogram. * exp_ch6.ads, exp_ch6.adb (Expression_Of_Expression_Function): Moved to Sem_Util. (Is_Inlinable_Expression_Function): Moved to Sem_Util. 2017-01-19 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Diagnose_Call): Improve error message when a selected component has a prefix that might be interpreted as a parameterless function call, but none of the candidate interpretations is parameterless, and there is a hidden homonym of the prefix that is a package. * sem_ch8.adb (Find_Selected_Component): If the prefix might be interpreted as a parameterless function call and its analysis fails, do not call Analyze_Selected_Component. From-SVN: r244618
2017-01-19[multiple changes]Arnaud Charlet6-55/+115
2017-01-19 Steve Baird <baird@adacore.com> * sem_util.ads: Add new Use_Full_View Boolean parameter to Get_Index_Bounds. * sem_util.adb (Get_Index_Bounds): replace calls to Scalar_Range with calls to a newly-defined Scalar_Range_Of_Right_View function. 2017-01-19 Arnaud Charlet <charlet@adacore.com> * gnat1drv.adb: minor fix of unbalanced parens in comment * lib-xref.ads (Traverse_Compilation_Unit): declaration moved to visible part of the package to allow re-use in GNATprove. * lib-xref-spark_specific.adb (Traverse_Stub): routine refactored from repeated code of Traverse_Compilation_Unit. (Traverse_Declaration_Or_Statement): fixed detection of generic subprograms and packages; also, iteration over case statement alternatives rewritten to avoid testing if the first alternative is present (since it must be present due to Ada syntax restrictions). From-SVN: r244617
2017-01-19exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as returning by ↵Hristian Kirtchev3-353/+370
reference not just for subprogram body stubs... 2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as returning by reference not just for subprogram body stubs, but for all subprogram cases. * sem_util.adb: Code reformatting. (Requires_Transient_Scope): Update the call to Results_Differ. (Results_Differ): Update the parameter profile and the associated comment on usage. From-SVN: r244616
2017-01-19Minor reformatting.Arnaud Charlet2-18/+21
From-SVN: r244615
2017-01-19sem_dim.adb (Analyze_Dimension): Analyze object declaration and identifier ↵Ed Schonberg2-7/+23
nodes that do not come from source... 2017-01-19 Ed Schonberg <schonberg@adacore.com> * sem_dim.adb (Analyze_Dimension): Analyze object declaration and identifier nodes that do not come from source, to handle properly dimensionality check within an inlined body which inclddes both original operands and rewritten operands. This removes spurious dimensionality errors in the presence of front-end inlining, as well as in SPARK mode. From-SVN: r244614
2017-01-19[expand] Fix for PR rtl-optimization/79121 incorrect expansion of extend ↵Richard Earnshaw4-13/+72
plus left shift When generating a shift from an extended value moving from one to two machine registers, the type of the right shift is for the most significant word should be determined by the signedness of the inner type, not the signedness of the result type. gcc: PR rtl-optimization/79121 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness of the inner type when shifting an extended value. gcc/testsuite: * gcc.c-torture/execute/pr79121.c: New test. From-SVN: r244613