aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-08-03[multiple changes]Arnaud Charlet13-202/+335
2011-08-03 Yannick Moy <moy@adacore.com> * alfa.ads Update format of ALFA section in ALI file in order to add a mapping from bodies to specs when both are present (ALFA_Scope_Record): add components for spec file/scope * get_alfa.adb (Get_ALFA): read the new file/scope for spec when present * lib-xref-alfa.adb (Collect_ALFA): after all scopes have been collected, fill in the spec information when relevant * put_alfa.adb (Put_ALFA): write the new file/scope for spec when present. 2011-08-03 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing code unit to decide whether to add internally generated subprograms. 2011-08-03 Javier Miranda <miranda@adacore.com> * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram. * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must be handled by copy in VM targets. 2011-08-03 Emmanuel Briot <briot@adacore.com> * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares code with Makeutl.Get_Switches. * prj-tree.adb: Update comment. From-SVN: r177256
2011-08-03[multiple changes]Arnaud Charlet8-311/+351
2011-08-03 Eric Botcazou <ebotcazou@adacore.com> * inline.adb: Revert previous change. 2011-08-03 Thomas Quinot <quinot@adacore.com> * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote subprogram with a limited formal that does not support external streaming. 2011-08-03 Yannick Moy <moy@adacore.com> * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of continuation line * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are not from current unit in two phases, because it is not possible to change the table while iterating over its content. * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity 2011-08-03 Sergey Rybin <rybin@adacore.com> * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option * gnat_ugn.texi: Update description of complexity metrics (gnatmetric) From-SVN: r177255
2011-08-03inline.adb: proper handling of init_procs.Ed Schonberg3-11/+43
2011-08-03 Ed Schonberg <schonberg@adacore.com> * inline.adb: proper handling of init_procs. * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate and the component type is composite, this is ambiguous for predefined concatenation, but if the node is not overloaded and the entity is a use -defined function its profile can be used to resolve that aggregate. From-SVN: r177254
2011-08-03[multiple changes]Arnaud Charlet6-6/+58
2011-08-03 Robert Dewar <dewar@adacore.com> * exp_ch4.adb: Minor code cleanup. 2011-08-03 Thomas Quinot <quinot@adacore.com> * exp_dist.adb: Do not generate distribution stubs if serious errors have been diagnosed. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of the first formal of a primitive operation, go to the base type to handle properly an access to a derived type with constrained discriminants. * sem_type.adb (Disambiguate): an immediately visible operator hides a user-defined function that is only use-visible. * inline.adb: init procs are inlineable. From-SVN: r177253
2011-08-03sem_aggr.adb, [...]: Minor reformattingRobert Dewar46-476/+564
2011-08-03 Robert Dewar <dewar@adacore.com> * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb, make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb, fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb, prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads, sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb, prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb, prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads, alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting 2011-08-03 Robert Dewar <dewar@adacore.com> * repinfo.adb (List_Mechanism): Add handling of Convention_Ada_Pass_By_XXX. * sem_mech.adb (Set_Mechanism): Ditto. * sem_prag.adb (Process_Convention): Add entries for Convention_Ada_Pass_By_XXX. * snames.adb-tmpl, snames.ads-tmpl: Ditto. From-SVN: r177252
2011-08-03[multiple changes]Arnaud Charlet5-19/+56
2011-08-03 Pascal Obry <obry@adacore.com> * makeutl.adb: Minor reformatting. 2011-08-03 Vincent Celier <celier@adacore.com> * fname-uf.adb (Get_File_Name) If the file cannot be found when there are no config pragmas file and May_Fail is True, return No_File instead of the file name, to be consistent. 2011-08-03 Pascal Obry <obry@adacore.com> * adaint.c (__gnat_is_executable_file_attr): Avoid access to null pointer. 2011-08-03 Javier Miranda <miranda@adacore.com> * sem_ch13.adb (Same_Representation): In VM targets the representation of arrays with aliased components differs from arrays with non-aliased components. From-SVN: r177251
2011-08-03prj-proc.adb, [...] (Get_Attribute_Index): do not systematically lower case ↵Emmanuel Briot6-102/+203
attribute indexes that contain no "." Fix... 2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do not systematically lower case attribute indexes that contain no "." Fix definition of several Naming attributes, which take a unit name as index and therefore should be case insensitive. Minor refactoring (reduce length of variable names). 2011-08-03 Emmanuel Briot <briot@adacore.com> * makeutl.adb, makeutl.ads (Get_Switches): new subprogram. From-SVN: r177250
2011-08-03gnatcmd.adb, [...] (Prj.Tree.Environment): new type.Emmanuel Briot17-236/+226
2011-08-03 Emmanuel Briot <briot@adacore.com> * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb, prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb, prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb, prj-tree.ads (Prj.Tree.Environment): new type. From-SVN: r177248
2011-08-03prj-proc.adb, [...] (Environment): new type.Emmanuel Briot8-29/+76
2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb, prj-tree.adb, prj-tree.ads (Environment): new type. From-SVN: r177247
2011-08-03[multiple changes]Arnaud Charlet3-8/+20
2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-tree.ads: Remove unused variable. 2011-08-03 Yannick Moy <moy@adacore.com> * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for issuing messages related to SPARK restriction violation. From-SVN: r177246
2011-08-03[multiple changes]Arnaud Charlet6-7/+57
2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb: guard against error nodes in return statements. 2011-08-03 Arnaud Charlet <charlet@adacore.com> * errout.adb (Error_Msg_Internal): the main unit has not been read yet, a warning can only appear on a configuration file, so emit warning without further checks. 2011-08-03 Arnaud Charlet <charlet@adacore.com> * s-interr.ads: add overriding keyword. 2011-08-03 Geert Bosch <bosch@adacore.com> * exp_attr.adb: Fix minor typo. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * par-ch4.adb: improve error recovery. From-SVN: r177245
2011-08-03[multiple changes]Arnaud Charlet16-70/+274
2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb, prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize to Errout_Handling. 2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use "external" as an attribute name in aggregate projects. 2011-08-03 Jose Ruiz <ruiz@adacore.com> * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU uses CPU numbers starting 1, while VxWorks uses CPU numbers starting from 0, so we need to adjust. 2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb, prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type. From-SVN: r177244
2011-08-03[multiple changes]Arnaud Charlet14-980/+1063
2011-08-03 Yannick Moy <moy@adacore.com> * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK restriction on overloaded entity if the entity is not an operator. 2011-08-03 Yannick Moy <moy@adacore.com> * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb, restrict.ads: Rename remaining Check_Formal_Restriction* into Check_SPARK_Restriction*. 2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its qualifier. (Project_Empty): removed (Empty_Project): new parameter Qualifier This is used to have fields specific to aggregate projects, cleaner New field to store the list of aggregated projects. (Check_Aggregate_Project): removed (Process_Aggregated_Projects, Free): new subprograms. From-SVN: r177243
2011-08-03[multiple changes]Arnaud Charlet7-46/+151
2011-08-03 Olivier Hainque <hainque@adacore.com> * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an explicit dereference of an unconstrained type, create a constrained subtype for it, as is done for function calls that return an unconstrained type. 2011-08-03 Thomas Quinot <quinot@adacore.com> * g-pehage.adb (Finalize): Avoid possible double-free. 2011-08-03 Steve Baird <baird@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand Elab_Spec/Body attrs in CodePeer_Mode. 2011-08-03 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Flatten): Convert to positional form aggregates whose low bound is not known at compile time but they have no others choice. Done because in this case the bounds can be obtained directly from the aggregate. 2011-08-03 Ed Falis <falis@adacore.com> * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs on VxWorks SMP. Remove unusable constant ANY_CPU. From-SVN: r177242
2011-08-03gnatcmd.adb, [...] (Prj.Env.Initialize_Default_Project_Path, [...]): new ↵Emmanuel Briot12-78/+139
subprograms 2011-08-03 Emmanuel Briot <briot@adacore.com> * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb, clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Prj.Env.Initialize_Default_Project_Path, Prj.Env.Initialize_Empty): new subprograms (Get_Env, Find_Project): remove parameter Target_Name. From-SVN: r177241
2011-08-03[multiple changes]Arnaud Charlet9-270/+352
2011-08-03 Gary Dismukes <dismukes@adacore.com> * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal as a condition for the delayed call to Derived_Subprograms done for the case of the rewriting of a derived type that constrains the discriminants of its parent type. Avoids redundant subprogram derivations for private subtype derivations. 2011-08-03 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of Build_Record_Aggr_Code. (Build_Record_Aggr_Code): Add missing support to initialize hidden discriminants in extension aggregates. 2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-pp.adb (Print): also output project qualifiers, since in particular "aggregate" is mandatory in an aggregate project. 2011-08-03 Emmanuel Briot <briot@adacore.com> * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb: (Debug_Output): new function. From-SVN: r177240
2011-08-03[multiple changes]Arnaud Charlet25-1794/+4012
2011-08-03 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi: Document -Wstack-usage. * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes. 2011-08-03 Thomas Quinot <quinot@adacore.com> * sem_prag.adb Issue an error (not a warning) when a C++ type does not have keyword LIMITED. 2011-08-03 Yannick Moy <moy@adacore.com> * alfa.adb, alfa.ads, alfa_test.adb: New files. * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA) (Scan_ALI): do not issue a fatal error if parsing known lines after Xref section (does not happen in compiler, only if code directly calls Scan_ALI). * get_alfa.adb, get_alfa.ads: New files. * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if needed. * lib-xref-alfa.adb: New file. * lib-xref.adb, lib-xref.ads (Xref_Entry): redefine information needed in cross-references for ALFA. Push ALFA treatments in separated local package. (Enclosing_Subpragram_Or_Package): treat specially subprogram identifiers. Return entity of package body instead of spec. Return Empty for a scope with no location. (Generate_Reference): adapt to new components for ALFA information. Remove the need for D references on definitions. (Is_Local_Reference): moved to ALFA local package (Output_References): extract subfunction as Extract_Source_Name (Output_Local_References): remove procedure, replaced by filtering of cross-references in package ALFA and printing in Put_ALFA. (Write_Entity_Name): remove procedure * lib.adb, lib.ads (Extract_Source_Name): extract here function to print exact name of entity as it appears in source file (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA * put_alfa.adb, put_alfa.ads: New files. * xref_lib.adb (Search_Xref): protect read of cross-references against reading other sections of the ALI file, in gnatxref (Search): protect read of cross-references against reading other sections of the ALI file, in gnatfind. * gcc-interface/Make-lang.in: Update dependencies. 2011-08-03 Thomas Quinot <quinot@adacore.com> * sem_ch3.adb: Minor reformatting. 2011-08-03 Jose Ruiz <ruiz@adacore.com> * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of raising an exception. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer type, always use 1 as the lower bound or string, even if lower bound of context is not static, to handle properly null strings in a non-static context. 2011-08-03 Bob Duff <duff@adacore.com> * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is always legal on the right-hand side of an assignment statement; there is always an applicable index constraint in this case. Therefore, the check for Pkind = N_Assignment_Statement is now unconditional -- it doesn't depend on whether Is_Constrained (Typ). From-SVN: r177239
2011-08-03[multiple changes]Arnaud Charlet6-26/+42
2011-08-03 Robert Dewar <dewar@adacore.com> * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference for an itype created within a generic unit. 2011-08-03 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline suppresses all inlining. From-SVN: r177238
2011-08-03[multiple changes]Arnaud Charlet11-57/+150
2011-08-03 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb, exp_aggr.adb: Minor reformatting. 2011-08-03 Thomas Quinot <quinot@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of tagged assignment when discriminant checks are suppressed. This is useless and extremely costly in terms of static stack usage. 2011-08-03 Bob Duff <duff@adacore.com> * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances of generics, because this leads to the wrong entity in the wrong scope, causing (e.g.) pragma Export_Procedure to get an error if the entity is an instance. (Process_Interface_Name): Follow Alias for instances of generics, to correct for the above change. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value is an integer literal it is always safe to replace the reference. In addition, if the reference appears in the generated code for an object declaration it is necessary to copy because otherwise the reference might be to the uninitilized value of the discriminant of the object itself. 2011-08-03 Pascal Obry <obry@adacore.com> * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no ACL used, in this case we want to check for ending .exe, not .exe anywhere in the path. 2011-08-03 Sergey Rybin <rybin@adacore.com> * tree_io.ads (ASIS_Version_Number): Update because of the changes in the tree structure (semantic decoration of references to record discriminants). From-SVN: r177237
2011-08-03[multiple changes]Arnaud Charlet10-44/+146
2011-08-03 Gary Dismukes <dismukes@adacore.com> * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete choices of a named array aggregate, bail out when any choices are marked as Errors_Posted. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope in which entity is frozen, to handle properly loop variables in iterators. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the subtype is not static, compute the upper bound using attributes, to handle properly index types that are not integer types. 2011-08-03 Bob Duff <duff@adacore.com> * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs. Update copyright notice. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Discriminant_Constraints): Only use Original_Discriminant if within an instance. * sem_ch4.adb (Analyze_Selected_Component): Ditto. 2011-08-03 Thomas Quinot <quinot@adacore.com> * einfo.ads: Minor reformatting. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a composite type with an unfrozen subcomponent, in the profile of a primitive operation. From-SVN: r177236
2011-08-03Optimize stage countRevital Eres2-57/+302
From-SVN: r177235
2011-08-03[multiple changes]Arnaud Charlet5-30/+57
2011-08-03 Robert Dewar <dewar@adacore.com> * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an unconstrained type with discriminants is initialized with an aggregate, use the constrained subtype of the aggregate as the type of the object, because it is immutable, and this allows the back-end to generate no code for the object declaration. From-SVN: r177234
2011-08-03[multiple changes]Arnaud Charlet8-35/+92
2011-08-03 Robert Dewar <dewar@adacore.com> * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where comparison operand is variable, and turns out to be zero or negative. 2011-08-03 Javier Miranda <miranda@adacore.com> * exp_intr.adb (Expand_Dispatching_Constructor_Call): Disable expansion of code required for native targets. Done to avoid generating references to unavailable runtime entities in VM targets. * exp_ch3.adb (Expand_N_Object_Declaration): Add missing support to handle the explicit initialization of class-wide interface objects. Fix documentation. 2011-08-03 Matthew Heaney <heaney@adacore.com> * a-cobove.adb (Merge): Move source onto target, instead of using Assign 2011-08-03 Matthew Heaney <heaney@adacore.com> * a-cbdlli.adb (Splice): move source items from first to last 2011-08-03 Yannick Moy <moy@adacore.com> * sem_util.ads: comment added. 2011-08-03 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Expand_Record_Aggregate): In VM targets disable the expansion into assignments of aggregates whose type is not known at compile time. From-SVN: r177233
2011-08-03exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for ↵Ed Schonberg3-37/+95
protected entries and task entries... 2011-08-03 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for protected entries and task entries, to build the proper renaming declaration for entry formals, used in debugging. * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry parameters in the same way. From-SVN: r177232
2011-08-02Update x32 __NR_rt_sigreturn system call number.H.J. Lu2-2/+13
2011-08-02 H.J. Lu <hongjiu.lu@intel.com> * config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): New. (x86_64_fallback_frame_state): Use RT_SIGRETURN_SYSCALL and long long to check rt_sigreturn syscall. From-SVN: r177229
2011-08-03gccgo: Added code to dump the AST tree.Roberto Lublinerman10-5/+1861
gccgo: Added code to dump the AST tree. The AST dump is activated with -fgo-dump-ast. Initial version, it only dumps (most) constructs that are expected after the lowering transformation. * Make-lang.in (GO_OBJS): Add go/ast-dump.o. (go/ast-dump.o): New target. (go/expressions.o): Depend on go/gofrontend/ast-dump.h. (go/statements.o): Likewise. From-SVN: r177225
2011-08-03Daily bump.GCC Administrator1-1/+1
From-SVN: r177224
2011-08-02Add another PR tag.Richard Henderson1-0/+1
From-SVN: r177219
2011-08-02re PR debug/49864 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2439)Richard Henderson13-462/+640
PR target/49864 * reg-notes.def (REG_ARGS_SIZE): New. * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop. (expand_call): Add REG_ARGS_SIZE to emit_stack_restore. * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to different stack levels. * combine-stack-adj.c (adjust_frame_related_expr): Remove. (maybe_move_args_size_note): New. (combine_stack_adjustments_for_block): Use it. * combine.c (distribute_notes): Place REG_ARGS_SIZE. * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member. (dw_trace_info): Add beg_true_args_size, end_true_args_size, beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined. (cur_cfa): New. (queued_args_size): Remove. (add_cfi_args_size): Assert size is non-negative. (stack_adjust_offset, dwarf2out_args_size): Remove. (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove. (notice_args_size, notice_eh_throw): New. (dwarf2out_frame_debug_def_cfa): Use cur_cfa. (dwarf2out_frame_debug_adjust_cfa): Likewise. (dwarf2out_frame_debug_cfa_offset): Likewise. (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset. (dwarf2out_frame_debug): Don't handle non-frame-related-p insns. (change_cfi_row): Don't emit args_size. (maybe_record_trace_start_abnormal): Split out from ... (maybe_record_trace_start): Here. Set args_size_undefined. (create_trace_edges): Update to match. (scan_trace): Handle REG_ARGS_SIZE. (connect_traces): Connect args_size between EH insns. * emit-rtl.c (try_split): Handle REG_ARGS_SIZE. * explow.c (suppress_reg_args_size): New. (adjust_stack_1): Split out from ... (adjust_stack): ... here. (anti_adjust_stack): Use it. (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE. * expr.c (mem_autoinc_base): New. (fixup_args_size_notes): New. (emit_single_push_insn_1): Rename from emit_single_push_insn. (emit_single_push_insn): New. Generate REG_ARGS_SIZE. * recog.c (peep2_attempt): Handle REG_ARGS_SIZE. * reload1.c (reload_as_needed): Likewise. * rtl.h (fixup_args_size_notes): Declare. From-SVN: r177218
2011-08-02Fix my last changelog entry.Richard Henderson1-0/+3
From-SVN: r177217
2011-08-02re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in ↵Jason Merrill4-0/+17
lambda compound-statement) PR c++/43886 * parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p. From-SVN: r177216
2011-08-02re PR c++/49577 ([C++0x] narrowing conversion not rejected)Jason Merrill6-2/+17
PR c++/49577 * typeck2.c (check_narrowing): Check unsigned mismatch. * semantics.c (finish_compound_literal): check_narrowing. From-SVN: r177215
2011-08-02re PR c++/49593 ([C++0x] cannot use T{t}... as pack expansion)Jason Merrill4-0/+26
PR c++/49593 * pt.c (find_parameter_packs_r): Handle CONSTRUCTOR. From-SVN: r177214
2011-08-02re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union ↵Jason Merrill4-3/+33
containing an anonymous struct) PR c++/49803 * init.c (sort_mem_initializers): Initialize uses_unions_p here. (build_field_list): Not here. From-SVN: r177213
2011-08-02re PR bootstrap/49914 (call to abs(long long) in gcc/fold-const.c)Paolo Carlini4-12/+21
2011-08-02 Paolo Carlini <paolo.carlini@oracle.com> PR bootstrap/49914 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead of abs. * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. From-SVN: r177212
2011-08-02re PR fortran/49885 (Segmentation fault when writing to an automatic ↵Daniel Kraft4-1/+37
character array) 2011-08-02 Daniel Kraft <d@domob.eu> PR fortran/49885 * trans-array.c (gfc_trans_auto_array_allocation): Change gfc_start_block to gfc_init_block to avoid spurious extra-scope. 2011-08-02 Daniel Kraft <d@domob.eu> PR fortran/49885 * gfortran.dg/auto_char_dummy_array_3.f90: New test. From-SVN: r177211
2011-08-02h8300: Generate correct unwind info around swap_into/out_of_er6.Richard Henderson3-24/+43
Minimal bug fix is to unset RTX_FRAME_RELATED_P on the PUSH insn generated in h8300_swap_into_er6. But with a tiny bit of effort we can generate real unwind info around the sequence. From-SVN: r177209
2011-08-02re PR middle-end/49947 (FAIL: gcc.dg/tree-ssa/forwprop-15.c)Kai Tietz2-1/+6
2011-08-02 Kai Tietz <ktietz@redhat.com> PR middle-end/49947 * gcc.dg/tree-ssa/forwprop-15.c From-SVN: r177205
2011-08-02Fix a typo in host_detect_local_cpu.H.J. Lu2-1/+5
2011-08-02 H.J. Lu <hongjiu.lu@intel.com> * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. From-SVN: r177204
2011-08-02re PR target/49878 ([h8300] ICE in based_loc_descr, at dwarf2out.c:10478)Richard Henderson5-120/+111
PR target/49878 h8300: Don't allow eliminable registers to be pushed. From-SVN: r177200
2011-08-02re PR c++/49834 ([C++0x] type deduction in for-each loop in template function)Jason Merrill4-12/+95
PR c++/49834 * parser.c (build_range_temp): Split out from... (cp_convert_range_for): ...here. (do_range_for_auto_deduction): New. (cp_parser_range_for): Use it. From-SVN: r177199
2011-08-02trans-array.c (gfc_array_allocate): Pass token to gfc_allocate_allocatable ↵Tobias Burnus7-14/+47
for -fcoarray=lib. 2011-08-02 Tobias Burnus <burnus@net-b.de> * trans-array.c (gfc_array_allocate): Pass token to gfc_allocate_allocatable for -fcoarray=lib. * trans-stmt.c (gfc_trans_allocate): Update gfc_allocate_allocatable call. * trans.h (gfc_allocate_allocatable): Update prototype. (gfc_allocate_using_lib): Remove. * trans.c (gfc_allocate_using_lib): Make static, handle token. (gfc_allocate_allocatable): Ditto. 2011-08-02 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray_lib_token_3.f90: New. From-SVN: r177198
2011-08-02re PR target/49881 ([AVR] Inefficient stack manipulation around calls)Richard Henderson2-1/+6
PR target/49881 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand. From-SVN: r177196
2011-08-02backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated ↵Jakub Jelinek87-333/+4321
allocatable array in firstprivate clause) Merge from gomp-3_1-branch branch: 2011-08-02 Jakub Jelinek <jakub@redhat.com> gcc/ * c-parser.c (enum c_parser_prec): New enum, moved from within c_parser_binary_expression. (c_parser_binary_expression): Add PREC argument. Stop parsing if operator has lower or equal precedence than PREC. (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust callers. (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics. Adjust c_finish_omp_atomic caller. (c_parser_omp_taskyield): New function. (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. (c_parser_omp_clause_name): Handle final and mergeable clauses. (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New functions. (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL and PRAGMA_OMP_CLAUSE_MERGEABLE. (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. (c_parser_omp_clause_reduction): Handle min and max. * c-typeck.c (c_finish_omp_clauses): Don't complain about const qualified predetermined vars in firstprivate clause. andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR and MAX_EXPR. * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW. * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. (omp_clause_code_name): Likewise. (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. (OMP_CLAUSE_FINAL_EXPR): Define. * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. (expand_task_call): Likewise. (expand_omp_atomic_load, expand_omp_atomic_store): New functions. (expand_omp_atomic_fetch_op): Handle cases where old or new value is needed afterwards. (expand_omp_atomic): Call expand_omp_atomic_load resp. expand_omp_atomic_store. * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW. (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. * tree-nested.c (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Likewise. * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD, OMP_ATOMIC_CAPTURE_NEW): New. * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New. (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value): New inlines. * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin. * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. gcc/c-family/ * c-common.h (c_finish_omp_atomic): Adjust prototype. (c_finish_omp_taskyield): New prototype. * c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1 arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC. If LHS1 or RHS1 have side-effects, evaluate those too in the right spot, if it is a decl and LHS is also a decl, error out if they aren't the same. (c_finish_omp_taskyield): New function. * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107. * c-pragma.c (omp_pragmas): Add taskyield. * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD. (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and PRAGMA_OMP_CLAUSE_MERGEABLE. gcc/cp/ * cp-tree.h (finish_omp_atomic): Adjust prototype. (cxx_omp_const_qual_no_mutable): New prototype. (finish_omp_taskyield): New prototype. * parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics. Adjust finish_omp_atomic caller. (cp_parser_omp_clause_name): Handle final and mergeable clauses. (cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New functions. (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL and PRAGMA_OMP_CLAUSE_MERGEABLE. (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. (cp_parser_omp_taskyield): New function. (cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. (cp_parser_omp_clause_reduction): Handle min and max. * pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics. (tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. * semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1 arguments. Handle OpenMP 3.1 atomics. Adjust c_finish_omp_atomic caller. (finish_omp_clauses): Don't complain about const qualified predetermined vars and static data members in firstprivate clause. Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR and MAX_EXPR. (finish_omp_taskyield): New function. * cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function. (cxx_omp_predetermined_sharing): Use it. gcc/fortran/ PR fortran/46752 * cpp.c (cpp_define_builtins): Change _OPENMP to 201107. * openmp.c (gfc_free_omp_clauses): Free also final_expr. (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define. (gfc_match_omp_clauses): Handle parsing final and mergeable clauses. (OMP_TASK_CLAUSES): Allow final and mergeable clauses. (gfc_match_omp_taskyield): New function. (resolve_omp_clauses): Resolve final clause. Allow POINTERs and Cray pointers in clauses other than REDUCTION. (gfc_match_omp_atomic): Match optional read/write/update/capture keywords after !$omp atomic. (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms. * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD, print final and mergeable clauses. (show_code_node): Handle EXEC_OMP_TASKYIELD. * trans-openmp.c (gfc_trans_omp_clauses): Handle final and mergeable clauses. (gfc_trans_omp_taskyield): New function. (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD. (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms. (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable. (gfc_omp_predetermined_sharing): Adjust comment. * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and ST_OMP_END_ATOMIC. (gfc_omp_clauses): Add final_expr and mergeable fields. (gfc_exec_op): Add EXEC_OMP_TASKYIELD. (gfc_omp_atomic_op): New enum typedef. (struct gfc_code): Add ext.omp_atomic. * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD. * frontend-passes.c (gfc_code_walker): Also walk final_expr. * resolve.c (gfc_resolve_blocks, resolve_code): Handle EXEC_OMP_TASKYIELD. * st.c (gfc_free_statement): Likewise. * match.h (gfc_match_omp_taskyield): New prototype. * parse.c (decode_omp_directive): Handle taskyield directive. Handle !$omp end atomic. (case_executable): Add ST_OMP_TASKYIELD case. (gfc_ascii_statement): Handle ST_OMP_TASKYIELD. (parse_omp_atomic): Return gfc_statement instead of void. For !$omp atomic capture parse two assignments instead of just one and require !$omp end atomic afterwards, for other !$omp atomic forms just allow !$omp end atomic at the end. (parse_omp_structured_block, parse_executable): Adjust parse_omp_atomic callers. 2011-08-02 Tobias Burnus <burnus@net-b.de> * intrinsic.c (OMP_LIB): Updated openmp_version's value to 201107. * gfortran.texi (OpenMP): Update ref to OpenMP 3.1. * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1; remove deleted omp_integer_kind and omp_logical_kind constants. gcc/testsuite/ PR fortran/46752 * gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics. * gcc.dg/gomp/atomic-15.c: New test. * g++.dg/gomp/atomic-5.C: Adjust expected diagnostics. * g++.dg/gomp/atomic-15.C: New test. * g++.dg/gomp/private-1.C: New test. * g++.dg/gomp/sharing-2.C: New test. * gfortran.dg/gomp/crayptr1.f90: Don't expect error about Cray pointer in FIRSTPRIVATE/LASTPRIVATE. * gfortran.dg/gomp/omp_atomic2.f90: New test. libgomp/ PR fortran/42041 PR fortran/46752 * omp.h.in (omp_in_final): New prototype. * omp_lib.f90.in (omp_in_final): New interface. (omp_integer_kind, omp_logical_kind): Remove and replace all its uses in the module with 4. (openmp_version): Change to 201107. * omp_lib.h.in (omp_sched_static, omp_sched_dynamic, omp_sched_guided, omp_sched_auto): Use omp_sched_kind kind for the parameters. (omp_in_final): New external. (openmp_version): Change to 201107. * task.c (omp_in_final): New function. (gomp_init_task): Initialize final_task. (GOMP_task): Remove unused attribute from flags. Handle final tasks. (GOMP_taskyield): New function. (omp_in_final): Return true if if (false) or final (true) task or descendant of final (true). * fortran.c (omp_in_final_): New function. * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_. (GOMP_3.0): Export GOMP_taskyield. * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New variables. (parse_unsigned_long_list): New function. (initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity even if parse_affinity returned false. * config/linux/affinity.c (gomp_init_affinity): Handle gomp_cpu_affinity_len == 0. * libgomp_g.h (GOMP_taskyield): New prototype. * libgomp.h (struct gomp_task): Add final_task field. (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs. * team.c (gomp_team_start): Override new task's nthreads_var icv if list form OMP_NUM_THREADS has been used and it has value for the new nesting level. * testsuite/libgomp.c/atomic-11.c: New test. * testsuite/libgomp.c/atomic-12.c: New test. * testsuite/libgomp.c/atomic-13.c: New test. * testsuite/libgomp.c/atomic-14.c: New test. * testsuite/libgomp.c/reduction-6.c: New test. * testsuite/libgomp.c/task-5.c: New test. * testsuite/libgomp.c++/atomic-2.C: New test. * testsuite/libgomp.c++/atomic-3.C: New test. * testsuite/libgomp.c++/atomic-4.C: New test. * testsuite/libgomp.c++/atomic-5.C: New test. * testsuite/libgomp.c++/atomic-6.C: New test. * testsuite/libgomp.c++/atomic-7.C: New test. * testsuite/libgomp.c++/atomic-8.C: New test. * testsuite/libgomp.c++/atomic-9.C: New test. * testsuite/libgomp.c++/task-8.C: New test. * testsuite/libgomp.c++/reduction-4.C: New test. * testsuite/libgomp.fortran/allocatable7.f90: New test. * testsuite/libgomp.fortran/allocatable8.f90: New test. * testsuite/libgomp.fortran/crayptr3.f90: New test. * testsuite/libgomp.fortran/omp_atomic3.f90: New test. * testsuite/libgomp.fortran/omp_atomic4.f90: New test. * testsuite/libgomp.fortran/pointer1.f90: New test. * testsuite/libgomp.fortran/pointer2.f90: New test. * testsuite/libgomp.fortran/task4.f90: New test. 2011-08-02 Tobias Burnus <burnus@net-b.de> * libgomp.texi: Update OpenMP spec references to 3.1. (omp_in_final,OMP_PROC_BIND): New sections. (OMP_NUM_THREADS): Document that the value can be now a list. (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref. From-SVN: r177194
2011-08-02New file.Arnaud Charlet1-0/+26
From-SVN: r177193
2011-08-02Minor reformatting.Arnaud Charlet1-1/+1
From-SVN: r177192
2011-08-02Update dependenciesArnaud Charlet2-147/+161
From-SVN: r177191
2011-08-02[multiple changes]Arnaud Charlet12-53/+504
2011-08-02 Robert Dewar <dewar@adacore.com> * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb, sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or code reorganization. 2011-08-02 Robert Dewar <dewar@adacore.com> * debug.adb: Debug flag d.P to suppress length comparison optimization * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize comparison of Length by comparing First/Last instead. 2011-08-02 Matthew Heaney <heaney@adacore.com> * a-cobove.ads: Code clean up. From-SVN: r177190
2011-08-02[multiple changes]Arnaud Charlet3-14/+29
2011-08-02 Vincent Celier <celier@adacore.com> * adaint.c (file_names_case_sensitive_cache): New static int. (__gnat_get_file_names_case_sensitive): Cache the return value in file_names_case_sensitive_cache at the first invocation, to avoid multiple calls to getenv. 2011-08-02 Bob Duff <duff@adacore.com> * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1. From-SVN: r177189
2011-08-02[multiple changes]Arnaud Charlet15-80/+138
2011-08-02 Yannick Moy <moy@adacore.com> * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads, sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to indicate that we are in a precondition or postcondition. This is used in Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to decide whether to flag the spec or body of the current subprogram as not in ALFA. 2011-08-02 Fabien Chouteau <chouteau@adacore.com> * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package list. * a-extiin.ads: New file. 2011-08-02 Bob Duff <duff@adacore.com> * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename now raises Name_Error instead of Use_Error in certain cases. The other parts of this AI were already implemented properly. From-SVN: r177187