Commit Graph

141496 Commits

Author SHA1 Message Date
Ramana Radhakrishnan 805f52d386 Fix VTV for targets with section anchors.
2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR other/67868
	* varasm.c (assemble_variable): Move special vtv handling to..
	(handle_vtv_comdat_sections): .. here. New function.
	(output_object_block): Handle vtv sections.

From-SVN: r229044
2015-10-20 10:36:54 +00:00
Ramana Radhakrishnan 75d363a042 Fix VTV for targets with section anchors.
2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR other/67868
	* varasm.c (assemble_variable): Move special vtv handling to..
	(handle_vtv_comdat_sections): .. here. New function.
	(output_object_block): Handle vtv sections.

From-SVN: r229043
2015-10-20 10:36:33 +00:00
Arnaud Charlet 04b32ed744 Update targets.
From-SVN: r229042
2015-10-20 12:36:00 +02:00
Bob Duff 14f732114e sem_ch13.adb (Analyze_One_Aspect): Avoid analyzing the expression in a 'Disable_Controlled attribute when...
2015-10-20  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_One_Aspect): Avoid
	analyzing the expression in a 'Disable_Controlled attribute when
	Expander_Active is False, because otherwise, we get errors about
	nonstatic expressions in pragma-Preelaborate generic packages.
	* restrict.ads: minor whitespace cleanup in comment

2015-10-20  Bob Duff  <duff@adacore.com>

	* a-conhel.adb: Remove "use SAC;", because otherwise the compiler
	complains about use clauses in run-time units. Use "use type"
	instead.
	* a-btgbso.adb, a-btgbso.ads, a-cbdlli.adb, a-cbdlli.ads,
	* a-cbhama.adb, a-cbhama.ads, a-cbhase.adb, a-cbhase.ads,
	* a-cbmutr.adb, a-cbmutr.ads, a-cborma.adb, a-cborma.ads,
	* a-cborse.adb, a-cborse.ads, a-cdlili.adb, a-cdlili.ads,
	* a-chtgbk.adb, a-chtgbk.ads, a-chtgbo.adb, a-chtgbo.ads,
	* a-chtgke.adb, a-chtgke.ads, a-chtgop.adb, a-chtgop.ads,
	* a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
	* a-cihase.adb, a-cihase.ads, a-cimutr.adb, a-cimutr.ads,
	* a-ciorma.adb, a-ciorma.ads, a-ciormu.adb, a-ciormu.ads,
	* a-ciorse.adb, a-ciorse.ads, a-cobove.adb, a-cobove.ads,
	* a-cohama.adb, a-cohama.ads, a-cohase.adb, a-cohase.ads,
	* a-cohata.ads, a-coinve.adb, a-comutr.adb, a-comutr.ads,
	* a-convec.adb, a-coorma.adb, a-coorma.ads, a-coormu.adb,
	* a-coormu.ads, a-coorse.adb, a-coorse.ads, a-crbltr.ads,
	* a-crbtgk.adb, a-crbtgk.ads, a-crbtgo.adb, a-crbtgo.ads,
	* a-rbtgbk.adb, a-rbtgbk.ads, a-rbtgbo.adb, a-rbtgbo.ads,
	* a-rbtgso.adb, a-rbtgso.ads: Change all the predefined containers
	to share the tampering machinery in Ada.Containers.Helpers. This
	reduces the amount of duplicated code, and takes advantage of
	efficiency improvements in Helpers.
	Protect all run-time checks and supporting machinery with "if
	Checks" or "if T_Check", so this code can be suppressed with
	pragma Suppress or -gnatp.
	Add Pseudo_Reference and Get_Element_Access to remaining
	containers, so that the compiler can optimize "for ... of" loops.

From-SVN: r229041
2015-10-20 12:23:46 +02:00
Arnaud Charlet b7737d1d37 [multiple changes]
2015-10-20  Bob Duff  <duff@adacore.com>

	* a-contai.adb, a-coinve.ads, a-contai.ads, a-conhel.adb, a-conhel.ads,
	Makefile.rtl, a-convec.ads: Move helper code from Ada.Containers to a
	new package Ada.Containers.Helpers, because otherwise it's not
	visible everywhere it needs to be (e.g. in the package
	Ada.Containers.Red_Black_Trees, Generic_Tree_Types wants to have
	a component of type Tamper_Counts).

2015-10-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Intersect_Types): Specialize error message when
	one operand is a limited view which is a priori incompatible
	with all other named types.
	* sem_prag.adb: minor fix in comment
	* sem_ch13.adb: Code clean up.

2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch12.adb (Need_Subprogram_Instance_Body): Also return true
	for a subprogram nested in an inlined subprogram.

From-SVN: r229040
2015-10-20 12:20:37 +02:00
Arnaud Charlet 6fa8f71cf8 [multiple changes]
2015-10-20  Bob Duff  <duff@adacore.com>

	* a-coinve.adb, a-contai.adb: Update comments.
	* pprint.ads: Minor reformatting.

