1. 23 Jun, 2016 8 commits
    • Add make autoprofiledbootstrap · 277d7ee0
      Add support for profiledbootstrap with autofdo. Will be useful
      to get better testing coverage of autofdo.
      
      This requires Linux perf and autofdo to be installed, only
      really for x86_64 linux on Intel so far.
      
      Profile the whole build process with perf, then convert the file,
      and pass it back to the compiler in the feedback stage.
      
      The conversion has to be done per language, as only that knows
      the name of the binary. Currently we only do it for C and C++,
      as the other languages don't have enough coverage during a normal
      bootstrap.
      
      For lto1 it is also disabled, because it would only be useful during a LTO
      bootstrap, but right now autofdo and LTO are not working together due to
      PR66229
      
      For common backend files always the profile output of the C++ compiler
      is used. In theory multiple inputs could be merged here, but so far
      that is not implemented.
      
      The method is not friendly to partial rebuilds, as only the profile
      information from the current rebuild is used. So if an error
      occurs it is best to clean and restart, otherwise the code
      quality may be worse.
      
      This patch is fairly large, but most of it is auto generated from
      autogen in Makefile.in. for the new stage targets.
      
      Passes profiledbootstrap and normal bootstrap on x86_64-linux.
      autoprofiledbootstrap is currently not working due to
      PR70427 (but it finishes with that worked around)
      
      The autofdo'ed compiler is ~7% faster on insn-recog.i (vs ~11% for
      profiledfeedback), and ~4% faster for tramp3d-v4 (vs 10% for
      profiledfeedback) on a Sandy Bridge system.
      
      gcc/lto/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo (disabled for now)
      
      gcc/cp/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo.
      
      gcc/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Makefile.in: Regenerate.
      	* doc/install.texi: Document autoprofiledbootstrap.
      
      /:
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Makefile.def: Add autoprofiledbootstrap.
      	* Makefile.tpl: Dito.
      	* Makefile.in: Regenerate.
      
      gcc/c/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo.
      
      From-SVN: r237733
      Andi Kleen committed
    • Run profile feedback tests with autofdo · 7f586d90
      Extend the existing bprob and tree-prof tests to also run with autofdo.
      The test runtimes are really a bit too short for autofdo, but it's
      a reasonable sanity check.
      
      This only works natively for now.
      
      dejagnu doesn't seem to support a wrapper for unix tests, so I had
      to open code running these tests.  That should be ok due to the
      native run restrictions.
      
      gcc/testsuite/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* g++.dg/bprob/bprob.exp: Support autofdo.
      	* g++.dg/tree-prof/tree-prof.exp: dito.
      	* gcc.dg/tree-prof/tree-prof.exp: dito.
      	* gcc.misc-tests/bprob.exp: dito.
      	* gfortran.dg/prof/prof.exp: dito.
      	* lib/profopt.exp: dito.
      	* lib/target-supports.exp: Check for autofdo.
      
      From-SVN: r237732
      Andi Kleen committed
    • Add gcc-auto-profile script · 7b72d14a
      Using autofdo is currently something difficult. It requires using the
      model specific branches taken event, which differs on different CPUs.
      The example shown in the manual requires a special patched version of
      perf that is non standard, and also will likely not work everywhere.
      
      This patch adds a new gcc-auto-profile script that figures out the
      correct event and runs perf.
      
      This is needed to actually make use of autofdo in a generic way
      in the build system and in the test suite.
      
      Since maintaining the script would be somewhat tedious (needs changes
      every time a new CPU comes out) I auto generated it from the online
      Intel event database. The script to do that is in contrib and can be
      rerun.
      
      Right now there is no test if perf works in configure. This
      would vary depending on the build and target system, and since
      it currently doesn't work in virtualization and needs uptodate
      kernel it may often fail in common distribution build setups.
      
      So far the script is not installed.
      
      gcc/:
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* config/i386/gcc-auto-profile: New file.
      
      contrib/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* gen_autofdo_event.py: New file to regenerate
      	gcc-auto-profile.
      
      From-SVN: r237731
      Andi Kleen committed
    • re PR middle-end/71619 (ICE: in predict_loops, at predict.c:1772 with… · 60fa7862
      re PR middle-end/71619 (ICE: in predict_loops, at predict.c:1772 with --param=max-predicted-iterations=0)
      
      Fix PR middle-end/71619
      
      	PR middle-end/71619
      	* predict.c (predict_loops): Revert the hunk that was removed
      	in r237103.
      	* gcc.dg/pr71619.c: New test.
      
      From-SVN: r237730
      Martin Liska committed
    • config.host: Add suport for arm*-*-phoenix* targets. · a34c0db5
      2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
      
         * config.host: Add suport for arm*-*-phoenix* targets.
      
      From-SVN: r237729
      Jakub Sejdak committed
    • config.gcc: Add support for arm*-*-phoenix* targets. · bfdd80d4
      2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
      
      	* config.gcc: Add support for arm*-*-phoenix* targets.
      	* config/arm/t-phoenix: New.
      	* config/phoenix.h: New.
      
      From-SVN: r237728
      Jakub Sejdak committed
    • configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets. · fd6487af
      2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
      
          * configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets.
          * configure: Regenerate.
      
      From-SVN: r237727
      Jakub Sejdak committed
    • Daily bump. · cc425e3d
      From-SVN: r237726
      GCC Administrator committed
  2. 22 Jun, 2016 32 commits
    • * testsuite/ChangeLog: Whitespace fixes. · cc901875
      From-SVN: r237721
      Uros Bizjak committed
    • re PR target/67400 (-fno-plt doesn't work with function pointers) · e3d62871
      	PR target/67400
      	* config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
      	* config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
      	(ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_expand_move): Load the external function address via the
      	GOT slot if ix86_force_load_from_GOT_p returns true.
      	* config/i386/predicates.md (x86_64_immediate_operand): Return
      	false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
      	(x86_64_zext_immediate_operand): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/67400
              * gcc.target/i386/pr67400-1.c: New test.
              * gcc.target/i386/pr67400-2.c: Likewise.
              * gcc.target/i386/pr67400-3.c: Likewise.
              * gcc.target/i386/pr67400-4.c: Likewise.
              * gcc.target/i386/pr67400-5.c: Likewise.
              * gcc.target/i386/pr67400-6.c: Likewise.
              * gcc.target/i386/pr67400-7.c: Likewise.
      
      From-SVN: r237720
      Uros Bizjak committed
    • i386.c (ix86_expand_move): Simplify SYMBOL_REF handling. · 37c467c0
      	* config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
      
      From-SVN: r237716
      Uros Bizjak committed
    • libcpp: Tweak to missing #include source location · ac81cf0b
      This patch tweaks the error message location for missing header files.
      
      Previously these read:
      
      test.c:1:17: fatal error: 404.h: No such file or directory
       #include "404.h"
                       ^
      compilation terminated.
      
      With this patch, the pertinent string is underlined:
      
      test.c:1:10: fatal error: 404.h: No such file or directory
       #include "404.h"
                ^~~~~~~
      compilation terminated.
      
      gcc/testsuite/ChangeLog:
      	* c-c++-common/missing-header-1.c: New test case.
      	* c-c++-common/missing-header-2.c: New test case.
      	* c-c++-common/missing-header-3.c: New test case.
      	* c-c++-common/missing-header-4.c: New test case.
      
      libcpp/ChangeLog:
      	* directives.c (do_include_common): Pass on "location" to
      	_cpp_stack_include.
      	* errors.c (cpp_diagnostic): Reimplement in terms of...
      	(cpp_diagnostic_at): New function.
      	(cpp_error_at): New function.
      	(cpp_errno_filename): Add "loc" param and use it by using
      	cpp_error_at rather than cpp_error.
      	* files.c (find_file_in_dir): Add "loc" param and pass it to
      	open_file_failed.
      	(_cpp_find_file): Add "loc" param.  Use it to convert calls to
      	cpp_error to cpp_error_at, and pass it to find_file_in_dir and
      	open_file_failed.
      	(read_file_guts): Add "loc" param.  Use it to convert calls to
      	cpp_error to cpp_error_at.  Pass it to cpp_errno_filename.
      	(read_file): Add "loc" param.  Pass it to open_file_failed and
      	read_file_guts.
      	(should_stack_file): Add "loc" param.  Pass it to read_file.
      	(_cpp_stack_file): Add "loc" param.  Pass it to should_stack_file.
      	(_cpp_stack_include): Add "loc" param.  Pass it to
      	_cpp_find_file and _cpp_stack_file.
      	(open_file_failed): Add "loc" param.  Pass it to
      	cpp_errno_filename.
      	(_cpp_fake_include): Add 0 as a source_location in call to
      	_cpp_find_file.
      	(_cpp_compare_file_date): Likewise.
      	(cpp_push_include): Likewise for call to _cpp_stack_include.
      	(cpp_push_default_include): Likewise.
      	(_cpp_save_file_entries): Likewise for call to open_file_failed.
      	(_cpp_has_header): Likewise for call to _cpp_find_file.
      	* include/cpplib.h (cpp_errno_filename): Add source_location
      	param.
      	(cpp_error_at): New declaration.
      	* init.c (cpp_read_main_file): Add 0 as a source_location in calls
      	to _cpp_find_file and _cpp_stack_file.
      	* internal.h (_cpp_find_file): Add source_location param.
      	(_cpp_stack_file): Likewise.
      	(_cpp_stack_include): Likewise.
      
      From-SVN: r237715
      David Malcolm committed
    • C FE: suggest corrections for misspelled identifiers and type names · 1a4f11c8
      gcc/c-family/ChangeLog:
      	PR c/70339
      	* c-common.h (enum lookup_name_fuzzy_kind): New enum.
      	(lookup_name_fuzzy): New prototype.
      
      gcc/c/ChangeLog:
      	PR c/70339
      	* c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
      	(implicit_decl_warning): When issuing warnings for implicit
      	declarations, attempt to provide a suggestion via
      	lookup_name_fuzzy.
      	(undeclared_variable): Likewise when issuing errors.
      	(lookup_name_in_scope): Likewise.
      	(struct edit_distance_traits<cpp_hashnode *>): New struct.
      	(best_macro_match): New typedef.
      	(find_closest_macro_cpp_cb): New function.
      	(lookup_name_fuzzy): New function.
      	* c-parser.c: Include gcc-rich-location.h.
      	(c_token_starts_typename): Split out case CPP_KEYWORD into...
      	(c_keyword_starts_typename): ...this new function.
      	(c_parser_declaration_or_fndef): When issuing errors about
      	missing "struct" etc, add a fixit.  For other kinds of errors,
      	attempt to provide a suggestion via lookup_name_fuzzy.
      	(c_parser_parms_declarator): When looking ahead to detect typos in
      	type names, also reject CPP_KEYWORD.
      	(c_parser_parameter_declaration): When issuing errors about
      	unknown type names, attempt to provide a suggestion via
      	lookup_name_fuzzy.
      	* c-tree.h (c_keyword_starts_typename): New prototype.
      
      gcc/ChangeLog:
      	PR c/70339
      	* diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
      	* diagnostic.c (pedwarn_at_rich_loc): New function.
      	* spellcheck.h (best_match::best_match): Add a
      	"best_distance_so_far" optional parameter.
      	(best_match::set_best_so_far): New method.
      	(best_match::get_best_distance): New accessor.
      	(best_match::get_best_candidate_length): New accessor.
      
      gcc/testsuite/ChangeLog:
      	PR c/70339
      	* c-c++-common/attributes-1.c: Update dg-prune-output to include
      	hint.
      	* gcc.dg/diagnostic-token-ranges.c (undeclared_identifier): Update
      	expected results due to builtin "nanl" now being suggested for
      	"name".
      	* gcc.dg/pr67580.c: Update expected messages.
      	* gcc.dg/spellcheck-identifiers.c: New testcase.
      	* gcc.dg/spellcheck-typenames.c: New testcase.
      
      From-SVN: r237714
      David Malcolm committed
    • dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in place of… · 6f99ef82
      dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in place of GET_MODE_CLASS() == MODE_INT...
      
      	* dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
      	place of GET_MODE_CLASS() == MODE_INT, so that partial integer
      	modes are accepted as well.
      	(ucompare_loc_descriptor): Likewise.
      	(minmax_loc_descriptor): Likewise.
      	(clz_loc_descriptor): Likewise.
      	(popcount_loc_descriptor): Likewise.
      	(bswap_loc_descriptor): Likewise.
      	(rotate_loc_descriptor): Likewise.
      	(mem_loc_descriptor): Likewise.
      	(loc_descriptor): Likewise.
      
      From-SVN: r237713
      Nick Clifton committed
    • Implement -fdiagnostics-parseable-fixits · a93eac6a
      gcc/ChangeLog:
      	* common.opt (fdiagnostics-parseable-fixits): New option.
      	* diagnostic.c: Include "selftest.h".
      	(print_escaped_string): New function.
      	(print_parseable_fixits): New function.
      	(diagnostic_report_diagnostic): Call print_parseable_fixits.
      	(selftest::assert_print_escaped_string): New function.
      	(ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
      	(selftest::test_print_escaped_string): New function.
      	(selftest::test_print_parseable_fixits_none): New function.
      	(selftest::test_print_parseable_fixits_insert): New function.
      	(selftest::test_print_parseable_fixits_remove): New function.
      	(selftest::test_print_parseable_fixits_replace): New function.
      	(selftest::diagnostic_c_tests): New function.
      	* diagnostic.h (struct diagnostic_context): Add field
      	"parseable_fixits_p".
      	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
      	-fdiagnostics-parseable-fixits.
      	(-fdiagnostics-parseable-fixits): New option.
      	* opts.c (common_handle_option): Handle
      	-fdiagnostics-parseable-fixits.
      	* selftest-run-tests.c (selftest::run_tests): Call
      	selftest::diagnostic_c_tests.
      	* selftest.h (selftest::diagnostic_c_tests): New prototype.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c: New
      	file.
      	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add
      	diagnostic-test-show-locus-parseable-fixits.c to sources for
      	diagnostic_plugin_test_show_locus.c.
      	* lib/gcc-defs.exp (freeform_regexps): New global.
      	(dg-regexp): New function.
      	(handle-dg-regexps): New function.
      	* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Reset
      	freeform_regexps to the empty list.
      	* lib/prune.exp (prune_gcc_output): Call handle-dg-regexps.
      
      libcpp/ChangeLog:
      	* include/line-map.h (fixit_hint::get_start_loc): New pure virtual
      	function.
      	(fixit_hint::maybe_get_end_loc): Likewise.
      	(fixit_insert::get_start_loc): New function, implementing
      	fixit_hint::get_start_loc.
      	(fixit_insert::maybe_get_end_loc): New function, implementing
      	fixit_hint::maybe_get_end_loc.
      	(fixit_remove::get_start_loc): New function, implementing
      	fixit_hint::get_start_loc.
      	(fixit_remove::maybe_get_end_loc): New function, implementing
      	fixit_hint::maybe_get_end_loc.
      	(fixit_replace::get_start_loc): New function, implementing
      	fixit_hint::get_start_loc.
      	(fixit_replace::maybe_get_end_loc): New function, implementing
      	fixit_hint::maybe_get_end_loc.
      
      From-SVN: r237712
      David Malcolm committed
    • * gcc.dg/guality/param-5.c (clear_stack): Tweak. · d53c0398
      From-SVN: r237710
      Eric Botcazou committed
    • re PR target/71151 ([avr] -fmerge-constants and… · e0277d6b
      re PR target/71151 ([avr] -fmerge-constants and -fdata-sections/-ffunction-sections results in string constants in .progmem.gcc_sw section)
      
      	* gcc/ChangeLog: Add pointer to PR71151 for r237536.
      	* gcc/testsuite/ChangeLog: Same.
      
      From-SVN: r237709
      Georg-Johann Lay committed
    • * gcc.dg/guality/param-5.c (clear_stack): Tweak. · e193b105
      From-SVN: r237707
      Eric Botcazou committed
    • re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge… · 49e76ff1
      re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge and westmere targets)
      
      gcc/
      
      	PR middle-end/71488
      	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
      	comparison of boolean vectors.
      	* tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
      	of boolean vectors using bitwise operations.
      
      gcc/testsuite/
      
      	PR middle-end/71488
      	* g++.dg/pr71488.C: New test.
      	* gcc.dg/vect/vect-bool-cmp.c: New test.
      
      From-SVN: r237706
      Ilya Enkovich committed
    • aarch64-protos.h (aarch64_elf_asm_named_section): Remove declaration. · 79c94ff7
      * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
      Remove declaration.
      
      From-SVN: r237705
      Andreas Schwab committed
    • i386.c (print_reg): Emit an error message on attempt to print FLAGS_REG. · b60fc3bd
      gcc:
      2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * config/i386/i386.c (print_reg): Emit an error message on attempt to
              print FLAGS_REG.
      
      testsuite:
      2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * gcc.target/i386/asm-flag-7.c: New test.
      
      From-SVN: r237702
      Bernd Edlinger committed
    • Add final newline. · 9465f1d3
      From-SVN: r237701
      Eric Botcazou committed
    • Minor reformatting. · e3de253f
      From-SVN: r237700
      Arnaud Charlet committed
    • sem_prag.adb: Revert unwanted change in previous commit, only keep message fix. · d13ecc2d
      2016-06-22  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_prag.adb: Revert unwanted change in previous commit,
      	only keep message fix.
      
      From-SVN: r237699
      Arnaud Charlet committed
    • sem_prag.ads (Build_Classwide_Expression): new procedure to build the expression… · 017d237e
      sem_prag.ads (Build_Classwide_Expression): new procedure to build the expression for an inherited classwide condition...
      
      2016-06-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.ads (Build_Classwide_Expression): new procedure to
      	build the expression for an inherited classwide condition, and
      	to validate such expressions when they apply to an inherited
      	operation that is not overridden.
      	* sem_prag.adb (Primitives_Mapping): new data structure to
      	handle the mapping between operations of a root type and the
      	corresponding overriding operations of a type extension. Used
      	to construct the expression for an inherited classwide condition.
      	(Update_Primitives_Mapping): add to Primitives_Mapping the links
      	between primitive operations of a root type and those of a given
      	type extension.
      	(Build_Pragma_Check_Equivalent): use Primitives_Mapping.
      	* sem_ch6.adb (New_Overloaded_Entity): Remove call to
      	Collect_Iherited_Class_Wide_Conditions in GNATprove_Mode. This
      	needs to be done at freeze point of the type.
      	* freeze.adb (Check_Inherited_Conditions): new procedure to
      	verify the legality of inherited classwide conditions. In normal
      	compilation mode the procedure determines whether an inherited
      	operation needs a wrapper to handle an inherited condition that
      	differs from the condition of the root type.  In SPARK mode
      	the routine invokes Collect_Inherited_Class_Wide_Conditions to
      	produce the SPARK version of these inherited conditions.
      	(Freeze_Record_Type): For a type extension, call
      	Check_Inherited_Conditions.
      
      From-SVN: r237698
      Ed Schonberg committed
    • [multiple changes] · 497a660d
      2016-06-22  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb, sem_type.adb, sem.adb, freeze.adb, sem_util.adb,
      	s-htable.adb, exp_ch11.adb, s-secsta.adb, restrict.adb, exp_disp.adb,
      	sem_ch8.adb, s-tpobop.adb, exp_aggr.ads, sem_ch13.adb: Minor
      	reformatting.
      
      2016-06-22  Yannick Moy  <moy@adacore.com>
      
      	* lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Inverse order of
      	treatments so that files without compilation unit are simply skipped
      	before more elaborate treatments.
      
      2016-06-22  Bob Duff  <duff@adacore.com>
      
      	* s-memory.ads: Minor typo fixes in comments.
      	* s-memory.adb: Code cleanup.
      
      From-SVN: r237697
      Arnaud Charlet committed
    • * vxworks-crtbe-link.spec: Removed, no longer used. · 35484fc8
      From-SVN: r237696
      Olivier Hainque committed
    • Code cleanup. · a9f5b1b8
      From-SVN: r237695
      Arnaud Charlet committed
    • sem_ch8.adb (Push_Scope): Add a check for when the scope table is empty to… · 194d6f3f
      sem_ch8.adb (Push_Scope): Add a check for when the scope table is empty to assign the global variable...
      
      2016-06-22  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch8.adb (Push_Scope): Add a check for when the
      	scope table is empty to assign the global variable
      	Configuration_Component_Alignment.
      	* sem.adb (Do_Analyze): Add Configuration_Component_Alignment
      	to be assigned when the environment is cleaned instead of the
      	default.
      	* sem.ads Add a global variable Configuration_Component_Alignment
      	to store the value given by pragma Component_Alignment in the
      	context of a configuration file.
      	* sem_prag.adb (Analyze_Pragma): Correct the case for
      	Component_Alignment so that the pragma is verified and add
      	comments to explain how it is applied to the scope stack.
      
      2016-06-22  Justin Squirek  <squirek@adacore.com>
      
      	* sprint.adb (Sprint_Node_Actual): Add check in
      	the case of an N_Object_Declaration when evaluating an expression
      	to properly ignore errors.
      
      From-SVN: r237694
      Justin Squirek committed
    • [multiple changes] · d1aea5dd
      2016-06-22  Bob Duff  <duff@adacore.com>
      
      	* g-comlin.ads (Parameter_Type): Change subtype of Last to
      	Natural.
      	* g-comlin.adb (Set_Parameter): Change subtype of Last to
      	Natural.
      	(Getopt): Check for Arg = "", and Switches /= "".
      	(Internal_Initialize_Option_Scan): Check for Argument (Parser,
      	Index) /= "".
      
      2016-06-22  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_prag.adb, sem_ch8.adb: Minor reformatting.
      
      From-SVN: r237693
      Arnaud Charlet committed
    • [multiple changes] · 405b907c
      2016-06-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* einfo.ads, einfo.adb (Is_Actual_Subtype): New flag, defined
      	on subtypes that are created within subprogram bodies to handle
      	unconstrained composite formals.
      	* checks.adb (Apply_Predicate_Check): Do not generate a check on
      	an object whose type is an actual subtype.
      	* sem_ch6.adb (Set_Actual_Subtypes): Do not generate an
      	actual subtype for a formal whose base type is private.
      	Set Is_Actual_Subtype on corresponding entity after analyzing
      	its declaration.
      
      2016-06-22  Justin Squirek  <squirek@adacore.com>
      
      	* sem_prag.adb (Check_Expr_Is_OK_Static_Expression): Fix ordering
      	of if-block and add in a condition to test for errors during
      	resolution.
      	* sem_res.adb (Resolution_Failed): Add comment to explain why
      	the type of a node which failed to resolve is set to the desired
      	type instead of Any_Type.
      	* sem_ch8.adb (Analyze_Object_Renaming): Add a check for Any_Type
      	to prevent crashes on Is_Access_Constant.
      
      From-SVN: r237692
      Arnaud Charlet committed
    • [multiple changes] · 80007176
      2016-06-22  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* lib-xref-spark_specific.adb, checks.adb, sem_ch13.adb: Minor
      	reformatting.
      	* exp_ch7.adb: Minor typo fix.
      	* lib.ads (Get_Top_Level_Code_Unit): Add comment.
      
      2016-06-22  Bob Duff  <duff@adacore.com>
      
      	* s-tassta.adb (Task_Wrapper): Fix handling of Fall_Back_Handler
      	wrt independent tasks.
      
      2016-06-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension): Propagate dimension for
      	explicit_dereference nodes when they do not come from source,
      	to handle correctly dimensional analysis on iterators over
      	containers whose elements have declared dimensions.
      
      From-SVN: r237691
      Arnaud Charlet committed
    • spark_xrefs.ads (Scope_Num): type refined to positive integers. · 7ffbef99
      2016-06-22  Arnaud Charlet  <charlet@adacore.com>
      
      	* spark_xrefs.ads (Scope_Num): type refined to positive integers.
      	* lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope):
      	moved into scope of Collect_SPARK_Xrefs.
      	(Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs;
      	now uses Dspec and Scope_Id from Collect_SPARK_Xrefs.
      	(Collect_SPARK_Xrefs): refactored to avoid retraversing the list
      	of scopes.
      	(Traverse_Compilation_Unit): refactored as a generic procedure.
      	* types.ads (Unit_Number_Type): range refined.
      
      From-SVN: r237690
      Arnaud Charlet committed
    • Minor cleanup. · 71b23599
      From-SVN: r237689
      Arnaud Charlet committed
    • [multiple changes] · f26a3587
      2016-06-22  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* lib-xref-spark_specific.adb, a-cuprqu.ads, sem_ch6.adb: Minor
      	reformatting.
      
      2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_util.ads (Address_Value): Declare new function.
      	* sem_util.adb (Address_Value): New function extracted
      	unmodified from Apply_Address_Clause_Check, which returns the
      	underlying value of the expression of an address clause.
      	* checks.adb (Compile_Time_Bad_Alignment): Delete.
      	(Apply_Address_Clause_Check): Call Address_Value on
      	the expression.  Do not issue the main warning here and
      	issue the secondary warning only when the value of the
      	expression is not known at compile time.
      	* sem_ch13.adb (Address_Clause_Check_Record): Add A component and
      	adjust the description.
      	(Analyze_Attribute_Definition_Clause): In the case
      	of an address, move up the code creating an entry in the table of
      	address clauses.  Also create an entry for an absolute address.
      	(Validate_Address_Clauses): Issue the warning for absolute
      	addresses here too.  Tweak condition associated with overlays
      	for consistency.
      
      From-SVN: r237688
      Arnaud Charlet committed
    • [multiple changes] · f24ea912
      2016-06-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Is_Predicate_Static): An inherited predicate
      	can be static only if it applies to a scalar type.
      
      2016-06-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb (Adjust_Result_Type): Convert operand to base
      	type to prevent spurious constraint checks on subtypes of Boolean.
      
      2016-06-22  Bob Duff  <duff@adacore.com>
      
      	* debug.adb: Document debug switch -gnatd.o.
      	* sem_elab.adb (Check_Internal_Call): Debug switch -gnatd.o
      	now causes a more conservative treatment of indirect calls,
      	treating P'Access as a call to P in more cases. We Can't make
      	this the default, because it breaks common idioms, for example
      	the soft links.
      	* sem_util.adb: Add an Assert.
      
      2016-06-22  Bob Duff  <duff@adacore.com>
      
      	* a-cuprqu.ads, a-cuprqu.adb: Completely rewrite this package. Use
      	red-black trees, which gives O(lg N) worst-case performance on
      	Enqueue and Dequeue. The previous version had O(N) Enqueue in
      	the worst case.
      
      2016-06-22  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_warn.adb: minor style fix in comment.
      	* spark_xrefs.ads (Scope_Num): type refined to positive integers.
      	* lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope):
      	moved into scope of Collect_SPARK_Xrefs.
      	(Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs;
      	now uses Dspec and Scope_Id from Collect_SPARK_Xrefs.
      	(Collect_SPARK_Xrefs): refactored to avoid retraversing the list
      	of scopes.
      	* sem_ch3.adb (Build_Discriminal): Set Parent of the discriminal.
      
      From-SVN: r237687
      Arnaud Charlet committed
    • Minor reformatting. · 3ae6c643
      From-SVN: r237686
      Arnaud Charlet committed
    • lib-xref-spark_specific.adb (Generate_Dereference): Assignment to not commented… · b48a45e3
      lib-xref-spark_specific.adb (Generate_Dereference): Assignment to not commented local variables replaced with direct uses of their...
      
      2016-06-22  Arnaud Charlet  <charlet@adacore.com>
      
      	* lib-xref-spark_specific.adb (Generate_Dereference): Assignment to not
      	commented local variables replaced with direct uses of their values.
      
      From-SVN: r237685
      Arnaud Charlet committed
    • [multiple changes] · 22da8770
      2016-06-22  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Add_Invariant): Replace the
      	current type instance with the _object parameter even in ASIS mode.
      	(Build_Invariant_Procedure_Body): Do not insert the
      	invariant procedure body into the tree for ASIS and GNATprove.
      	(Build_Invariant_Procedure_Declaration): Do not insert the
      	invariant procedure declaration into the tree for ASIS and
      	GNATprove.
      	* lib-xref-spark_specific.adb (Add_SPARK_Scope): Update comment.
      
      2016-06-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Set_Actual_Subtypes): If the type of the actual
      	has predicates, the actual subtype must be frozen properly
      	because of the generated tests that may follow.  The predicate
      	may be specified by an explicit aspect, or may be inherited in
      	a derivation.
      
      From-SVN: r237684
      Arnaud Charlet committed