1. 20 Oct, 2015 17 commits
    • [multiple changes] · e9f97e79
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-coinve.ads, a-coinve.adb: Do the same efficiency
      	improvements that were already done in the definite case
      	(Ada.Containers.Vectors, i.e. a-convec). This includes the
      	ability to suppress checks, the fast path for Append, inlining
      	as appropriate, and special-casing of "for ... of" loops. Reuse
      	the tampering machinery that is now in Ada.Containers. Simplify
      	many operations.
      	* a-convec.ads, a-convec.adb: Change the code to be more similar
      	to a-coinve.
      	* a-finali.ads, a-finali.adb: Expose the "null"-ness of the
      	operations. This may enable optimizations in the future, and
      	seems cleaner anyway.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Is_Operational_Item): Attributes related to
      	Ada 2012 iterators are operational items, and can be specified
      	on partial views.
      
      From-SVN: r229033
      Arnaud Charlet committed
    • [multiple changes] · 0489576c
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Check_Usage): Update the calls to Usage_Error.
      	(Usage_Error): Remove formal parameter Item. Emit a clearer message
      	concerning a missing dependency item and place it on the related pragma.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* debug.adb, expander.adb: Implement -gnatd.B switch, which
      	triggers a bug box when an abort_statement is seen. This is
      	useful for testing Comperr.Compiler_Abort.
      	* gnat1drv.adb: Trigger bug box on all exceptions other than
      	Unrecoverable_Error.
      
      From-SVN: r229032
      Arnaud Charlet committed
    • [multiple changes] · 3c777b50
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* Makefile.rtl: add the following...
      	* g-binenv.ads, g-binenv.adb: New unit providing runtime access
      	to bind time captured values ("bind environment")
      	* init.c: declare new global variable __gl_bind_env_addr.
      	* bindgen.ads, bindgen.adb (Set_Bind_Env): record a bind
      	environment key=value pair.
      	(Gen_Bind_Env_String): helper to produce the bind environment data
      	called  in the binder generated file.
      	(Gen_Output_File_Ada): Call the above (Gen_Adainit): Set
      	__gl_bind_env_addr accordingly.
      	* switch-b.adb: Support for command line switch -V (user interface
      	to set a build environment key=value pair)
      	* bindusg.adb: Document the above
      
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* sem_prag.adb (Analyse_Pragma: Pragma Pure): Do not set the
      	entity as Pure if Debug_Flag_U is set.
      
      From-SVN: r229031
      Arnaud Charlet committed
    • [multiple changes] · 7188885e
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* output.adb (Write_Int): Work with negative numbers in order to avoid
      	negating Int'First and thereby causing overflow.
      	* sem_util.adb: Minor comment fix.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* make.adb (Check): Skip multilib switches reinstated by the
      	compiler when doing the comparison with switches passed to
      	gnatmake.
      
      2015-10-20  Yannick Moy  <moy@adacore.com>
      
      	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Return
      	False for procedures marked No_Return.
      	* sem_util.ads (Enclosing_Declaration): Improve comment.
      	* einfo.adb (Is_Completely_Hidden): Remove spurious assertion.
      
      From-SVN: r229029
      Arnaud Charlet committed
    • [multiple changes] · f06f5f6b
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* types.ads: Minor reformatting.
      
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb (Get_Pragma): Minor reformatting. Rename local constant
      	Is_CDG to Is_CLS. Add pragma Constant_After_Elaboration to the list of
      	classification pragmas.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Declarations); At the of the visible part,
      	perform name resolution on the expressions in aspects of visible
      	entities.
      	* sem_ch13.ads, sem_ch13.adb (Resolve_Aspect_Expressions): Resolve
      	expressions in aspects independently of whether corresponding
      	entity is frozen. Used to complete name resolution of aspect
      	expressions for entities declared in the visible part of a
      	package or generic package declaration.
      
      From-SVN: r229028
      Arnaud Charlet committed
    • [multiple changes] · 40417de8
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* prj-attr.adb: Add package Codepeer and its attributes.
      
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_ch3.adb, sem_ch13.adb: Minor reformatting.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* gnatlink.adb (Gnatlink): Do not translate --RTS switch
      	for the linker and instead pass the switches that were
      	reinstated by the compiler.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-contai.ads, a-convec.ads: Move Count_Type_Last from
      	a-convec.ads to a-contai.ads, so other containers can refer to it.
      
      From-SVN: r229027
      Arnaud Charlet committed
    • sem_ch3.adb (Check_Nonoverridable_Aspects): New procedure within Analyze_Full_Type_ Declaration... · b8a18216
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Check_Nonoverridable_Aspects): New procedure within
      	Analyze_Full_Type_ Declaration, used to apply legality rules in
      	13,1,1 (18.3.3) concerning aspects that cannot be overridden in
      	a type extension.
      	(Check_Duplicate_Aspects): It is not legal to specify the
      	Implicit_Dereference aspect on a full view if partial view has
      	known discriminants.
      	* sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Verify that
      	the specification of the aspect on a derived type confirms the
      	value of the inherited one.
      	* sem_util.adb (Reference_Discriminant): Return empty if none
      	specified.
      
      From-SVN: r229026
      Ed Schonberg committed
    • [multiple changes] · d9147bb6
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch5.adb, sem_ch3.adb: Minor reformatting.
      
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* a-strsup.adb (Super_Trim): Remove statements that put NUL
      	characters in unused portion of the Data string.
      
      From-SVN: r229025
      Arnaud Charlet committed
    • Fix default_binds_local_p_2 for extern protected data · 16b340c2
      gcc:
      
      	PR target/66912
      	* varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
      
      gcc/testsuite:
      
      	PR target/66912
      	* gcc.target/aarch64/pr66912.c: New.
      	* gcc.target/arm/pr66912.c: New.
      
      From-SVN: r229024
      Szabolcs Nagy committed
    • re PR c++/67064 (Register asm variable broken) · 0d8ab59c
      	PR c++/67064
      
      	* semantics.c (force_paren_expr): Don't mess with hard register vars.
      
      From-SVN: r229021
      Jason Merrill committed
    • [PATCH] c/67925 - update documentation on `inline' · 620cf5ea
      	* doc/extend.texi: Update documentation WRT inline functions.
      
      From-SVN: r229020
      Arkadiusz Drabczyk committed
    • Implement N4268, Do constant evaluation of all non-type template args. · 2a9fb712
      gcc/c-family/
      	* c-cppbuiltin.c (c_cpp_builtins): Define
      	__cpp_nontype_template_args.
      gcc/cp/
      	* parser.c (cp_parser_template_argument): For C++1z just parse a
      	constant-expression.
      	* pt.c (convert_nontype_argument): For C++1z always call
      	maybe_constant_value.
      
      From-SVN: r229019
      Jason Merrill committed
    • Expand PTRMEM_CST only when necessary. · dcdbc004
      	* constexpr.c (cxx_eval_constant_expression): Expand PTRMEM_CST
      	only when necessary.
      	(cxx_eval_component_reference): Like here.
      	* decl2.c (lower_var_init): And here.
      	(c_parse_final_cleanups): Call it.
      	* typeck2.c (digest_init_r): Not here.
      	* decl.c (complete_vars): Or here.
      	(cp_finish_decl): Add local statics to symbol table.
      
      From-SVN: r229018
      Jason Merrill committed
    • c-cppbuiltin.c (c_cpp_builtins): Define __cpp_enumerator_attributes... · 13b380a3
      	* c-cppbuiltin.c (c_cpp_builtins): Define
      	__cpp_enumerator_attributes, __cpp_fold_expressions,
      	__cpp_unicode_characters.
      
      From-SVN: r229017
      Jason Merrill committed
    • typo · a36b732a
      From-SVN: r229016
      Jason Merrill committed
    • resolve.c (gfc_verify_binding_labels): Check for NULL pointer. · b6969536
      2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* resolve.c (gfc_verify_binding_labels): Check for NULL pointer.
      
      2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* gfortran.dg/pr67900.f90: New tests.
      
      From-SVN: r229013
      Steven G. Kargl committed
    • Daily bump. · f7ddf3f3
      From-SVN: r229012
      GCC Administrator committed
  2. 19 Oct, 2015 16 commits
    • PR66870 PowerPC64 Enable gold linker with split stack · b2e4c071
      A powerpc-linux/powerpc64-linux biarch compiler can default to either
      -m32 or -m64, and we need to notice both -m32 and -m64 on the gccgo
      command line.  It's also possible to build a -m64 only compiler, so in
      that case we can define TARGET_CAN_SPLIT_STACK.
      
      gcc/
      	PR go/66870
      	* config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
      	* config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
      	(TARGET_CAN_SPLIT_STACK_64BIT): Define.
      gcc/go/
      	PR go/66870
      	* gospec.c (saw_opt_m32): Rename to..
      	(is_m64): ..this, initialised by TARGET_CAN_SPLIT_STACK_64BIT.
      	Update uses.
      	(lang_specific_driver): Set is_m64 if OPT_m64, clear if OPT_m32.
      
      From-SVN: r229009
      Alan Modra committed
    • REE: fix uninitialized registers handling · 524d9b4b
      gcc/ChangeLog:
      
      	PR rtl-optimization/66790
      	* df.h (DF_MIR): New macro.
      	(DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
      	(DF_MIR_INFO_BB): New macro.
      	(DF_MIR_IN, DF_MIR_OUT): New macros.
      	(struct df_mir_bb_info): New.
      	(df_mir): New macro.
      	(df_mir_add_problem, df_mir_simulate_one_insn): New forward
      	declarations.
      	(df_mir_get_bb_info): New.
      	* df-problems.c (struct df_mir_problem_data): New.
      	(df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
      	df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
      	df_mir_confluence_0, df_mir_confluence_n,
      	df_mir_transfer_function, df_mir_free, df_mir_top_dump,
      	df_mir_bottom_dump, df_mir_verify_solution_start,
      	df_mir_verify_solution_end): New.
      	(problem_MIR): New.
      	(df_mir_add_problem, df_mir_simulate_one_insn): New.
      	* timevar.def (TV_DF_MIR): New.
      	* ree.c: Include bitmap.h
      	(add_removable_extension): Add an INIT_REGS parameter.  Use it
      	to skip zero-extensions that may get an uninitialized register.
      	(find_removable_extensions): Compute must-initialized registers
      	using the MIR dataflow problem. Update the call to
      	add_removable_extension.
      	(find_and_remove_re): Call df_mir_add_problem.
      
      gcc/testsuite/ChangeLog:
      
      	* gnat.dg/opt50.adb: New test.
      	* gnat.dg/opt50_pkg.adb: New helper.
      	* gnat.dg/opt50_pkg.ads: New helper.
      
      From-SVN: r229008
      Pierre-Marie de Rodat committed
    • mn10300: Use the STC bb-reorder algorithm at -Os · 32308c8d
      For mn10300, STC still gives better results for optimise-for-size than
      "simple" does.  So use STC at -Os as well.
      
      
      2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	* common/config/mn10300/mn10300-common.c
      	(mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
      	Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
      
      From-SVN: r229006
      Segher Boessenkool committed
    • Proposed doc update for Explicit Reg Vars 1/3 · 88f3c6e6
      Proposed doc update for Explicit Reg Vars 1/3
              * doc/extend.texi (Explicit Register Variables): Simplify and
              avoid unnecessary and confusion abbreviations.  Update cross
              references.
              doc/implement-c.tex: Update cross reference.
      
      From-SVN: r229004
      David Wohlferd committed
    • re PR fortran/68019 (ICE on rank mismatch of implied-shape array of user-defined type) · c3fa5d78
      2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/68019
      	* decl.c (add_init_expr_to_sym): Remove an assert() to allow an error
      	message to be issued.
      
      2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/68019
      	* gfortran.dg/pr68019.f90: new test.
      
      From-SVN: r229003
      Steven G. Kargl committed
    • [PATCH] Don't allow FSM threader to create irreducible loops unless it… · a2f6018f
      [PATCH] Don't allow FSM threader to create irreducible loops unless it eliminates a multi-way branch
      
      	* tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
      	that create irreducible loops unless the path elimiantes a multiway
      	branch.
      
      From-SVN: r228974
      Jeff Law committed
    • re PR tree-optimization/67975 (Failure to optimise equality between two call sequences) · e6503e0a
      2015-10-19  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/67975
      	* tree-cfg.h (extract_true_false_controlled_edges): Declare.
      	* tree-cfg.c (extract_true_false_controlled_edges): Split out
      	core worker from ...
      	* tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
      	* tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
      	instead of block number for PHIs with two or one args.
      	(vn_phi_eq): Compare edge predicates of PHIs that are in different
      	blocks.
      
      	* gcc.dg/tree-ssa/ssa-fre-50.c: New testcase.
      
      From-SVN: r228971
      Richard Biener committed
    • gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function. · 4534c203
      2015-10-19  Richard Biener  <rguenther@suse.de>
      
      	* gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
      	(gimple_stmt_nonnegative_warnv_p): Use it.
      	* match.pd (CPROJ): New operator list.
      	(cproj (complex ...)): Move simplifications from ...
      	* builtins.c (fold_builtin_cproj): ... here.
      
      	* gcc.dg/torture/builtin-cproj-1.c: Skip for -O0.
      
      From-SVN: r228970
      Richard Biener committed
    • Use GET_MODE_BITSIZE to get vector natural alignment · 1c6e3c3e
      Since GET_MODE_ALIGNMENT is defined by psABI and the biggest alignment
      is 4 byte for IA MCU psABI, we should use GET_MODE_BITSIZE for IA MCU
      psABI to get vector natural alignment to check misaligned vector move.
      
      	* config/i386/i386.c (ix86_expand_vector_move): Use
      	GET_MODE_BITSIZE for IA MCU psABI to get vector natural
      	alignment.
      
      From-SVN: r228969
      H.J. Lu committed
    • Replace @optindex with @opindex · 1be8ebde
      	* doc/invoke.texi: Replace @optindex with @opindex.
      
      From-SVN: r228968
      H.J. Lu committed
    • Don't leak ISA to __attribute__ ((target("arch=XXX"))) · 3f11bf19
      When processing __attribute__ ((target("arch=XXX"))), we should clear
      the ISA bits in x_ix86_isa_flags first to avoid leaking ISA from
      command line.
      
      gcc/
      
      	PR target/67995
      	* config/i386/i386.c (ix86_valid_target_attribute_tree): If
      	arch= is set,  clear all bits in x_ix86_isa_flags, except for
      	ISA_64BIT, ABI_64, ABI_X32, and CODE16.
      
      gcc/testsuite/
      
      	PR target/67995
      	* gcc.target/i386/pr67995-1.c: New test.
      	* gcc.target/i386/pr67995-2.c: Likewise.
      	* gcc.target/i386/pr67995-3.c: Likewise.
      
      From-SVN: r228967
      H.J. Lu committed
    • fix date of changelog entry · 7be37b35
      From-SVN: r228966
      Joost VandeVondele committed
    • Fix PR68002, add -fkeep-static-functions · 787da5fd
      gcc/ChangeLog:
      
      2015-10-17  Joost VandeVondele  <vondele@gnu.gcc.org>
      
              PR middle-end/68002
              * common.opt (fkeep-static-functions): New option.
              * doc/invoke.texi: Document it.
              * cgraphunit.c (cgraph_node::finalize_function): Use it.
      
      gcc/testsuite/ChangeLog:
      
      2015-10-17  Joost VandeVondele  <vondele@gnu.gcc.org>
      
              PR middle-end/68002
              * gcc.dg/PR68002.c: New test.
      
      From-SVN: r228965
      Joost VandeVondele committed
    • Remove undefined behaviour from builtins-20.c · 9c99fe75
      builtins-20.c had:
      
            if (cos((y*=2, -fabs(tan(x/-y)))) != cos((y*=2,tan(x/y))))
              link_error ();
      
      which is undefined behaviour.  The test expected that y had the same
      value in x/y and x/-y, but gimplification actually implements the
      "obvious" interpretation, multiplying y by 2, using it for one cos call,
      then multiplying it by 2 again and using it for the other cos call.
      
      The file has other (valid) tests that side-effects don't block
      optimisation, such as:
      
            if (cosf((y*=3, -x)) != cosf((y*=3,x)))
              link_error ();
      
      so this patch simply removes this instance.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/testsuite/
      	* gcc.dg/builtins-20.c: Remove undefined behavior.
      
      From-SVN: r228963
      Richard Sandiford committed
    • [haifa-sched] model load/store multiples properly in autoprefetcher scheduling · 613743a2
      	* sched-int.h (struct autopref_multipass_data_): Remove offset
      	field.  Add min_offset, max_offset, multi_mem_insn_p fields.
      	* haifa-sched.c (analyze_set_insn_for_autopref): New function.
      	(autopref_multipass_init): Use it.  Handle PARALLEL sets.
      	(autopref_rank_data): New function.
      	(autopref_rank_for_schedule): Use it.
      	(autopref_multipass_dfa_lookahead_guard_1): Likewise.
      
      From-SVN: r228962
      Kyrylo Tkachov committed
    • Daily bump. · eb5ea58e
      From-SVN: r228959
      GCC Administrator committed
  3. 18 Oct, 2015 7 commits
    • Fix crash in gengtype debug dump · 5330e5a1
      gcc/
      	PR other/65800
      	* gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
      
      From-SVN: r228956
      Mikhail Maltsev committed
    • Revise Darwin's sysroot handling to be compatible with the clang toolchain. · d42becb9
      gcc/
      	* config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
      	(HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New. 
      	(LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
      	(STANDARD_STARTFILE_PREFIX_1): New.
      	(STANDARD_STARTFILE_PREFIX_2): New.
      
      From-SVN: r228950
      Iain Sandoe committed
    • re PR c++/68006 ([C++14] Incorrect aggregate initialization from empty initializer list with NSDMI) · 49489608
      	PR c++/68006
      
      	* decl.c (implicit_default_ctor_p): New.
      	(start_preparsed_function): Don't clobber on entry to one.
      
      From-SVN: r228949
      Jason Merrill committed
    • Fix common-related error recovery ICE. · a70ba41f
      Fix an inconsistent state, between the in_common attribute
      and the common_block pointer.
      
       - adding a symbol to a common block list in gfc_match_common is delayed
         after the call to gfc_add_in_common.
       - gfc_restore_latest_undo_checkpoint is changed to check the common_block
         pointer directly instead of the in_common attribute.
       - gfc_restore_old_symbol is changed to also restore
         the common-related pointers.  This is done using a new function created
         to factor the related memory management.
       - In gfc_restore_last_undo_checkpoint, when a symbol has been removed
         from the common block linked list, its common_next pointer is cleared.
      
      	PR fortran/67758
      gcc/fortran/
      	* gfortran.h (gfc_symbol): Expand comment.
      	* match.c (gfc_match_common): Delay adding the symbol to
      	the common_block after the gfc_add_in_common call.
      	* symbol.c (gfc_free_symbol): Move common block memory handling...
      	(gfc_set_symbol_common_block): ... here as a new function.
      	(restore_old_symbol): Restore common block fields.
      	(gfc_restore_last_undo_checkpoint):
      	Check the common_block pointer instead of the in_common attribute.
      	When a symbol has been removed from the common block linked list,
      	clear its common_next pointer.
      gcc/testsuite/
      	* gfortran.dg/common_25.f90: New file.
      
      From-SVN: r228947
      Mikael Morin committed
    • Darwin - Tidy mmacosx-version-min code and specs. · 45c3fea9
      gcc/
      
      	* config/darwin-driver.c (darwin_default_min_version): Refactor code.
      	(darwin_driver_init): Note a version-min when provided on the c/l.
      	* config/darwin.h (%darwin_minversion): Remove.
      	* config/i386/darwin.h: Likewise.
      	* config/rs6000/darwin.h: Likewise.
      	* config/darwin.opt (mmacosx-version-min=): Use the configured default, rather than
      	an arbitrary constant.
      
      From-SVN: r228944
      Iain Sandoe committed
    • Fix PR63758 by using the _NSGetEnviron() API on Darwin · efd40fc4
      include/
      
      	Roland McGrath  <roland@gnu.org>
      
      	PR other/63758
      	* environ.h: New file.
      
      libiberty/
      
      	Roland McGrath  <roland@gnu.org>
      	Iain Sandoe  <iain@codesourcery.com>
      
      	PR other/63758
      	* pex-unix.c: Obtain the environment interface from settings in environ.h
      	rather than in-line code.  Update copyright date.
      	* setenv.c: Likewise.
      	* xmalloc.c: Likewise.
      
      
      
      Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
      
      From-SVN: r228942
      Roland McGrath committed
    • Improve handling of -arch flag for Darwin · 37341412
      gcc/
      	* config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
      	PPC, detect conflicts between -arch and multilib settings.  Detect
      	and warn about conflicts between multiple -arch definitions.
      
      From-SVN: r228941
      Iain Sandoe committed