1. 20 Oct, 2015 14 commits
    • [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 10 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
    • re PR fortran/67177 (MOVE_ALLOC not automatically allocating deferred character… · 38217d3e
      re PR fortran/67177 (MOVE_ALLOC not automatically allocating deferred character arrays in derived types)
      
      2015-10-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/67177
      	PR fortran/67977
      	* primary.c (match_substring): Add an argument 'deferred' to
      	flag that a substring reference with null start and end should
      	not be optimized away for deferred length strings.
      	(match_string_constant, gfc_match_rvalue): Set the argument.
      	* trans-expr.c (alloc_scalar_allocatable_for_assignment): If
      	there is a substring reference return.
      	* trans-intrinsic.c (conv_intrinsic_move_alloc): For deferred
      	characters, assign the 'from' string length to the 'to' string
      	length. If the 'from' expression is deferred, set its string
      	length to zero. If the 'to' expression has allocatable
      	components, deallocate them.
      
      2015-10-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/67177
      	* gfortran.dg/move_alloc_15.f90: New test
      	* gfortran.dg/move_alloc_16.f90: New test
      
      	PR fortran/67977
      	* gfortran.dg/deferred_character_assignment_1.f90: New test
      
      From-SVN: r228940
      Paul Thomas committed
    • fix Darwin bootstrap · 2fe7f26c
      gcc/
      	* config/darwin-driver.h: Adjust includes to add diagnostic-core.
      
      From-SVN: r228939
      Iain Sandoe committed
    • Daily bump. · ba0c749b
      From-SVN: r228936
      GCC Administrator committed