2015-10-20  Tristan Gingold  <gingold@adacore.com>

	* env.c, init.c: Handle arm64-darwin like arm-darwin.
	* tracebak.c: Handle arm64-darwin.

2015-10-20  Bob Duff  <duff@adacore.com>

	* s-trasym.adb (Symbolic_Traceback): When giving the traceback
	as hexadecimal code addresses, separate by blanks instead of LF.

From-SVN: r229039
2015-10-20 12:13:47 +02:00
Arnaud Charlet 36f2e3d311 [multiple changes]
2015-10-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate freeze
	node for subprogram in Compile_Only mode.

2015-10-20  Dmitriy Anisimkov  <anisimko@adacore.com>

	* s-atocou.adb, s-atocou.ads, a-contai.adb, a-contai.ads,
	s-atocou-x86.adb, s-atocou-builtin.adb: Task safe over container
	iterations.

From-SVN: r229037
2015-10-20 12:10:20 +02:00
Arnaud Charlet be7e4a402a [multiple changes]
2015-10-20  Philippe Gil  <gil@adacore.com>

	* g-debpoo.ads (Dump): NEW print Debug_Pool statistics & main
	contributors.
	(Dump_Stdout): NEW print to stdout Debug_Pool statistics &
	main contributors.
	(Reset): NEW reset counters to 0.
	(Get_Size): NEW return size allocated at parameter.
	(High_Water_Mark): NEW.
	(Current_Water_Mark): NEW.
	(System_Memory_Debug_Pool): NEW tell Debug_Pools that
	System.Memory uses it.
	* g-debpoo.adb (Traceback_Htable_Elem): add Frees, Total_Frees
	components.
	(Find_Or_Create_Traceback): don't manage in System.Memory
	Debug_Pool Deallocate Traceback's.
	(Validity): add optional Handled table when System.Memory asked
	for Allow_Unhandled_Memory.
	(Allocate): handle Allocate reentrancy occuring when System.Memory
	uses Debug_Pools.
	(Deallocate): handle when Allow_Unhandled_Memory
	is set deallocation of unhandled memory. Dont't check
	Size_In_Storage_Elements if equal to Storage_Count'Last. update
	Frees, Total_Frees new components.

2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* fe.h: Minor tweak.

From-SVN: r229036
2015-10-20 12:07:09 +02:00
Arnaud Charlet 46ee0270b7 [multiple changes]
2015-10-20  Vincent Celier  <celier@adacore.com>

	* sem_cat.adb (Check_Categorization_Dependencies): Do nothing
	when -gnatdu is specified.

2015-10-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (analyze_Subprogram_Renaming): The actual for a
	formal abstract subprogram must have a controlling type.
	* stand.ads: Minor whitespace cleanup.

From-SVN: r229035
2015-10-20 12:04:44 +02:00
Arnaud Charlet 47b79f7801 [multiple changes]
2015-10-20  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch13.adb: Minor reference change (RM => AARM).

2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* make.adb (Check): Skip multilib switches reinstated by the
	compiler only when counting the number of switches, since it is
	what really matters in the regular operating mode.

2015-10-20  Arnaud Charlet  <charlet@adacore.com>

	* einfo.adb: Add extra assertion for small clause.
	* cstand.adb: Minor style fix in comment.
	* debug.adb: Minor reformatting.
	* exp_util.adb: Fix minor typo.

2015-10-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Same_Instantiated_Function): New predicate in
	Check_Formal_Package_Instance, used to verify that the formal
	and the actual of an actual package match when both are functions
	given as attribute references.

From-SVN: r229034
2015-10-20 12:00:15 +02:00
Arnaud Charlet e9f97e7931 [multiple changes]
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
2015-10-20 11:56:56 +02:00
Arnaud Charlet 0489576ce8 [multiple changes]
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
2015-10-20 11:55:20 +02:00
Arnaud Charlet 3c777b50a7 [multiple changes]
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
2015-10-20 11:53:11 +02:00
Arnaud Charlet 7188885e56 [multiple changes]
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
2015-10-20 11:48:00 +02:00
Arnaud Charlet f06f5f6bd6 [multiple changes]
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
2015-10-20 11:45:29 +02:00
Arnaud Charlet 40417de8ab [multiple changes]
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
2015-10-20 11:42:53 +02:00
Ed Schonberg b8a1821614 sem_ch3.adb (Check_Nonoverridable_Aspects): New procedure within Analyze_Full_Type_ Declaration...
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
2015-10-20 11:40:24 +02:00
Arnaud Charlet d9147bb633 [multiple changes]
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
2015-10-20 11:38:17 +02:00
Szabolcs Nagy 16b340c224 Fix default_binds_local_p_2 for extern protected data
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
2015-10-20 09:37:27 +00:00
Jason Merrill 0d8ab59ce0 re PR c++/67064 (Register asm variable broken)
PR c++/67064

	* semantics.c (force_paren_expr): Don't mess with hard register vars.

