* lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
Re-construct BLOCK_VARS.
(lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
* lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
* tree.c (free_lang_data_in_block): Remove.
(free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
Do not touch the BLOCK tree.
* expr.c (expand_expr_real_1): Allow externals.
lto-streamer-out.c (lto_output_ts_block_tree_pointers): Do not output BLOCK_SUBBLOCKS.
2010-10-08 Richard Guenther <rguenther@suse.de>
* lto-streamer-out.c (lto_output_ts_block_tree_pointers):
Do not output BLOCK_SUBBLOCKS.
* lto-streamer-in.c (lto_input_ts_block_tree_pointers):
Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
Re-construct BLOCK_SUBBLOCKS of parent block.
(lto_input_ts_binfo_tree_pointers): Reserve exact space needed
for BINFO_BASE_ACCESSES.
Joseph Myers [Fri, 8 Oct 2010 15:17:32 +0000 (16:17 +0100)]
Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
* Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
(TREE_H): Include $(FLAGS_H) instead of options.h.
(opts-common.o): Depend on $(FLAGS_H) instead of options.h.
* c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
* common.opt (flag_complex_method, flag_evaluation_order,
flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
Variable declarations.
* configure.ac (tm_include_list): Include flags.h instead of
options.h.
* configure: Regenerate.
* flags.h: Condition out contents for target libraries. Include
options.h at end of file.
(flag_complex_method, flag_ira_algorithm, flag_ira_region,
flag_evaluation_order, flag_warn_unused_result): Remove.
* gcc.c (main): Intialize global_options with global_options_init.
* langhooks-def.h (lhd_init_options_struct): Declare.
(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
(LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
* langhooks.c (lhd_init_options_struct): New.
* langhooks.h (struct lang_hooks): Add init_options_struct.
Update comment on init_options.
* optc-gen.awk: Generate initializer for global_options_init, not
global_options.
* opth-gen.awk: Condition out structure declarations for target
libraries. Declare global_options_init.
* opts-common.c: Include flags.h instead of options.h.
* opts.c (flag_warn_unused_result): Remove.
(read_cmdline_options): Take gcc_options parameters. Pass them to
read_cmdline_option.
(initial_lang_mask, initial_min_crossjump_insns,
initial_max_fields_for_field_sensitive,
initial_loop_invariant_max_bbs_in_loop): Define at file scope.
(init_options_once): New. Split out of decode_options.
(init_options_struct): New. Split out of decode_options.
(decode_cmdline_options_to_array_default_mask): New.
(default_options_optimization): New. Split out of decode_options.
(decode_options): Move most code to other functions. Update call
to read_cmdline_options.
(finish_options): New. Split out of decode_options.
* opts.h (decode_options): Add gcc_options parameters.
(init_options_once, init_options_struct,
decode_cmdline_options_to_array_default_mask): New.
* toplev.c (flag_complex_method, flag_ira_algorithm,
flag_ira_region, flag_evaluation_order): Remove.
(general_init): Use global_options_init for initial flag values
for global_dc.
(toplev_main): Call init_options_once, init_options_struct,
lang_hooks.init_options_struct,
decode_cmdline_options_to_array_default_mask and
lang_hooks.init_option before decode_options. Update arguments to
decode_options.
* tree.h: Include flags.h instead of options.h.
ada:
* gcc-interface/misc.c (gnat_init_options_struct): New. Split out
from gnat_init_options.
(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
c-family:
* c-common.c (parse_optimize_options): Call
decode_cmdline_options_to_array_default_mask before
decode_options. Update arguments to decode_options.
* c-common.h (c_common_init_options_struct): Declare.
* c-opts.c (c_common_init_options_struct): New. Split out from
c_common_init_options.
* config/s390/s390-protos.h (s390_function_arg_advance): Delete.
(s390_function_arg): Delete.
* config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/s390/s390.c (s390_function_arg_float): Take a const_tree.
(s390_function_arg_integer): Likewise.
(s390_function_arg_advance): Make static. Take a const_tree and
a bool.
(s390_function_arg): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
Nathan Froyd [Fri, 8 Oct 2010 13:16:43 +0000 (13:16 +0000)]
spu-protos.h (spu_function_arg): Delete.
* config/spu/spu-protos.h (spu_function_arg): Delete.
* config/spu/spu.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Move code to ...
* config/spu/spu.c (spu_function_arg_advance): New function.
(spu_function_arg): Make static. Take a const_tree and a bool.
(spu_setup_incoming_varargs): Call spu_function_arg_advance.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
Nathan Froyd [Fri, 8 Oct 2010 13:10:47 +0000 (13:10 +0000)]
tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
* tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
(init_vn_nary_op_from_op): New function.
(init_vn_nary_op_from_stmt): New function.
(vn_nary_op_lookup_1): New function.
(sizeof_vn_nary_op): New function.
(alloc_vn_nary_op_noinit): New function.
(alloc_vn_nary_op): New function.
(vn_nary_op_insert_into): New function.
(vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
(vn_nary_op_lookup): Likewise.
(vn_nary_op_lookup_stmt): Likewise.
(vn_nary_op_insert_pieces): Likewise.
(vn_nary_op_insert): Likewise.
(vn_nary_op_insert_stmt): Likewise.
(copy_nary): Likewise.
(set_value_id_for_result): New function.
(set_hashtable_value_ids): Call it.
Arnaud Charlet [Fri, 8 Oct 2010 13:08:03 +0000 (15:08 +0200)]
[multiple changes]
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Check_Duplicate_Pragma): Check for entity match
* gcc-interface/Make-lang.in: Update dependencies.
* einfo.ads: Minor reformatting.
2010-10-08 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, sem_aux.adb,
sem_aux.ads, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
exp_ch3.adb: Change Is_Inherently_Limited_Type to
Is_Immutably_Limited_Type to accord with new RM terminology.
* sem_aux.adb (Is_Immutably_Limited_Type): A type that is a descendant
of a formal limited private type is not immutably limited in a generic
body.
Robert Dewar [Fri, 8 Oct 2010 12:54:03 +0000 (12:54 +0000)]
ali.adb: Set Allocator_In_Body if AB parameter present on M line
2010-10-08 Robert Dewar <dewar@adacore.com>
* ali.adb: Set Allocator_In_Body if AB parameter present on M line
* ali.ads (Allocator_In_Body): New flag
* bcheck.adb (Check_Consistent_Restrictions): Handle case of main
program violating No_Allocators_After_Elaboration restriction.
* gnatbind.adb (No_Restriction_List): Add entries for
No_Anonymous_Allocators, and No_Allocators_After_Elaboration.
* lib-load.adb: Initialize Has_Allocator flag
* lib-writ.adb: Initialize Has_Allocator flag
(M_Parameters): Set AB switch if Has_Allocator flag set
* lib-writ.ads: Document AB flag on M line
* lib.adb (Has_Allocator): New function
(Set_Has_Allocator): New procedure
* lib.ads (Has_Allocator): New function
(Set_Has_Allocator): New procedure
(Has_Allocator): New flag in Unit_Record
* sem_ch4.adb (Analyze_Allocator): Add processing for
No_Allocators_After_Elaboration.
Arnaud Charlet [Fri, 8 Oct 2010 12:49:46 +0000 (14:49 +0200)]
[multiple changes]
2010-10-08 Geert Bosch <bosch@adacore.com>
* a-textio.adb (Get_Line): Rewrite to use fgets instead of fgetc.
2010-10-08 Javier Miranda <miranda@adacore.com>
* sem_prag.adb (Analyze_Pragma): Relax semantic rule of
Java_Constructors because in the JRE library we generate occurrences
in which the "this" parameter is not the first formal.
Robert Dewar [Fri, 8 Oct 2010 12:34:08 +0000 (12:34 +0000)]
sem_aggr.adb: Minor reformatting.
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_aggr.adb: Minor reformatting.
2010-10-08 Robert Dewar <dewar@adacore.com>
* exp_imgv.adb (Expand_Image_Attribute): Handle special calling
sequence for soft hyphen for Character'Image case.
* rtsfind.ads (Image_Character_05): New entry
* s-imgcha.adb (Image_Character_05): New procedurew
* s-imgcha.ads (Image_Character_05): New procedure
* s-imgwch.adb (Image_Wide_Character): Deal with Ada 2005 soft hyphen
case.
* s-valcha.adb (Value_Character): Recognize SOFT_HYPHEN for 16#AD#
* sem_attr.adb (Eval_Attribute, case Width): Handle soft_hyphen name
properly.
Javier Miranda [Fri, 8 Oct 2010 12:27:41 +0000 (14:27 +0200)]
sem_prag.adb (Analyze_Pragma): Add missing checks on wrong use of pragmas CIL_Constructor and Java_Constructor.
2010-10-08 Javier Miranda <miranda@adacore.com>
* sem_prag.adb (Analyze_Pragma): Add missing checks on wrong use of
pragmas CIL_Constructor and Java_Constructor.
* exp_ch3.adb (Expand_Freeze_Record_Type): Do not generate the
predefined primitives for CIL/Java tagged types.
Arnaud Charlet [Fri, 8 Oct 2010 10:51:09 +0000 (12:51 +0200)]
[multiple changes]
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb: Minor reformatting.
2010-10-08 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb: Add call to Validate_Independence.
* par-prag.adb: Add dummy entries for Independent,
Independent_Componentsa.
* sem_ch13.adb (Validate_Independence): New procedure
(Initialize): Initialize address clause and independence check tables
* sem_ch13.ads (Independence_Checks): New table
(Validate_Independence): New procedure
* sem_prag.adb: Add processing for pragma Independent[_Components]
* snames.ads-tmpl: Add entries for pragma Independent[_Components]
2010-10-08 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Propagate_Discriminants): When expanding an aggregate
component with box initialization, if the component is a variant record
use the values of the discriminants to select the proper variant for
further box initialization.
* sem_ch6.adb (Check_Return_Subtype): The subtype indication in an
extended return must match statically the return subtype of the
enclosing function if the type is an elementary type or if it is
constrained.
2010-10-08 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Add_Source): Report all duplicate units and source file
names. Do not report the same duplicate unit several times.
* prj.ads (Source_Data): New Boolean component Duplicate_Unit,
defaulted to False, to avoid reporting the same unit as duplicate
several times.
Arnaud Charlet [Fri, 8 Oct 2010 10:32:07 +0000 (12:32 +0200)]
[multiple changes]
2010-10-08 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): If the expression in an
others choice is a literal analyze it now to enable later optimizations.
* exp_aggr.adb (Expand_Record_Aggregate): An aggregate with static size
and components can be handled by the backend even if it is of a limited
type.
2010-10-08 Arnaud Charlet <charlet@adacore.com>
* a-rttiev.adb (task Timer): Since this package may be elaborated
before System.Interrupt, we need to call Setup_Interrupt_Mask
explicitly to ensure that this task has the proper signal mask.
2010-10-08 Robert Dewar <dewar@adacore.com>
* freeze.adb (Freeze_Entity): For array case, move some processing for
pragma Pack, Component_Size clause and atomic/volatile components here
instead of trying to do the job in Sem_Ch13 and Freeze.
* layout.adb: Use new Addressable function
* sem_ch13.adb (Analyze_Attribute_Representation_Clause, case
Component_Size): Move some handling to freeze point in
Freeze.Freeze_Entity.
* sem_prag.adb (Analyze_pragma, case Pack): Move some handling to
freeze point in Freese.Freeze_Entity.
* sem_util.ads, sem_util.adb (Addressable): New function.
Arnaud Charlet [Fri, 8 Oct 2010 10:22:31 +0000 (12:22 +0200)]
[multiple changes]
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb: Minor reformatting.
2010-10-08 Vincent Celier <celier@adacore.com>
* ali-util.adb (Get_File_Checksum): Make sure that external_as_list is
not a reserved word.
* prj-proc.adb (Expression): Process string list external references.
* prj-strt.adb (External_Reference): Parse external_as_list external
references.
* prj-tree.ads (Expression_Kind_Of): Allowed for N_External_Value nodes
(Set_Expression_Kind_Of): Ditto
* prj.adb (Initialize): Set external_as_list as a reserved word
* projects.texi: Document new string external reference external_as_list
* scans.ads (Token_Type): New token Tok_External_As_List
* snames.ads-tmpl: New standard name Name_External_As_List
Arnaud Charlet [Fri, 8 Oct 2010 10:17:10 +0000 (12:17 +0200)]
[multiple changes]
2010-10-08 Thomas Quinot <quinot@adacore.com>
* sem_prag.adb: Minor reformatting.
2010-10-08 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Derived_Type_Declaration): In the private part of an
instance, it is legal to derive from a non-limited actual when the
formal type is untagged limited.
* sem_ch12.adb (Instantiate_Type): For a formal private type, use
analyzed formal as Generic_Parent_Type, to simplify later checks.
2010-10-08 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Insert_Default): If default value is already a
raise_constraint_error do not rewrite it as new raise node, to prevent
infinite loops in the warning removal machinery.
* gnat_rm.texi: Remove the section on pragma Implemented_By_Entry.
Add section on pragma Implemented.
2010-10-08 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Derive_Subprogram): If an abstract extension has a
concrete parent with a concrete constructor, the inherited constructor
is abstract even if the derived type is a null extension.
* einfo.adb: Flag 232 (formerly Implemented_By_Entry) is now unused.
(Implemented_By_Entry): Removed.
(Set_Implemented_By_Entry): Removed.
(Write_Entity_Flags): Remove the output for Implemented_By_Entry.
* einfo.ads: Remove flag Implemented_By_Entry and its usage in entities.
(Implemented_By_Entry): Removed along with its associated pragma Inline.
(Set_Implemented_By_Entry): Removed along with its associated pragma
Inline.
* exp_ch9.adb: Alphabetize with and use clauses of Exp_Ch9.
(Build_Dispatching_Call_Equivalent): New routine.
(Build_Dispatching_Requeue): New routine.
(Build_Dispatching_Requeue_To_Any): New routine.
(Build_Normal_Requeue): New routine.
(Build_Skip_Statement): New routine.
(Expand_N_Requeue_Statement): Rewritten. The logic has been split into
several subroutines.
* par-prag.adb: Replace Pragma_Implemented_By_Entry by
Pragma_Implemented.
* sem_ch3.adb (Check_Abstract_Overriding): Perform checks concerning
pragma Implemented.
(Check_Pragma_Implemented): New routines.
(Inherit_Pragma_Implemented): New routine.
* sem_ch9.adb (Analyze_Requeue): Update the predicate which detects a
dispatching requeue.
* sem_prag.adb: Update array Sig_Flags by removing Implemented_By_Entry
and adding Implemented.
(Ada_2012_Pragma): New routine.
(Analyze_Pragma, case Implemented): Perform all necessary checks
concerning pragma Implemented and register the pragma as a
representation item with the procedure_LOCAL_NAME.
(Analyze_Pragma, case Implemented_By_Entry): Removed.
* sem_util.adb (Implementation_Kind): New routine.
* sem_util.ads (Implementation_Kind): New routine.
* snames.ads-tmpl: Remove Name_Implemented_By_Entry and add
Name_Implemented. Remove pragma name Pragma_Implemented_By_Entry and
add Pragma_Implemented. Add special names By_Any, By_Entry and
By_Protected_Procedure.
2010-10-08 Javier Miranda <miranda@adacore.com>
* exp_ch3.adb (Expand_Freeeze_Record_Type): Code cleanup: remove local
variable Has_Static_DT by invocation of function Building_Static_DT.
2010-10-08 Vincent Celier <celier@adacore.com>
* g-dirope.adb (Remove_Dir): Do not change the current directory when
doing a recursive remove of a subdirectory.
Arnaud Charlet [Fri, 8 Oct 2010 09:40:32 +0000 (11:40 +0200)]
[multiple changes]
2010-10-08 Thomas Quinot <quinot@adacore.com>
* sem_ch12.adb (Instantiate_Object): Rename Formal_Id to Gen_Obj, for
consistency with Gen_T in Instantiate_Type.
Introduce constant A_Gen_Obj to avoid repeated queries for
Defining_Identifier (Analyzed_Formal).
Alexandre Oliva [Fri, 8 Oct 2010 04:41:14 +0000 (04:41 +0000)]
re PR debug/45656 (gfortran.dg/forall_4.f90 -O3, wrong code with -g)
PR debug/45656
* cse.c (cse_extended_basic_block): Preserve cc0 info across
debug isnsn. Skip them when searching for cc0 setter.
(set_live_p): Skip debug insns when searching for cc0 user.
Alexandre Oliva [Fri, 8 Oct 2010 04:40:59 +0000 (04:40 +0000)]
re PR debug/45673 (-fcompare-debug failure with minor difference in dumps)
PR debug/45673
PR debug/45604
PR debug/45419
PR debug/45408
* tree-pretty-print.c (dump_generic_node): Explicitly dump the
type of MEM_REFs to INTEGER_CSTs.
Jonathan Wakely [Fri, 8 Oct 2010 00:44:12 +0000 (00:44 +0000)]
re PR libstdc++/45893 ([C++0x] [DR 817] Finish updating std::bind to rvalue refs)
2010-10-08 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/45893
* include/std/functional (bind): Implement DR 817 and add support
for volatile-qualified call wrappers.
* include/std/mutex (call_once): Implement DR 891.
* include/std/thread (thread::thread): Implement DR 929.
* include/std/future: Optimise use of std::bind.
* testsuite/20_util/bind/cv_quals.cc: Test volatile-qualification.
* testsuite/20_util/bind/move.cc: New.
Nicola Pero [Thu, 7 Oct 2010 22:34:50 +0000 (22:34 +0000)]
In gcc/testsuite/: 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/testsuite/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
* obj-c++.dg/encode-10.mm: New testcase.
In gcc/cp/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
* cp-tree.def: Changed type of AT_ENCODE_EXPR from tcc_unary to
tcc_expression.
* cxx-pretty-print.c (pp_cxx_unary_expression): Added case for
AT_ENCODE_EXPR.
* error.c (dump_expr): Added case for AT_ENCODE_EXPR.
* pt.c (tsubst_copy): Added case for AT_ENCODE_EXPR.
(value_dependent_expression_p): Added case for AT_ENCODE_EXPR.
(type_dependent_expression_p): Added case for AT_ENCODE_EXPR.
* parser.c (cp_parser_objc_encode_expression): Updated comment.
re PR libstdc++/45841 (r164529 cris-elf libstdc++ 27_io/basic_filebuf/seekoff/char/2-io.cc)
PR libstdc++/45841
* testsuite/lib/libstdc++.exp (check_v3_target_fileio): Rewrite to
use an actual testsuite file and machinery, not ".". Specifically
check that incorrectly seeking backwards from 0 yields an error,
and that reading, seeking backwards and reading again works.
Dave Korn [Thu, 7 Oct 2010 20:28:59 +0000 (20:28 +0000)]
configure.ac (build_lto_plugin): New shell variable.
ChangeLog:
2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
* configure.ac (build_lto_plugin): New shell variable.
(--enable-lto): Turn on by default for all non-ELF platforms that
have had LTO support added so far. Set build_lto_plugin appropriately
for both ELF and non-ELF.
(configdirs): Add lto-plugin or not based on build_lto_plugin.
* configure: Regenerate.
gcc/ChangeLog:
2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
* config.host (host_lto_plugin_soname): New shell variable.
* configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
* config.in: Regenerate.
* configure: Regenerate.
* gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
LTO plugin shared library.
lto-plugin/ChangeLog:
2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
* configure.ac: Source config.gcc to determine lto_binary_reader.
(LTO_FORMAT): New AC_SUBST variable inferred from lto_binary_reader.
* Makefile.am (LTO_FORMAT): Import.
(liblto_plugin_la_SOURCES): Add object format dependent module
defined by LTO_FORMAT.
(liblto_plugin_la_LIBADD): Allow for both PIC and non-PIC libiberty,
and work around libtool warning.
* configure: Regenerate.
* Makefile.in: Likewise.
* lto-plugin.c (struct sym_aux): Move to new lto-plugin.h.
(struct sym_aux): Likewise.
(struct plugin_symtab): Likewise.
(struct plugin_file_info): Likewise.
(LTO_SECTION_PREFIX): Likewise.
(add_symbols): Make non-static.
(claimed_files): Likewise.
(num_claimed_files): Likewise.
(check): Likewise.
(parse_table_entry): Likewise.
(translate): Likewise.
(resolve_conflicts): Likewise.
(process_symtab): Move to new lto-plugin-elf.c object format dependent
source file.
(claim_file_handler): Likewise, and make non-static.
(onload): Call new onload_format_checks function.
* lto-plugin.h: New file.
(LTO_SECTION_PREFIX): Move here.
(struct sym_aux): Likewise.
(struct plugin_symtab): Likewise.
(struct plugin_file_info): Likewise.
(claim_file_handler): Add new function prototype.
(onload_format_checks): Likewise.
(check): Declare extern.
(translate): Likewise.
(parse_table_entry): Likewise.
(resolve_conflicts): Likewise.
(add_symbols): Likewise.
(claimed_files): Likewise.
(num_claimed_files): Likewise.
* lto-plugin-elf.c (process_symtab): Move here.
(claim_file_handler): Likewise, and make non-static.
(onload_format_checks): New function factored out from onload.
* lto-plugin-coff.c (claim_file_handler): New function stub.
(onload_format_checks): Likewise.
Nicola Pero [Thu, 7 Oct 2010 18:37:43 +0000 (18:37 +0000)]
In gcc/: 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (Fast enumeration protocol): Mention that
'unsigned int' can also be used instead of 'unsigned long' in
countByEnumeratingWithState:objects:count:.
In gcc/objc/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/45925
* objc-act.c (objc_finish_foreach_loop): Convert return value of
countByEnumeratingWithState:objects:count: to long unsigned int.
Martin Jambor [Thu, 7 Oct 2010 16:15:46 +0000 (18:15 +0200)]
tree-sra.c (struct access): New field grp_assignment_write.
2010-10-07 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (struct access): New field grp_assignment_write.
(dump_access): Dump grp_assignment_write.
(build_accesses_from_assign): Set grp_assignment_write.
(sort_and_splice_var_accesses): Aggregate grp_assignment_write.
(mark_read_status): Renamed to mark_rw_status, individual values
renamed too.
(analyze_access_subtree): Changed type of mark_write to
mark_read_status. Fixed propagating of mark_read and
mark_write. Changed benefit estimate. Updated comment.
* machmode.h (mode_for_vector): Declare.
* stor-layout.c (mode_for_vector): New function, split out from ...
(layout_type): ... here.
* tree-vectorizer.h (current_vector_size): Declare.
* tree-vect-stmts.c (perm_mask_for_reverse): Check if the
mask vector type is available.
(get_vectype_for_scalar_type): Rename to ...
(get_vectype_for_scalar_type_and_size): ... this. Get a vector
size argument.
(get_vectype_for_scalar_type): New wrapper around
get_vectype_for_scalar_type_and_size using current_vector_size.
(get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
* tree-vect-loop.c (vect_analyze_loop_2): Split out core part
of vect_analyze_loop here.
(vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
* tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
to autodetect.
* config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
V8SF to V8SI conversion builtin.
Iain Sandoe [Thu, 7 Oct 2010 14:05:24 +0000 (14:05 +0000)]
do not emit bogus set-not-used warnings for objc* entities used as message receivers.
gcc/objc:
* objc-act.c (objc_build_message_expr): Call mark_exp_read () to signal that
the receiver has been used.
gcc/testsuite:
* objc.dg/set-not-used-1.m: New
* obj-c++.dg/set-not-used-1.mm: New.
* sem_ch12.ad: (Instantiate_Object): For an in-out formal of a child
unit, if the type of the formal is declared in a parent unit and is not
a formal itself, the actual must be located from an enclosing parent
instance by normal visibility.
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Allocator): In Ada 2012, a null_exclusion
indicator is illegal for an uninitialized allocator.
Arnaud Charlet [Thu, 7 Oct 2010 13:21:42 +0000 (15:21 +0200)]
[multiple changes]
2010-10-07 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
Component_Size): It is now illegal to give an incorrect component size
clause in the case of aliased or atomic components.
* sem_prag.adb (Analyze_Pragma, case Pack): It is now illegal to give
an effective pragma Pack in the case of aliased or atomic components.
2010-10-07 Steve Baird <baird@adacore.com>
* exp_ch4.adb (Expand_N_Allocator): Do not bypass expansion
in the case of a violation of an active No_Task_Hierarchy restriction.
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Validate_Derived_Type_Instance): If a formal derived
type is non-limited, an actual for it cannot be limited.
Arnaud Charlet [Thu, 7 Oct 2010 13:06:22 +0000 (15:06 +0200)]
[multiple changes]
2010-10-07 Robert Dewar <dewar@adacore.com>
* einfo.ads (No_Pool_Assigned): Update documentation.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
Storage_Size): We only set No_Pool_Assigned if the expression is a
static constant and zero.
* sem_res.adb (Resolve_Allocator): Allocation from empty storage pool
should be an error not a warning.
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* exp_aggr.adb (Expand_Array_Aggregate): Recognize additional cases
where an aggregate in an assignment can be built directly into the
target, and does not require the creation of a temporary that may
overflow the stack.
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Analyze_Record_Aggregate): In Ada2012, a choice list
in a record aggregate can correspond to several components of
anonymous access types, as long as the designated subtypes match.
Arnaud Charlet [Thu, 7 Oct 2010 12:45:48 +0000 (14:45 +0200)]
[multiple changes]
2010-10-07 Robert Dewar <dewar@adacore.com>
* par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb, par-ch10.adb: Add
Pexp to Pf_Rec constants
(P_Subprogram): Expression is always enclosed in parentheses
* par.adb (Pf_Rec): add Pexp flag for parametrized expression
* sinfo.ads (N_Parametrized_Expression): Expression must be in parens
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Specification): Implement Ada2012
checks on functions that return an abstract type or have a controlling
result whose designated type is an abstract type.
(Check_Private_Overriding): Implement Ada2012 checks on functions
declared in the private part, if an abstract type is involved.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): In Ada2012,
reject a generic function that returns an abstract type.
* exp_ch5.adb (Expand_Simple_Function_Return): in Ada2012, if a
function has a controlling access result, check that the tag of the
return value matches the designated type of the return expression.
Arnaud Charlet [Thu, 7 Oct 2010 12:37:10 +0000 (14:37 +0200)]
[multiple changes]
2010-10-07 Robert Dewar <dewar@adacore.com>
* par-ch6.adb: Fix error in handling of parametrized expressions.
* par-ch4.adb (P_Name): Allow qualified expression as name in Ada 2012
mode.
(P_Simple_Expression): Better message for qualified expression prefix
* s-crc32.adb: Minor reformatting.
* exp_intr.adb (Expand_Unc_Deallocation): Remove test for empty
storage pool (this test is moved to Sem_Intr).
* sem_intr.adb (Check_Intrinsic_Call): Add check for deallocation from
empty storage pool, moved here from Exp_Intr and made into error.
(Check_Intrinsic_Call): Remove assumption in generating not-null free
warning that the name of the instantiation is Free.
* sinput.adb (Tree_Read): Document use of illegal free call allowed in
GNAT mode.
* types.ads: Remove storage size clauses from big types (since we may
need to do deallocations, which are now illegal for empty pools).
Arnaud Charlet [Thu, 7 Oct 2010 12:24:31 +0000 (14:24 +0200)]
[multiple changes]
2010-10-07 Robert Dewar <dewar@adacore.com>
* scng.adb (Skip_Other_Format_Characters): New procedure
(Start_Of_Wide_Character): New procedure
(Scan): Use Start_Of_Wide_Character where appropriate
(Scan): Improve error message for other_format chars in identifier
(Scan): Allow other_format chars between tokens
2010-10-07 Javier Miranda <miranda@adacore.com>
* exp_util.adb (Safe_Prefixed_Reference): When removing side effects,
Add missing support for explicit dereferences.
2010-10-07 Robert Dewar <dewar@adacore.com>
* par-ch10.adb, par-ch3.adb, par.adb: Minor reformatting.
Vincent Celier [Thu, 7 Oct 2010 09:27:50 +0000 (11:27 +0200)]
gnatcmd.adb (Check_Files): When looking for the .ci file for a binder generated file...
2010-10-07 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Check_Files): When looking for the .ci file for a
binder generated file, look for both b~xxx and b__xxx as gprbuild
always uses b__ as the prefix of such files.
Arnaud Charlet [Thu, 7 Oct 2010 09:26:27 +0000 (11:26 +0200)]
[multiple changes]
2010-10-07 Robert Dewar <dewar@adacore.com>
* sem_res.adb: Minor reformatting
2010-10-07 Olivier Ramonat <ramonat@adacore.com>
* gnat_ugn.texi: Minor editing.
* opt.ads: Document that scripts rely on specific formats in opt.ads
2010-10-07 Robert Dewar <dewar@adacore.com>
* a-wichun.ads, a-wichun.adb (To_Lower_Case): New function
(To_Upper_Case): Fix to be inverse of To_Lower_Case
* a-zchuni.ads, a-zchuni.adb (To_Lower_Case): New function
(To_Upper_Case): Fix to be inverse of To_Lower_Case
2010-10-07 Robert Dewar <dewar@adacore.com>
* a-wichha.adb, a-wichha.ads, a-zchhan.adb, a-zchhan.ads: New file.
* impunit.adb: Add entries for a-wichha/a-zchhan
* Makefile.rtl: Add entries for a-wichha/a-zchhan
2010-10-07 Vincent Celier <celier@adacore.com>
* make.adb (Check): Call Check_Source_Info_In_ALI with Project_Tree
* makeutl.adb (Check_Source_Info_In_ALI): If there is at least one
replaced source, check that none of the replaced sources are in the
dependencies.
* makeutl.ads (Check_Source_Info_In_ALI): New parameter Tree
* prj-nmsc.adb (Remove_Source): New parameter Tree. If the source is
replaced with a source with a different file name, put it in the hash
table Replaced_Sources.
(Add_Source): Call Remove_Source with Data.Tree. If there is at least
one replaced source, check if it has the same file name as the current
source; if it has, remove it from the hash table Replaced_Sources.
* prj.adb (Reset): Reset hash table Tree.Replaced_Sources
* prj.ads (Replaced_Source_HTable): New hash table
(Project_Tree_Data): New components Replaced_Sources and
Replaced_Source_Number.
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* sem_elab.adb (Check_A_Call): After inserting elaboration check, set
proper flag to prevent a double elaboration check on the same call.
* exp_util.adb (Insert_Actions): If the enclosing node is an
Expression_With_Actions and it has been analyzed already, find
insertion point further up in the tree.
* sem_ch13.adb (Analyze_Record_Representation_Clause): Alphabetize all
local variables. Remove the general restriction which prohibits the
application of record rep clauses to Unchecked_Union types. Add Ada
2012 check to detect improper naming of an Unchecked_Union
discriminant in record rep clause.
* sem_prag.adb: Add with and use clause for Exp_Ch7.
(Analyze_Pragma): Unchecked_Union case: Propagate the Unchecked_Union
type to all invocations of Check_Component and Check_Variant.
(Check_Component): Add formal parameters UU_Typ and In_Variant_Part.
Rewritten. Add Ada 2012 check to detect improper use of formal
private types and private extensions as component types of an
Unchecked_Union declared inside a generic body.
(Check_Variant): Add formal parameter UU_Typ. Propagate the
Unchecked_Union type to all calls of Check_Component. Signal that the
current component comes from the variant part of an Unchecked_Union
type.
(Inside_Generic_Body): New routine.
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_Composite_Equality): When looking for a primitive
equality operation for a record component, verify that both formals
have the same type, and the result type is boolean.
2010-10-07 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Check_Files): When looking for the .ci file for a
binder generated file, look for both b~xxx and b__xxx as gprbuild
always uses b__ as the prefix of such files.
Arnaud Charlet [Thu, 7 Oct 2010 09:16:06 +0000 (11:16 +0200)]
[multiple changes]
2010-10-07 Thomas Quinot <quinot@adacore.com>
* sem_res.adb: Minor reformatting.
2010-10-07 Arnaud Charlet <charlet@adacore.com>
* debug.adb: Update -gnatd.J documentation.
2010-10-07 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document handling of invalid values
* s-utf_32.ads, s-utf_32.adb (UTF_To_Lower_Case): Fix implementation
to match new spec.
(UTF_To_Upper_Case): New function.
Arnaud Charlet [Thu, 7 Oct 2010 09:12:36 +0000 (11:12 +0200)]
[multiple changes]
2010-10-07 Robert Dewar <dewar@adacore.com>
* sem_attr.adb: Minor reformatting.
* einfo.ads, einfo.adb (Is_Ada_2012_Only): New flag
* itypes.adb (Create_Null_Excluding_Itype): Set Is_Ada_2012_Only flag
properly.
* lib-xref.adb (Generate_Reference): Warn on use of Ada 2012 entity in
non-Ada 2012 mode.
* opt.ads (Warn_On_Ada_2012_Compatibility): New flag
* sem_ch3.adb (Analye_Subtype_Declaration): Inherit Is_Ada_2012_Only
* sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Ada_2012_Only
flag.
* sem_prag.adb (Analyze_Pragma, case Ada_12/Ada_2012): Allow form with
argument.
* sem_type.adb (Disambiguate): Deal with Is_Ada_2012_Only.
* sem_warn.adb (Warn_On_Ada_2012_Compatibility): New flag, treated
same as 2005 flag.
2010-10-07 Javier Miranda <miranda@adacore.com>
* a-tags.ads: Use new support for pragma Ada_2012 with function
Type_Is_Abstract.
Arnaud Charlet [Thu, 7 Oct 2010 09:08:36 +0000 (11:08 +0200)]
[multiple changes]
2010-10-07 Ed Schonberg <schonberg@adacore.com>
* par-ch5.adb (P_Sequence_Of_Statements): In Ada2012 a label can end a
sequence of statements.
2010-10-07 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Check_Files): Only add a .ci files if it exists
2010-10-07 Javier Miranda <miranda@adacore.com>
* a-tags.ads, a-tags.adb (Type_Is_Abstract): New subprogram.
* rtsfind.ads (RE_Type_Is_Abstract): New entity.
* exp_disp.adb (Make_DT): Initialize TSD component Type_Is_Abstract.
2010-10-07 Arnaud Charlet <charlet@adacore.com>
* sem_ch12.adb (Mark_Context): Removed, no longer needed.
(Analyze_Package_Instantiation): No longer analyze systematically a
generic body in CodePeer mode.
* freeze.adb, sem_attr.adb: Update comments.