Commit Graph

130512 Commits

Author SHA1 Message Date
Paolo Carlini c7bb3484a2 re PR c++/60265 ([C++11] using-declaration of enumerator fails if fully qualified)
/cp
2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60265
	* parser.c (cp_parser_using_declaration): Handle unscoped enums.
	* name-lookup.c (validate_nonmember_using_decl): Adjust error
	message.

/testsuite
2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60265
	* g++.dg/cpp0x/using-enum-1.C: New.
	* g++.dg/cpp0x/using-enum-2.C: Likewise.

From-SVN: r211479
2014-06-11 17:28:14 +00:00
Maciej W. Rozycki 37251385bf mmix-protos.h (mmix_asm_output_source_line): Remove prototype.
* config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
	prototype.

From-SVN: r211478
2014-06-11 17:20:48 +00:00
Richard Sandiford 8677664e02 common.md: New file.
gcc/
	* common.md: New file.
	* doc/md.texi: Update description of generic, machine-independent
	constraints.
	* config/s390/constraints.md (e): Delete.
	* Makefile.in (md_file): Include common.md.
	* config/m32c/t-m32c (md_file): Likewise.
	* genpreds.c (general_mem): New array.
	(generic_constraint_letters): Remove constraints now defined by
	common.md.
	(add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
	Allow the first character to be '<' or '>' as well.
	* genoutput.c (general_mem): New array.
	(indep_constraints): Remove constraints now defined by common.md.
	(note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
	Remove special handling of 'm'.
	* ira-costs.c (record_reg_classes): Remove special handling of
	constraints now defined by common.md.
	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
	* ira-lives.c (single_reg_class): Likewise.
	(ira_implicitly_set_insn_hard_regs): Likewise.
	* lra-constraints.c (reg_class_from_constraints): Likewise.
	(process_alt_operands, process_address, curr_insn_transform): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* reload.c (push_secondary_reload, scratch_reload_class)
	(find_reloads, alternative_allows_const_pool_ref): Likewise.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* targhooks.c (default_secondary_reload): Likewise.
	* stmt.c (parse_output_constraint): Likewise.
	* recog.c (preprocess_constraints): Likewise.
	(constrain_operands, peep2_find_free_register): Likewise.
	(asm_operand_ok): Likewise, but add a comment saying why 'o'
	must be handled specially.

From-SVN: r211475
2014-06-11 16:59:17 +00:00
Richard Sandiford 7fd308cffa system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
gcc/
	* system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
	* genpreds.c (have_const_dbl_constraints): Delete.
	(add_constraint): Don't set it.
	(write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
	* ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
	constraints using the lookup_constraint logic.
	* ira-lives.c (single_reg_class): Likewise.
	* ira.c (ira_setup_alts): Likewise.
	* lra-constraints.c (process_alt_operands): Likewise.
	* recog.c (asm_operand_ok, constrain_operands): Likewise.
	* reload.c (find_reloads): Likewise.

From-SVN: r211474
2014-06-11 16:59:01 +00:00
Richard Sandiford d9c35eee65 genpreds.c (const_int_start, [...]): New variables.
gcc/
	* genpreds.c (const_int_start, const_int_end): New variables.
	(choose_enum_order): Output CONST_INT constraints before memory
	constraints.
	(write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
	Add CT_CONST_INT.
	* ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
	* ira.c (ira_setup_alts): Likewise.
	* lra-constraints.c (process_alt_operands): Likewise.
	* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
	* reload.c (find_reloads): Likewise.

From-SVN: r211473
2014-06-11 16:58:51 +00:00
Richard Sandiford 3c4c42e826 recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok, decmem_ok and incmem_ok.
gcc/
	* recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
	decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
	* recog.c (preprocess_constraints): Update accordingly.

From-SVN: r211472
2014-06-11 16:58:43 +00:00
Richard Sandiford 777e635f1a system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
gcc/
	* system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
	(REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
	(EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
	* genpreds.c (print_type_tree): New function.
	(write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
	REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
	EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
	Write out enum constraint_type and get_constraint_type.
	* lra-constraints.c (satisfies_memory_constraint_p): Take a
	constraint_num rather than a constraint string.
	(satisfies_address_constraint_p): Likewise.
	(reg_class_from_constraints): Avoid old constraint macros.
	(process_alt_operands, process_address_1): Likewise.
	(curr_insn_transform): Likewise.
	* ira-costs.c (record_reg_classes): Likewise.
	(record_operand_costs): Likewise.
	* ira-lives.c (single_reg_class): Likewise.
	(ira_implicitly_set_insn_hard_regs): Likewise.
	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
	(constrain_operands, peep2_find_free_register): Likewise.
	* reload.c (push_secondary_reload, scratch_reload_class): Likewise.
	(find_reloads, alternative_allows_const_pool_ref): Likewise.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
	* targhooks.c (default_secondary_reload): Likewise.
	* config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
	to EXTRA_CONSTRAINT_STR.
	* config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.

From-SVN: r211471
2014-06-11 16:58:35 +00:00
Richard Sandiford 9e6b787414 genpreds.c (write_constraint_satisfied_p_1): Replace with...
gcc/
	* genpreds.c (write_constraint_satisfied_p_1): Replace with...
	(write_constraint_satisfied_p_array): ...this new function.
	(write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
	an array.
	(write_insn_preds_c): Update accordingly.

From-SVN: r211470
2014-06-11 16:58:25 +00:00
Richard Sandiford 16a26e426b genpreds.c (write_lookup_constraint): Rename to...
gcc/
	* genpreds.c (write_lookup_constraint): Rename to...
	(write_lookup_constraint_1): ...this.
	(write_lookup_constraint_array): New function.
	(write_tm_preds_h): Define lookup_constraint as an inline function
	that uses write_lookup_constraint_array where possible.
	(write_insn_preds_c): Update for the changes above.

From-SVN: r211469
2014-06-11 16:58:17 +00:00
Richard Sandiford 2aeedf58e0 md.texi (regclass_for_constraint): Rename to...
gcc/
	* doc/md.texi (regclass_for_constraint): Rename to...
	(reg_class_for_constraint): ...this.
	* genpreds.c (num_constraints, enum_order, register_start)
	(register_end, satisfied_start, memory_start, memory_end)
	(address_start, address_end): New variables.
	(add_constraint): Count the number of constraints.
	(choose_enum_order): New function.
	(write_enum_constraint_num): Iterate over enum_order.
	(write_regclass_for_constraint): Rename to...
	(write_reg_class_for_constraint_1): ...this and update output
	accordingly.
	(write_constraint_satisfied_p): Rename to...
	(write_constraint_satisfied_p_1): ...this and update output
	accordingly.  Do nothing if all extra constraints are register
	constraints.
	(write_insn_extra_memory_constraint): Delete.
	(write_insn_extra_address_constraint): Delete.
	(write_range_function): New function.
	(write_tm_preds_h): Define constraint_satisfied_p and
	reg_class_for_constraint as inline functions that do a range check
	before calling the out-of-line function.  Use write_range_function
	to implement insn_extra_{register,memory,address}_constraint,
	the first of which is new.
	(write_insn_preds_c): Update after above changes to write_* functions.
	(main): Call choose_enum_order.

From-SVN: r211468
2014-06-11 16:58:09 +00:00
Paolo Carlini d0ba67dc04 re PR c++/19200 (Friend declaration misinterpreted as constructor)
/cp
2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/19200
	* parser.c (cp_parser_declarator): Add bool parameter.
	(cp_parser_direct_declarator): Likewise, use it.
	(cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
	(cp_parser_condition, cp_parser_explicit_instantiation,
	cp_parser_init_declarator, cp_parser_type_id_1,
	cp_parser_parameter_declaration, cp_parser_exception_declaration,
	cp_parser_cache_defarg, cp_parser_objc_class_ivars,
	cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
	Adjust.
	* decl.c (grokdeclarator): Fix handling of friend declared in
	namespace scope (g++.dg/parse/friend10.C).

/testsuite
2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/19200
	* g++.dg/parse/friend9.C: New.
	* g++.dg/parse/friend10.C: Likewise.
	* g++.dg/parse/friend7.C: Adjust.

From-SVN: r211467
2014-06-11 15:16:45 +00:00
Arnaud Charlet f8c59c0509 [multiple changes]
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb: Minor reformatting.

2014-06-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Check_Clause_Syntax): Add new
	local variable Outputs. Account for the case where multiple
	output items appear as an aggregate.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning
	with ?j? not ??.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads: Minor reformatting.

2014-06-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add
	new variable First_Node. Update the position after all insertions have
	taken place to First_Node.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Remove debug flag -gnatd.1, no longer needed.
	* layout.adb (Layout_Type): Remove test of -gnatd.1.

From-SVN: r211465
2014-06-11 14:55:03 +02:00
Arnaud Charlet 3e65bfab4a [multiple changes]
2014-06-11  Thomas Quinot  <quinot@adacore.com>

	* freeze.ads: Minor reformatting.
	* checks.adb (Determine_Range): Do not attempt to determine
	the range of a deferred constant whose full view has not been
	seen yet.
	* sem_res.adb (Resolve): Remove undesirable guard against
	resolving expressions from expression functions.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* debug.adb (Debug_Flag_Dot_1): Set to enable fix for anonymous
	access types.
	* layout.adb (Layout_Type): Make anonymous access types for
	subprogram formal types and return types always thin. For now
	only enabled if -gnatd.1 set.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality
	rule for stream attributes of interface types (RM 13.13.2 (38/3)):
	subprogram must be a null procedure.

From-SVN: r211464
2014-06-11 14:50:22 +02:00
Arnaud Charlet 0d305ef004 Minor reformatting.
From-SVN: r211463
2014-06-11 14:48:08 +02:00
Arnaud Charlet a54e3bf051 Code clean up.
From-SVN: r211462
2014-06-11 14:47:45 +02:00
Arnaud Charlet 43bebb1069 Code clean ups.
From-SVN: r211461
2014-06-11 14:47:10 +02:00
Arnaud Charlet 40f4dbbe62 [multiple changes]
2014-06-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Input_Item): Allow formal
	parameters to appear as input_items in an initialization_list
	of pragma Initializes. Encapsulation now applies to states and
	variables only (as it should). Add RM references to key errors.
	* sem_prag.adb (Set_Imported): Suppress errors
	about preceding Imports when the pragma does not come from source,
	which can happen through use of pragma Provide_Shift_Operators.

2014-06-11  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting.
	* einfo.ads (Full_View): Minor comment update.

From-SVN: r211460
2014-06-11 14:42:28 +02:00
Arnaud Charlet e9daba5169 [multiple changes]
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi, switch-c.adb, sem_prag.adb, a-tgdico.ads, par-prag.adb,
	opt.ads, a-finali.ads, snames.ads-tmpl: Remove all traces of
	pragma/aspects Pure_05 Pure_12 Preelaborate_05.
	* errout.adb (Output_Messages): Avoid duplicate output for
	library level instance.
	* sem_elab.adb (Is_Call_Of_Generic_Formal): Moved to outer level
	(Check_Elab_Call): Add call to Is_Call_Of_Generic_Formal
	* exp_ch4.adb (Expand_N_Op_Expon): New interface for Exp_Modular.
	* s-expmod.ads, s-expmod.adb (Exp_Modular): Change interface to
	accomodate largest modulus value.
	* gnat_ugn.texi: Minor updates.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Instantiate_Package_Body): Do not attempt to
	load body of generic package or its parent, if body is optional
	and the unit does not require a body.

From-SVN: r211459
2014-06-11 14:37:07 +02:00
Robert Dewar f852ffee9a gnat_rm.texi: Document System.Unsigned_Types.
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document System.Unsigned_Types.
	* impunit.adb: System.Unsigned_Types (s-unstyp.ads) is user accessible.
	* s-unstyp.ads: Update comments (this is now user available unit).

From-SVN: r211458
2014-06-11 14:34:08 +02:00
Arnaud Charlet 9926efec78 [multiple changes]
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* make.adb, sem_res.adb: Minor reformatting.

2014-06-11  Thomas Quinot  <quinot@adacore.com>

	* a-astaco.ads, a-tags.ads, s-excdeb.ads, a-tgdico.ads, a-stmaco.ads,
	a-except-2005.ads, s-except.ads, a-taside.ads, a-dynpri.ads,
	a-chahan.ads, a-sytaco.ads, s-stalib.ads, a-strmap.ads: Change pragmas
	Preelaborate_05 to just Preelaborate in runtime units, and similarly
	change Pure_05 to just Pure.

From-SVN: r211457
2014-06-11 14:31:56 +02:00
Arnaud Charlet dda3871423 [multiple changes]
2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not attempt
	analysis if error has been posted on subprogram body.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality
	rule given in RM 13.1 (8/1) for operational attributes to stream
	attributes: the attribute must apply to a first subtype. Fixes
	missing errors in ACATS test bdd2004.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb (Build_Record_Init_Proc): Don't build for variant
	record type if restriction No_Implicit_Conditionals is active.
	(Expand_N_Object_Declaration): Don't allow default initialization
	for variant record type if restriction No_Implicit_Condition is active.
	(Build_Variant_Record_Equality): Don't build for variant
	record type if restriction No_Implicit_Conditionals is active.
	* exp_ch4.adb (Expand_N_Op_Eq): Error if variant records with
	No_Implicit_Conditionals.
	* sem_aux.ads, sem_aux.adb (Has_Variant_Part): New function.

2014-06-11  Ramon Fernandez  <fernandez@adacore.com>

	* i-cstrin.ads: Update comments.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Selected_Component): Handle properly a
	selected component whose prefix is overloaded, when none of the
	interpretations matches the expected type.

2014-06-11  Bob Duff  <duff@adacore.com>

	* make.adb (Wait_For_Available_Slot): Give a more
	informative error message; if the ALI file is not found, print
	the full path of what it's looking for.

From-SVN: r211456
2014-06-11 14:29:22 +02:00
Arnaud Charlet 810241a5bf 2014-06-11 Sergey Rybin <rybin@adacore.com frybin>
* gnat_ugn.texi, vms_data.ads: add description of gnatstub -W<par>
	option to specify the result file encoding.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* errout.ads, sem_ch12.adb: Minor reformatting.
	* debug.adb, erroutc.adb: Remove -gnatd.q debug switch.
	* lib-xref.adb: Minor reformatting.
	* restrict.adb: Minor code reorganization (put routines in
	alpha order).

From-SVN: r211455
2014-06-11 14:25:22 +02:00
Arnaud Charlet 2c8d828a5f [multiple changes]
2014-06-11  Yannick Moy  <moy@adacore.com>

	* einfo.ads: Minor typo in comment

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads, sinfo.adb: New attribute Uninitialized_Variable, for
	formal private types and private type extensions, to indicate
	variable in a generic unit whose uninitialized use suggest that
	actual type should be fully initialized.
	Needs_Initialized_Actual:  removed, functionaity replaced by
	the above.
	* lib-xref.adb (Generate_Reference): Generate a reference for
	variables of a formal type when the unit is not the main unit,
	to enable appropriate warnings in an instance.
	* sem_ch12.adb (Check_Ininialized_Type): Improve warning on use
	of variable in a generic unit that suggests that actual type
	should be full initialized.
	* sem_warn.adb; (May_Need_Initialized_Actual): Make into procedure
	and do not emot warning, which now only appears in an instance.

2014-06-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Fix minor typo.

2014-06-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb Add with and use clause for Sem_Ch10.
	(Analyze_Declarations): Code reformatting. Analyze the contract
	of a subprogram body stub at the end of the declarative region.
	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Spec_Id is
	now a variable. Do not process the body if its contract is not
	available. Account for subprogram body stubs when extracting
	the corresponding spec.
	* sem_ch6.ads (Analyze_Subprogram_Contract): Update the comment
	on usage.
	* sem_ch10.ads, sem_ch10.adb (Analyze_Subprogram_Body_Stub_Contract):
	New routine.
	* sem_prag.adb (Analyze_Depends_In_Decl_Part):
	Account for subprogram body stubs when extracting the
	corresponding spec.
	(Analyze_Global_In_Decl_List):
	Account for subprogram body stubs when extracting the
	corresponding spec.
	(Analyze_Refined_Depends_In_Decl_Part):
	Use Find_Related_Subprogram_Or_Body to retrieve the declaration
	of the related body. Spec_Is now a variable. Account for
	subprogram body stubs when extracting the corresponding spec.
	(Analyze_Refined_Global_In_Decl_Part): Use
	Find_Related_Subprogram_Or_Body to retrieve the declaration
	of the related body. Spec_Is now a variable. Account for
	subprogram body stubs when extracting the corresponding spec.
	(Collect_Subprogram_Inputs_Output): Account for subprogram body
	stubs when extracting the corresponding spec.

2014-06-11  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Process_Link): Do not invoke gnatlink with
	-lgnarl or -lgnat.

From-SVN: r211454
2014-06-11 14:22:57 +02:00
Richard Biener 4622301b0d asan_linux.cc: Cherry pick upstream r210012.
2014-06-11  Richard Biener  <rguenther@suse.de>

	* asan/asan_linux.cc: Cherry pick upstream r210012.

From-SVN: r211453
2014-06-11 11:35:48 +00:00
Richard Biener c1604254c5 re PR tree-optimization/61452 (hang at -O1 and -Os on x86_64-linux-gnu)
2014-06-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61452
	* tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
	expr and has_constants in case we found a leader.
	(simplify_binary_expression): Always valueize operands first.
	(simplify_unary_expression): Likewise.

	* gcc.dg/torture/pr61452.c: New testcase.

From-SVN: r211450
2014-06-11 11:17:21 +00:00
Andrew Burgess ac8345a525 Delete temporary string within demangler even in failure cases.
A call to demangle_template might allocate storage within a temporary
string even if the call to demangle_template eventually returns
failure.

This will never cause the demangler to crash, but does leak memory, as
a result I've not added any tests for this.

Calling string_delete is safe, even if nothing is allocated into the
string, the string is initialised with string_init, so we know the
internal pointers are NULL.

libiberty/ChangeLog

	* cplus-dem.c (do_type): Call string_delete even if the call to
	demangle_template fails.

From-SVN: r211449
2014-06-11 10:57:27 +00:00
Arnaud Charlet b785e0b875 [multiple changes]
2014-06-11  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Add debug flag -gnatd.q.
	* erroutc.adb (Prescan_Message): Bomb if untagged warning with
	-gnatd.q set.
	* styleg.adb (Check_Xtra_Parens): Message should be a style
	message.
	* sem_aggr.adb, sem_ch3.adb, exp_ch9.adb, checks.adb, sem_prag.adb,
	par-endh.adb, eval_fat.adb, freeze.adb, sem_util.adb, sem_attr.adb,
	sem_elab.adb, sem_ch6.adb, sem_warn.adb, sem_cat.adb,
	sem_ch13.adb, lib-xref.adb: Add remaining warning tags.

2014-06-11  Ben Brosgol  <brosgol@adacore.com>

	* gnat_rm.texi: Revised chapter on Implementation Defined
	Characteristics.

From-SVN: r211448
2014-06-11 12:55:15 +02:00
Arnaud Charlet 2e57f88b77 [multiple changes]
2014-06-11  Geert Bosch  <bosch@adacore.com>

	* s-exctab.adb: avoid race conditions in exception registration.

2014-06-11  Robert Dewar  <dewar@adacore.com>

	* errout.adb (Warn_Insertion): New function.
	(Error_Msg): Use Warn_Insertion and Prescan_Message.
	(Error_Msg_Internal): Set Info field of error object.
	(Error_Msg_NEL): Use Prescan_Message.
	(Set_Msg_Text): Don't store info: at start of message.
	(Skip_Msg_Insertion_Warning): New name for Set_Msg_Insertion_Warning.
	(Skip_Msg_Insertion_Warning): Now just skips warning insertion.
	* errout.ads: Document new ?$? and >$> insertion sequences
	Document use of "(style)" and "info: "
	* erroutc.adb (dmsg): Print several missing fields
	(Get_Warning_Tag): Handle -gnatel case (?$?)  (Output_Msg_Text):
	Deal with new tagging of info messages
	* erroutc.ads: Is_Info_Msg: New global (Error_Msg_Object):
	Add field Info (Prescan_Message): New procedure, this procedure
	replaces the old Test_Style_Warning_Serious_Unconditional_Msg
	* errutil.adb, exp_util.adb, par-ch7.adb, sem_ch13.adb, sem_ch7.adb,
	sem_elab.adb: Follow new rules for info message (info belongs
	only at the start of a message, and only in the first message,
	not in any of the continuations).
	* gnat_ugn.texi: Document full set of warning tags.

From-SVN: r211447
2014-06-11 12:52:35 +02:00
Arnaud Charlet c230ed0b7e [multiple changes]
2014-06-11  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb: Minor typo fix.

2014-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Check_References): Do not emit spurious warnings
	on uninitialzed variable of a formal private type if variable
	is not read.

From-SVN: r211446
2014-06-11 12:49:33 +02:00
Paolo Carlini 83f14a64ef re PR c++/34049 (Parentheses-enclosed expression.)
2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/34049
	* g++.dg/parse/pr34049.C: New.

From-SVN: r211445
2014-06-11 10:24:55 +00:00
Thomas Preud'homme 698ff10718 re PR tree-optimization/61306 (wrong code at -Os and above on x86_64-linux-gnu)
2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/61306
    * tree-ssa-math-opts.c (struct symbolic_number): Store type of
    expression instead of its size.
    (do_shift_rotate): Adapt to change in struct symbolic_number. Return
    false to prevent optimization when the result is unpredictable due to
    arithmetic right shift of signed type with highest byte is set.
    (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
    (init_symbolic_number): Likewise.
    (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
    when the result is unpredictable due to sign extension.

    gcc/testsuite/
    * gcc.c-torture/execute/pr61306-1.c: New test.
    * gcc.c-torture/execute/pr61306-2.c: Likewise.
    * gcc.c-torture/execute/pr61306-3.c: Likewise.

From-SVN: r211444
2014-06-11 10:04:33 +00:00
Terry Guo 1d02d8b8cb arm.md (*thumb1_adddi3): Move into new file thumb1.md.
2014-06-11  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
	(*thumb1_addsi3): Ditto.
	(*thumb_subdi3): Ditto.
	(thumb1_subsi3_insn): Ditto.
	(*thumb_mulsi3): Ditto.
	(*thumb_mulsi3_v6): Ditto.
	(*thumb1_andsi3_insn): Ditto.
	(thumb1_bicsi3): Ditto.
	(*thumb1_iorsi3_insn): Ditto.
	(*thumb1_xorsi3_insn): Ditto.
	(*thumb1_ashlsi3): Ditto.
	(*thumb1_ashrsi3): Ditto.
	(*thumb1_lshrsi3): Ditto.
	(*thumb1_rotrsi3): Ditto.
	(*thumb1_negdi2): Ditto.
	(*thumb1_negsi2): Ditto.
	(*thumb1_abssi2): Ditto.
	(*thumb1_neg_abssi2): Ditto.
	(*thumb1_one_cmplsi2): Ditto.
	(*thumb1_zero_extendhisi2): Ditto.
	(*thumb1_zero_extendqisi2): Ditto.
	(*thumb1_zero_extendqisi2_v6): Ditto.
	(thumb1_extendhisi2): Ditto.
	(thumb1_extendqisi2): Ditto.
	(*thumb1_movdi_insn): Ditto.
	(*thumb1_movsi_insn): Ditto.
	(*thumb1_movhi_insn): Ditto.
	(thumb_movhi_clobber): Ditto.
	(*thumb1_movqi_insn): Ditto.
	(*thumb1_movhf): Ditto.
	(*thumb1_movsf_insn): Ditto.
	(*thumb_movdf_insn): Ditto.
	(movmem12b): Ditto.
	(movmem8b): Ditto.
	(cbranchqi4): Ditto.
	(cbranchsi4_insn): Ditto.
	(cbranchsi4_scratch): Ditto.
	(*negated_cbranchsi4): Ditto.
	(*tbit_cbranch): Ditto.
	(*tlobits_cbranch): Ditto.
	(*tstsi3_cbranch): Ditto.
	(*cbranchne_decr1): Ditto.
	(*addsi3_cbranch): Ditto.
	(*addsi3_cbranch_scratch): Ditto.
	(*thumb_cmpdi_zero): Ditto.
	(cstoresi_eq0_thumb1): Ditto.
	(cstoresi_ne0_thumb1): Ditto.
	(*cstoresi_eq0_thumb1_insn): Ditto.
	(*cstoresi_ne0_thumb1_insn): Ditto.
	(cstoresi_nltu_thumb1): Ditto.
	(cstoresi_ltu_thumb1): Ditto.
	(thumb1_addsi3_addgeu): Ditto.
	(*thumb_jump): Ditto.
	(*call_reg_thumb1_v5): Ditto.
	(*call_reg_thumb1): Ditto.
	(*call_value_reg_thumb1_v5): Ditto.
	(*call_value_reg_thumb1): Ditto.
	(*call_insn): Ditto.
	(*call_value_insn): Ditto.
	(thumb1_casesi_internal_pic): Ditto.
	(thumb1_casesi_dispatch): Ditto.
	(*thumb1_indirect_jump): Ditto.
	(prologue_thumb1_interwork): Ditto.
	(*epilogue_insns): Ditto.
	(consttable_1): Ditto.
	(consttable_2): Ditto.
	(tablejump): Ditto.
	(*thumb1_tablejump): Ditto.
	(thumb_eh_return): Ditto.
	(define_peephole2): Two of them are thumb1 only and got moved into
	new file thumb1.md.
	(define_split): Six of them are thumb1 only and got moved into new
	file thumb1.md.
	* config/arm/thumb1.md: New file comprised of above thumb1 only
	patterns.

From-SVN: r211443
2014-06-11 09:47:35 +00:00
Kyrylo Tkachov 338329a085 [AArch64] Add CRC32 ACLE intrinsics testsuite.
* gcc.target/aarch64/acle/acle.exp: New.
	* gcc.target/aarch64/acle/crc32b.c: New test.
	* gcc.target/aarch64/acle/crc32cb.c: Likewise.
	* gcc.target/aarch64/acle/crc32cd.c: Likewise.
	* gcc.target/aarch64/acle/crc32ch.c: Likewise.
	* gcc.target/aarch64/acle/crc32cw.c: Likewise.
	* gcc.target/aarch64/acle/crc32d.c: Likewise.
	* gcc.target/aarch64/acle/crc32h.c: Likewise.
	* gcc.target/aarch64/acle/crc32w.c: Likewise.
--This line,gand those below, will be ignored--

A    gcc/testsuite/gcc.target/aarch64/acle
A    gcc/testsuite/gcc.target/aarch64/acle/acle.exp
A    gcc/testsuite/gcc.target/aarch64/acle/crc32b.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32d.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32cb.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32cd.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32w.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32h.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32cw.c
A    gcc/testsuite/gcc.target/aarch64/acle/crc32ch.c
M    gcc/testsuite/ChangeLog

From-SVN: r211441
2014-06-11 09:19:14 +00:00
Kyrylo Tkachov 5d357f260c [AArch64] Implement CRC32 ACLE intrinsics.
* config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
	* Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
	dependencies.
	* config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
	(aarch64_crc_builtin_datum): New struct.
	(aarch64_crc_builtin_data): New.
	(aarch64_init_crc32_builtins): New function.
	(aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
	(aarch64_crc32_expand_builtin): New.
	(aarch64_expand_builtin): Add CRC32 builtin expansion case.
	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_FEATURE_CRC32 when appropriate.
	(TARGET_CRC32): Define.
	* config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
	UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
	UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
	(aarch64_<crc_variant>): New pattern.
	* config/aarch64/arm_acle.h: New file.
	* config/aarch64/iterators.md (CRC): New int iterator.
	(crc_variant, crc_mode): New int attributes.
	* doc/aarch64-acle-intrinsics.texi: New file.
	* doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
	Include aarch64-acle-intrinsics.texi.

From-SVN: r211440
2014-06-11 09:17:18 +00:00
Evgeny Stupachenko e1377713ce re PR tree-optimization/52252 (An opportunity for x86 gcc vectorizer (gain up to 3 times))
gcc/
	* tree-vect-data-refs.c (vect_grouped_store_supported): New
	check for stores group of length 3.
	(vect_permute_store_chain): New permutations for stores group of
	length 3.
	* tree-vect-stmts.c (vect_model_store_cost): Change cost
	of vec_perm_shuffle for the new permutations.

gcc/testsuite/
	PR tree-optimization/52252
	* gcc.dg/vect/pr52252-st.c: Test on stores group of size 3.

From-SVN: r211439
2014-06-11 08:37:53 +00:00
Jan Hubicka 862b3da6a4 ipa-visibility.c (function_and_variable_visibility): Disable virtual table rewriting temporarily on targets not supporting ONE_ONLY.
* ipa-visibility.c (function_and_variable_visibility): Disable
	virtual table rewriting temporarily on targets not supporting
	ONE_ONLY.

From-SVN: r211437
2014-06-11 08:15:34 +00:00
Richard Biener 96a3f4dfb6 re PR tree-optimization/61437 (wrong code on x86_64-linux-gnu when compile separately)
2014-06-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/61437
	Revert
	2014-06-04  Richard Biener  <rguenther@suse.de>

	* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
	TREE_PUBLIC and DECL_EXTERNAL decls.

	* gcc.dg/torture/20140610-1.c: New testcase.
	* gcc.dg/torture/20140610-2.c: Likewise.

From-SVN: r211436
2014-06-11 07:35:36 +00:00
Jan Hubicka e257a17cb9 varasm.c (set_implicit_section): New function.
* varasm.c (set_implicit_section): New function.
	(resolve_unique_section): Use it to set implicit section
	for aliases, too.
	(get_named_text_section): Use symtab_get_node (decl)->implicit_section
	(default_function_section): Likewise.
	(decl_binds_to_current_def_p): Constify argument.
	* varasm.h (decl_binds_to_current_def_p): Update prototype.
	* asan.c (asan_protect_global): Use symtab_get_node (decl)->implicit_section.
	* symtab.c (dump_symtab_base): Dump implicit sections.
	(verify_symtab_base): Verify sanity of sectoins and comdats.
	(symtab_resolve_alias): Alias share the section of its target.
	(set_section_1): New function.
	(symtab_node::set_section): Move here, recurse to aliases.
	(verify_symtab): Check for duplicated symtab lists.
	* tree-core.h (implicit_section_name_p): Remove.
	* tree-vect-data-refs.c: Include varasm.h.
	(vect_can_force_dr_alignment_p): Fix conditional on when
	decl bints to current definition; use
	symtab_get_node (decl)->implicit_section.
	* cgraph.c (cgraph_make_node_local_1): Fix section set.
	* cgraph.h (struct symtab_node): Add implicit_section.
	(set_section): Rename to ...
	(set_section_for_node): ... this one.
	(set_section): Declare.
	* tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
	* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
	input_overwrite_node, input_varpool_node): Stream implicit_section.
	* ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
	removal; it will fail in LTO.
	
	* vtable-class-hierarchy.c: Use symtab_get_node (var_decl)->implicit_section.
	* optimize.c (cdtor_comdat_group): Fix handling of aliases.
	(maybe_clone_body): Move symbol across comdat groups.
	* method.c (use_thunk): Copy implicit section flag.

	* go/go-gcc.cc (Gcc_backend::global_variable_set_init): Use
	symtab_get_node(var_decl)->implicit_section.

	* lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
	(do_whole_program_analysis): Use verify_symtab.

From-SVN: r211434
2014-06-11 05:51:23 +00:00
Maciej W. Rozycki 58170a6621 4402.cc (test02): Use `wcout' rather than `cout'.
* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
	(test02) [TEST_NUMPUT_VERBOSE]: Use `wcout' rather than `cout'.

From-SVN: r211433
2014-06-11 00:20:45 +00:00
GCC Administrator c0921b24f7 Daily bump.
From-SVN: r211432
2014-06-11 00:17:08 +00:00
Uros Bizjak 0b6df8243c bid128_div.c (BID128_FUNCTION_ARG2): Remove unused variable 'Ql'.
* bid128_div.c (BID128_FUNCTION_ARG2): Remove unused variable 'Ql'.
	Call __mul_128x128_high instead of __mul_128x128_full.
	(TYPE0_FUNCTION_ARGTYPE1_ARGTYPE2): Ditto.
	(BID128_FUNCTION_ARGTYPE1_ARG128): Ditto.
	(BID128_FUNCTION_ARG128_ARGTYPE2): Ditto.
	* bid64_div.c (TYPE0_FUNCTION_ARGTYPE1_ARG128): Ditto.
	(TYPE0_FUNCTION_ARG128_ARGTYPE2): Ditto.
	(TYPE0_FUNCTION_ARG128_ARG128): Ditto.

From-SVN: r211424
2014-06-10 20:27:02 +02:00
Jonathan Wakely 060269c481 re PR libstdc++/61390 (error in nested template parameter in ext/pb_ds header file)
PR libstdc++/61390
	* include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
	(bin_search_tree_traits): Do not redeclare template-parameters.
	* testsuite/util/testsuite_iterators.h (test_container): Likewise.

From-SVN: r211421
2014-06-10 19:09:18 +01:00
Kyrylo Tkachov d7256bb835 [AArch64] Fix some reg-to-reg move scheduler types.
* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
	Change second alternative type to f_mcr.
	* config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
	and 12th alternatives' types to f_mcr and f_mrc.
	(*movdi_aarch64): Same for 12th and 13th alternatives.
	(*movsf_aarch64): Change 9th alternatives' type to mov_reg.
	(aarch64_movtilow_tilow): Change type to fmov.

From-SVN: r211418
2014-06-10 16:05:17 +00:00
Matthew Fortune a4a1b5f3df Add myself to MAINTAINERS.
2014-06-10  Matthew Fortune  <matthew.fortune@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r211417
2014-06-10 15:44:06 +00:00
Jiong Wang dadf084c7d [AArch64] Fix layout of frame layout code.
From-SVN: r211416
2014-06-10 14:38:15 +00:00
Kyrylo Tkachov 2a74759f9e [AArch64] Add a big-endian lane flip at expand-time in saturating math patterns.
* config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
	New expander.
	(aarch64_sqrdmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>): Rename to...
	(aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
	(aarch64_sqdmulh_laneq<mode>): New expander.
	(aarch64_sqrdmulh_laneq<mode>): Likewise.
	(aarch64_sq<r>dmulh_laneq<mode>): Rename to...
	(aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
	(aarch64_sqdmulh_lane<mode>): New expander.
	(aarch64_sqrdmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>): Rename to...
	(aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
	(aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
	(aarch64_sqdmlal_laneq<mode>): Likewise.
	(aarch64_sqdmlsl_lane<mode>): Likewise.
	(aarch64_sqdmlsl_laneq<mode>): Likewise.
	(aarch64_sqdmlal2_lane<mode>): Likewise.
	(aarch64_sqdmlal2_laneq<mode>): Likewise.
	(aarch64_sqdmlsl2_lane<mode>): Likewise.
	(aarch64_sqdmlsl2_laneq<mode>): Likewise.
	(aarch64_sqdmull_lane<mode>): Likewise.
	(aarch64_sqdmull_laneq<mode>): Likewise.
	(aarch64_sqdmull2_lane<mode>): Likewise.
	(aarch64_sqdmull2_laneq<mode>): Likewise.

From-SVN: r211414
2014-06-10 14:26:20 +00:00
Richard Biener b82ef848dc re PR tree-optimization/61438 (ICE on valid code at -O3 on x86_64-linux-gnu in in loop_preheader_edge, at cfgloop.c:1668)
2014-06-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61438
	* tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
	(eliminate_dom_walker::before_dom_children): Only try to inhibit
	insertion of IVs if running PRE.
	(eliminate): Adjust.
	(pass_pre::execute): Likewise.
	(pass_fre::execute): Likewise.

	* gcc.dg/torture/pr61438.c: New testcase.

From-SVN: r211413
2014-06-10 14:18:50 +00:00
Richard Biener cdf0ab72f4 re PR middle-end/61456 (Bogus "may be used uninitialized" warning)
2014-06-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/61456
	* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
	Do not use the main variant for the type comparison.
	(ncr_compar): Likewise.
	(nonoverlapping_component_refs_p): Likewise.

	* g++.dg/opt/pr61456.C: New testcase.

From-SVN: r211411
2014-06-10 14:10:57 +00:00
Marcus Shawcroft f1ab971761 Reverting previous commit.
From-SVN: r211410
2014-06-10 14:02:56 +00:00
Jiong Wang c7f65aae9e [AArch64] Fix layout of frame layout code.
From-SVN: r211409
2014-06-10 13:29:12 +00:00