From-SVN: r229021
2015-10-20 02:49:13 -04:00
Arkadiusz Drabczyk 620cf5ea84 [PATCH] c/67925 - update documentation on `inline'
* doc/extend.texi: Update documentation WRT inline functions.

From-SVN: r229020
2015-10-19 23:52:00 -06:00
Jason Merrill 2a9fb7125e Implement N4268, Do constant evaluation of all non-type template args.
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
2015-10-19 22:48:51 -04:00
Jason Merrill dcdbc004d5 Expand PTRMEM_CST only when necessary.
* 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
2015-10-19 22:48:43 -04:00
Jason Merrill 13b380a325 c-cppbuiltin.c (c_cpp_builtins): Define __cpp_enumerator_attributes...
* c-cppbuiltin.c (c_cpp_builtins): Define
	__cpp_enumerator_attributes, __cpp_fold_expressions,
	__cpp_unicode_characters.

From-SVN: r229017
2015-10-19 22:48:36 -04:00
Jason Merrill a36b732a76 typo
From-SVN: r229016
2015-10-19 22:48:25 -04:00
Steven G. Kargl b6969536a0 resolve.c (gfc_verify_binding_labels): Check for NULL pointer.
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
2015-10-20 00:31:48 +00:00
GCC Administrator f7ddf3f349 Daily bump.
From-SVN: r229012
2015-10-20 00:16:15 +00:00
Alan Modra b2e4c071d7 PR66870 PowerPC64 Enable gold linker with split stack
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
2015-10-20 10:20:30 +10:30
Pierre-Marie de Rodat 524d9b4b90 REE: fix uninitialized registers handling
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
2015-10-19 23:47:35 +00:00
Segher Boessenkool 32308c8db4 mn10300: Use the STC bb-reorder algorithm at -Os
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
2015-10-20 00:03:13 +02:00
David Wohlferd 88f3c6e6c1 Proposed doc update for Explicit Reg Vars 1/3
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
2015-10-19 15:15:41 -06:00
Steven G. Kargl c3fa5d78ba re PR fortran/68019 (ICE on rank mismatch of implied-shape array of user-defined type)
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
2015-10-19 21:09:21 +00:00
Jeff Law a2f6018f32 [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
2015-10-19 10:24:00 -06:00
Richard Biener e6503e0a45 re PR tree-optimization/67975 (Failure to optimise equality between two call sequences)
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
2015-10-19 14:00:28 +00:00
Richard Biener 4534c2032b gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
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
2015-10-19 13:58:27 +00:00
H.J. Lu 1c6e3c3e2c Use GET_MODE_BITSIZE to get vector natural alignment
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
2015-10-19 04:41:03 -07:00
H.J. Lu 1be8ebde2e Replace @optindex with @opindex
* doc/invoke.texi: Replace @optindex with @opindex.

From-SVN: r228968
2015-10-19 04:30:46 -07:00
H.J. Lu 3f11bf19d9 Don't leak ISA to __attribute__ ((target("arch=XXX")))
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
2015-10-19 04:18:14 -07:00
Joost VandeVondele 7be37b351a fix date of changelog entry
From-SVN: r228966
2015-10-19 10:26:32 +00:00
Joost VandeVondele 787da5fdbf Fix PR68002, add -fkeep-static-functions
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
2015-10-19 10:24:37 +00:00
Richard Sandiford 9c99fe750c Remove undefined behaviour from builtins-20.c
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
2015-10-19 10:06:56 +00:00
Kyrylo Tkachov 613743a2cb [haifa-sched] model load/store multiples properly in autoprefetcher scheduling
* 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
2015-10-19 09:23:07 +00:00
GCC Administrator eb5ea58e9e Daily bump.
From-SVN: r228959
2015-10-19 00:16:12 +00:00
Mikhail Maltsev 5330e5a158 Fix crash in gengtype debug dump
gcc/
	PR other/65800
	* gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.

From-SVN: r228956
2015-10-18 23:33:21 +00:00
Iain Sandoe d42becb9d8 Revise Darwin's sysroot handling to be compatible with the clang toolchain.
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
2015-10-18 18:33:05 +00:00
Jason Merrill 49489608c0 re PR c++/68006 ([C++14] Incorrect aggregate initialization from empty initializer list with NSDMI)
PR c++/68006

	* decl.c (implicit_default_ctor_p): New.
	(start_preparsed_function): Don't clobber on entry to one.

From-SVN: r228949
2015-10-18 14:02:10 -04:00
Mikael Morin a70ba41f41 Fix common-related error recovery ICE.
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
2015-10-18 17:17:21 +00:00
Iain Sandoe 45c3fea9ba Darwin - Tidy mmacosx-version-min code and specs.
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
2015-10-18 14:31:25 +00:00
Roland McGrath efd40fc416 Fix PR63758 by using the _NSGetEnviron() API on Darwin
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
2015-10-18 10:33:37 +00:00
Iain Sandoe 37341412a5 Improve handling of -arch flag for Darwin
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
2015-10-18 10:11:03 +00:00