1. 03 Aug, 2011 15 commits
    • [multiple changes] · c4d67e2d
      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
      Arnaud Charlet committed
    • [multiple changes] · 3f5a8fee
      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
      Arnaud Charlet committed
    • gnatcmd.adb, [...] (Prj.Env.Initialize_Default_Project_Path, [...]): new subprograms · a96ca600
      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
      Emmanuel Briot committed
    • [multiple changes] · 3e582869
      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
      Arnaud Charlet committed
    • [multiple changes] · 56e94186
      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
      Arnaud Charlet committed
    • [multiple changes] · 4317e442
      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
      Arnaud Charlet committed
    • [multiple changes] · 53f29d4f
      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
      Arnaud Charlet committed
    • [multiple changes] · c0b11850
      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
      Arnaud Charlet committed
    • Optimize stage count · edc429ff
      From-SVN: r177235
      Revital Eres committed
    • [multiple changes] · 5c34e9cd
      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
      Arnaud Charlet committed
    • [multiple changes] · abcd9db2
      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
      Arnaud Charlet committed
    • exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for protected… · b474d6c3
      exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for 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
      Ed Schonberg committed
    • Update x32 __NR_rt_sigreturn system call number. · 40f2f11f
      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
      H.J. Lu committed
    • gccgo: Added code to dump the AST tree. · 16c57fe2
      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
      Roberto Lublinerman committed
    • Daily bump. · 44e7bfcb
      From-SVN: r177224
      GCC Administrator committed
  2. 02 Aug, 2011 25 commits
    • Add another PR tag. · a3fef928
      From-SVN: r177219
      Richard Henderson committed
    • re PR debug/49864 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2439) · 9a08d230
      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
      Richard Henderson committed
    • Fix my last changelog entry. · cde7b553
      From-SVN: r177217
      Richard Henderson committed
    • re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda… · a9a740ba
      re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda compound-statement)
      
      	PR c++/43886
      	* parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.
      
      From-SVN: r177216
      Jason Merrill committed
    • re PR c++/49577 ([C++0x] narrowing conversion not rejected) · 54e7d7f5
      	PR c++/49577
      	* typeck2.c (check_narrowing): Check unsigned mismatch.
      	* semantics.c (finish_compound_literal): check_narrowing.
      
      From-SVN: r177215
      Jason Merrill committed
    • re PR c++/49593 ([C++0x] cannot use T{t}... as pack expansion) · 326a6455
      	PR c++/49593
      	* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.
      
      From-SVN: r177214
      Jason Merrill committed
    • re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union… · adc651f3
      re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union 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
      Jason Merrill committed
    • re PR bootstrap/49914 (call to abs(long long) in gcc/fold-const.c) · 9f813990
      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
      Paolo Carlini committed
    • re PR fortran/49885 (Segmentation fault when writing to an automatic character array) · f315a6b4
      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
      Daniel Kraft committed
    • h8300: Generate correct unwind info around swap_into/out_of_er6. · 8f1594b2
      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
      Richard Henderson committed
    • re PR middle-end/49947 (FAIL: gcc.dg/tree-ssa/forwprop-15.c) · 66f1dc79
      2011-08-02  Kai Tietz  <ktietz@redhat.com>
      
      	PR middle-end/49947
      	* gcc.dg/tree-ssa/forwprop-15.c
      
      From-SVN: r177205
      Kai Tietz committed
    • Fix a typo in host_detect_local_cpu. · 3ed2c643
      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
      H.J. Lu committed
    • re PR target/49878 ([h8300] ICE in based_loc_descr, at dwarf2out.c:10478) · f9b4f8c1
      PR target/49878
      h8300: Don't allow eliminable registers to be pushed.
      
      From-SVN: r177200
      Richard Henderson committed
    • re PR c++/49834 ([C++0x] type deduction in for-each loop in template function) · 2b756fa2
      	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
      Jason Merrill committed
    • trans-array.c (gfc_array_allocate): Pass token to gfc_allocate_allocatable for -fcoarray=lib. · 979d4598
      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
      Tobias Burnus committed
    • re PR target/49881 ([AVR] Inefficient stack manipulation around calls) · b7cef595
      PR target/49881
              * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
      
      From-SVN: r177196
      Richard Henderson committed
    • backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable… · 20906c66
      backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated 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
      Jakub Jelinek committed
    • New file. · 113430e5
      From-SVN: r177193
      Arnaud Charlet committed
    • Minor reformatting. · c2d601b8
      From-SVN: r177192
      Arnaud Charlet committed
    • Update dependencies · 9beddc4c
      From-SVN: r177191
      Arnaud Charlet committed
    • [multiple changes] · 0580d807
      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
      Arnaud Charlet committed
    • [multiple changes] · b191a125
      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
      Arnaud Charlet committed
    • [multiple changes] · 316a0661
      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
      Arnaud Charlet committed
    • * call.c (build_call_a): Also check at_function_scope_p. · 1e88210d
      From-SVN: r177185
      Jason Merrill committed
    • trim_optimize_5.f90: Remove spurious "use foo". · 3c3a5160
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
              * trim_optimize_5.f90: Remove spurious "use foo".
              * actual_array_vect_1.f90: Fix or add dg-final cleanup-module
              * alloc_comp_assign_7.f90: Ditto.
              * allocatable_function_5.f90: Ditto.
              * allocate_stat.f90: Ditto.
              * array_constructor_20.f90: Ditto.
              * array_constructor_21.f90: Ditto.
              * array_constructor_22.f90: Ditto.
              * array_constructor_26.f03: Ditto.
              * array_function_4.f90: Ditto.
              * assumed_charlen_function_1.f90: Ditto.
              * assumed_size_dt_dummy.f90: Ditto.
              * bind_c_usage_15.f90: Ditto.
              * bind_c_usage_16.f03: Ditto.
              * bind_c_usage_3.f03: Ditto.
              * binding_label_tests_7.f03: Ditto.
              * class_15.f03: Ditto.
              * class_27.f03: Ditto.
              * class_33.f90: Ditto.
              * class_37.f03: Ditto.
              * class_40.f03: Ditto.
              * class_42.f03: Ditto.
              * class_defined_operator_1.f03: Ditto.
              * coarray/registering_1.f90: Ditto.
              * convert_1.f90: Ditto.
              * default_initialization_3.f90: Ditto.
              * dependency_25.f90: Ditto.
              * dependency_26.f90: Ditto.
              * dependency_36.f90: Ditto.
              * dependency_37.f90: Ditto.
              * derived_array_intrinisics_1.f90: Ditto.
              * dynamic_dispatch_10.f03: Ditto.
              * elemental_non_intrinsic_dummy_1.f90 |: Ditto.
              * elemental_pointer_1.f90: Ditto.
              * elemental_result_1.f90: Ditto.
              * empty_derived_type.f90: Ditto.
              * entry_7.f90: Ditto.
              * entry_dummy_ref_2.f90: Ditto.
              * equiv_constraint_3.f90: Ditto.
              * error_recovery_3.f90: Ditto.
              * extends_4.f03: Ditto.
              * func_assign.f90: Ditto.
              * func_assign_3.f90: Ditto.
              * generic_1.f90: Ditto.
              * generic_18.f90: Ditto.
              * generic_22.f03: Ditto.
              * generic_4.f90: Ditto.
              * generic_6.f90: Ditto.
              * generic_actual_arg.f90: Ditto.
              * graphite/id-21.f: Ditto.
              * graphite/pr45758.f90: Ditto.
              * host_assoc_call_2.f90: Ditto.
              * host_assoc_call_3.f90: Ditto.
              * host_assoc_call_4.f90: Ditto.
              * host_assoc_function_4.f90: Ditto.
              * host_used_types_1.f90: Ditto.
              * implicit_1.f90: Ditto.
              * implicit_11.f90: Ditto.
              * implicit_derived_type_1.f90: Ditto.
              * impure_actual_1.f90: Ditto.
              * impure_assignment_1.f90: Ditto.
              * impure_constructor_1.f90: Ditto.
              * initialization_10.f90: Ditto.
              * initialization_12.f90: Ditto.
              * interface_14.f90: Ditto.
              * interface_15.f90: Ditto.
              * interface_2.f90: Ditto.
              * interface_25.f90: Ditto.
              * interface_26.f90: Ditto.
              * interface_29.f90: Ditto.
              * interface_assignment_1.f90: Ditto.
              * internal_pack_6.f90: Ditto.
              * internal_pack_7.f90: Ditto.
              * internal_pack_8.f90: Ditto.
              * lto/pr45586_0.f90: Ditto.
              * lto/pr47839_0.f90: Ditto.
              * module_commons_3.f90: Ditto.
              * module_equivalence_4.f90: Ditto.
              * module_equivalence_6.f90: Ditto.
              * module_function_type_1.f90: Ditto.
              * module_naming_1.f90: Ditto.
              * namelist_4.f90: Ditto.
              * operator_c1202.f90: Ditto.
              * parens_7.f90: Ditto.
              * pr32921.f: Ditto.
              * pr33646.f90: Ditto.
              * pr41928.f90: Ditto.
              * pr42119.f90: Ditto.
              * pr43984.f90: Ditto.
              * present_1.f90: Ditto.
              * private_type_2.f90: Ditto.
              * proc_decl_2.f90: Ditto.
              * proc_ptr_10.f90: Ditto.
              * proc_ptr_22.f90: Ditto.
              * proc_ptr_8.f90: Ditto.
              * proc_ptr_comp_12.f90: Ditto.
              * proc_ptr_comp_pass_6.f90: Ditto.
              * pure_formal_proc_2.f90: Ditto.
              * realloc_on_assign_4.f03: Ditto.
              * substring_equivalence.f90: Ditto.
              * transfer_assumed_size_1.f90: Ditto.
              * transpose_optimization_1.f90: Ditto.
              * trim_optimize_6.f90: Ditto.
              * typebound_call_12.f03: Ditto.
              * typebound_operator_5.f03: Ditto.
              * typebound_operator_6.f03: Ditto.
              * typebound_proc_18.f03: Ditto.
              * unreferenced_use_assoc_1.f90: Ditto.
              * use_1.f90: Ditto.
              * use_10.f90: Ditto.
              * use_11.f90: Ditto.
              * use_14.f90: Ditto.
              * use_only_2.f90: Ditto.
              * use_rename_4.f90: Ditto.
              * use_rename_5.f90: Ditto.
              * used_dummy_types_3.f90: Ditto.
              * used_interface_ref.f90: Ditto.
              * used_types_11.f90: Ditto.
              * used_types_3.f90: Ditto.
              * used_types_4.f90: Ditto.
              * userdef_operator_2.f90: Ditto.
              * vect/fast-math-vect-8.f90: Ditto.
              * vect/pr46213.f90: Ditto.
              * whole_file_21.f90: Ditto.
              * whole_file_22.f90: Ditto.
              * coarray_lib_token_1.f90: Ditto. Add space before "}".
              * coarray_lib_token_2.f90: Ditto.
      
      From-SVN: r177184
      Tobias Burnus committed