charlet [Wed, 3 Aug 2011 09:36:24 +0000 (09:36 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177248
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 09:30:45 +0000 (09:30 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177247
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 09:27:50 +0000 (09:27 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177246
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 09:26:00 +0000 (09:26 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177245
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 09:21:55 +0000 (09:21 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177244
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 09:17:28 +0000 (09:17 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177243
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 08:32:57 +0000 (08:32 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177242
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 08:28:47 +0000 (08:28 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177241
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 08:26:17 +0000 (08:26 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177240
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 08:22:52 +0000 (08:22 +0000)]
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).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177239
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 08:11:09 +0000 (08:11 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177238
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 08:08:31 +0000 (08:08 +0000)]
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).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177237
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 08:02:56 +0000 (08:02 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177236
138bc75d-0d04-0410-961f-
82ee72b054a4
revitale [Wed, 3 Aug 2011 07:59:23 +0000 (07:59 +0000)]
Optimize stage count
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177235
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 07:52:00 +0000 (07:52 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177234
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 07:45:36 +0000 (07:45 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177233
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Wed, 3 Aug 2011 07:37:15 +0000 (07:37 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177232
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Wed, 3 Aug 2011 04:59:41 +0000 (04:59 +0000)]
Update x32 __NR_rt_sigreturn system call number.
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177229
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Wed, 3 Aug 2011 00:37:26 +0000 (00:37 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177225
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 3 Aug 2011 00:18:01 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177224
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Tue, 2 Aug 2011 22:20:17 +0000 (22:20 +0000)]
Add another PR tag.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177219
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Tue, 2 Aug 2011 22:18:35 +0000 (22:18 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177218
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Tue, 2 Aug 2011 21:23:58 +0000 (21:23 +0000)]
Fix my last changelog entry.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177217
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 2 Aug 2011 21:09:26 +0000 (21:09 +0000)]
PR c++/43886
* parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177216
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 2 Aug 2011 21:09:17 +0000 (21:09 +0000)]
PR c++/49577
* typeck2.c (check_narrowing): Check unsigned mismatch.
* semantics.c (finish_compound_literal): check_narrowing.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177215
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 2 Aug 2011 21:09:08 +0000 (21:09 +0000)]
PR c++/49593
* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177214
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 2 Aug 2011 21:08:57 +0000 (21:08 +0000)]
PR c++/49803
* init.c (sort_mem_initializers): Initialize uses_unions_p here.
(build_field_list): Not here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177213
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 2 Aug 2011 20:26:57 +0000 (20:26 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177212
138bc75d-0d04-0410-961f-
82ee72b054a4
domob [Tue, 2 Aug 2011 20:10:13 +0000 (20:10 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177211
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Tue, 2 Aug 2011 19:56:29 +0000 (19:56 +0000)]
h8300: Generate correct unwind info around swap_into/out_of_er6.
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177209
138bc75d-0d04-0410-961f-
82ee72b054a4
ktietz [Tue, 2 Aug 2011 19:31:30 +0000 (19:31 +0000)]
2011-08-02 Kai Tietz <ktietz@redhat.com>
PR middle-end/49947
* gcc.dg/tree-ssa/forwprop-15.c
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177205
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Tue, 2 Aug 2011 19:23:10 +0000 (19:23 +0000)]
Fix a typo in host_detect_local_cpu.
2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177204
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Tue, 2 Aug 2011 18:48:00 +0000 (18:48 +0000)]
PR target/49878
h8300: Don't allow eliminable registers to be pushed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177200
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 2 Aug 2011 18:08:58 +0000 (18:08 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177199
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Tue, 2 Aug 2011 18:07:52 +0000 (18:07 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177198
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Tue, 2 Aug 2011 17:38:16 +0000 (17:38 +0000)]
PR target/49881
* config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177196
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Tue, 2 Aug 2011 16:13:29 +0000 (16:13 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177194
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:53:12 +0000 (15:53 +0000)]
New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177193
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:52:59 +0000 (15:52 +0000)]
Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177192
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:49:38 +0000 (15:49 +0000)]
Update dependencies
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177191
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:47:39 +0000 (15:47 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177190
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:36:49 +0000 (15:36 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177189
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:35:25 +0000 (15:35 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177187
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 2 Aug 2011 15:35:09 +0000 (15:35 +0000)]
* call.c (build_call_a): Also check at_function_scope_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177185
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Tue, 2 Aug 2011 15:32:31 +0000 (15:32 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177184
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:30:55 +0000 (15:30 +0000)]
2011-08-02 Vincent Celier <celier@adacore.com>
* link.c: Only import "auto-host.h" when building the gnattools.
2011-08-02 Yannick Moy <moy@adacore.com>
* sem_util.adb: Inter-unit inlining does not work for a subprogram
which calls a local subprogram, so extract subprogram
from Mark_Non_ALFA_Subprogram_Body.
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_ch9.adb
(Extract_Dispatching_Call): If the type of the dispatching object is an
access type then return an explicit dereference in the Object out-mode
parameter.
2011-08-02 Gary Dismukes <dismukes@adacore.com>
* sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
compatibility checks for all indexes of an array subtype, not just the
first. Reset Has_Dynamic_Range_Check on the subtype before each
potential check to ensure that Insert_Range_Checks will not elide any
of the dynamic checks.
2011-08-02 Yannick Moy <moy@adacore.com>
* par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
SPARK restriction at parsing time.
* scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
directive only if the SPARK restriction is set for this unit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177183
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:28:12 +0000 (15:28 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
sem_ch11.adb: Protect call to Current_Subprogram which might be costly
when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
Mark_Non_ALFA_Subprogram_Body.
Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
inlined.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177182
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:26:43 +0000 (15:26 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
might be costly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177181
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:25:25 +0000 (15:25 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
exp_ch3.adb: Minor reformatting.
2011-08-02 Emmanuel Briot <briot@adacore.com>
* adaint.c (__gnat_locate_exec_on_path): only returns executable
files, not any regular file.
(__gnat_locate_file_with_predicate): new subprogram.
2011-08-02 Yannick Moy <moy@adacore.com>
* sinfo.adb, sinfo.ads: Restrict the use of flags
Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
nodes, plus N_Subtype_Declaration for the 2nd one.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177180
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:21:19 +0000 (15:21 +0000)]
2011-08-02 Sergey Rybin <rybin@adacore.com>
* gnat_rm.texi: Ramification of pragma Eliminate documentation
- fix bugs in the description of Source_Trace;
- get rid of UNIT_NAME;
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_ch9.adb
(Build_Dispatching_Requeue): Adding support for VM targets
since we cannot directly reference the Tag entity.
* exp_sel.adb (Build_K): Adding support for VM targets.
(Build_S_Assignment): Adding support for VM targets.
* exp_disp.adb
(Default_Prim_Op_Position): In VM targets do not restrict availability
of predefined interface primitives to compiling in Ada 2005 mode.
(Is_Predefined_Interface_Primitive): In VM targets this service is not
restricted to compiling in Ada 2005 mode.
(Make_VM_TSD): Generate code that declares and initializes the OSD
record. Needed to support dispatching calls through synchronized
interfaces.
* exp_ch3.adb
(Make_Predefined_Primitive_Specs): Enable generation of predefined
primitives associated with synchronized interfaces.
(Make_Predefined_Primitive_Bodies): Enable generation of predefined
primitives associated with synchronized interfaces.
2011-08-02 Yannick Moy <moy@adacore.com>
* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
statements hidden in SPARK if preceded by the HIDE directive
(Parse_Exception_Handlers): mark each exception handler in a sequence of
exception handlers as hidden in SPARK if preceded by the HIDE directive
* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
if starting with the HIDE directive
* par-ch7.adb (P_Package): mark a package body hidden in SPARK if
starting with the HIDE directive; mark the declarations in a private
part as hidden in SPARK if the private part starts with the HIDE
directive
* restrict.adb, restrict.ads
(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
(Is_In_Hidden_Part_In_SPARK): new function which returns whether its
argument node belongs to a part which is hidden in SPARK
(Check_SPARK_Restriction): do not issue violations on nodes in hidden
parts in SPARK; protect the possibly costly call to
Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
Accumulate_Token_Checksum_GNAT_5_03): add case for new token
Tok_SPARK_Hide.
(Scan): recognize special comment starting with '#' and followed by
SPARK keyword "hide" as a HIDE directive.
2011-08-02 Yannick Moy <moy@adacore.com>
* types.ads, erroutc.ads: Minor reformatting.
2011-08-02 Vincent Celier <celier@adacore.com>
* link.c: Add response file support for cross platforms.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177179
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:17:00 +0000 (15:17 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
in an association, set parent field of copy before partial analysis.
* sem_res.adb (Resolve_Slice): create reference to itype only when
expansion is enabled.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177178
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:15:07 +0000 (15:15 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
for new flag denoting which subprogram bodies are in ALFA
* restrict.adb, sem_ch7.adb: Update comment
* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
sem_ch9.adb, sem_res.adb: Add calls to
Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
* sem_ch6.adb (Analyze_Function_Return): add calls to
Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
middle of the body, and extended return.
(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
False when missing return.
(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
to True for subprograms whose spec is in ALFA. Remove later on the flag
on the entity used for a subprogram body when there exists a separate
declaration.
* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
False, otherwise do nothing.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177177
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:12:44 +0000 (15:12 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
2011-08-02 Yannick Moy <moy@adacore.com>
* sem_ch4.ads: minor formatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177176
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:10:17 +0000 (15:10 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
opt.ads: cleanup of SPARK mode
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177175
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:07:10 +0000 (15:07 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
types.
* einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
(Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
* sem_ch3.adb
(Analyze_Object_Declaration): set Is_In_ALFA flag for objects
(Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
(Constrain_Integer): set Is_In_ALFA flag for integer subtypes
(Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
types.
(Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
non-static range.
* sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
functions whose return type is not in ALFA.
(Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
specifications.
(Process_Formals): unset Is_In_ALFA flag for subprograms if a
parameter's type is not in ALFA.
* stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
types are in ALFA.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177174
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:04:46 +0000 (15:04 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch6 (Analyze_Expression_Function): treat the function as
Inline_Always, and introduce a subprogram declaration for it when it is
not a completion.
* inline.adb (Add_Inlined_Body): recognize bodies that come from
expression functions, so that the back-end can determine whether they
can in fact be inlined.
* sem_util.adb (Is_Expression_Function): predicate to determine whether
a function body comes from an expression function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177173
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 15:00:07 +0000 (15:00 +0000)]
2011-08-02 Gary Dismukes <dismukes@adacore.com>
* sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
null exclusions to test Can_Never_Be_Null on the anonymous access types
of the formals rather than testing the formals themselves. Exclude this
check in cases where the Old_Formal is marked as a controlling formal,
to avoid issuing spurious errors for bodies completing dispatching
operations (due to the flag not getting set on controlling access
formals in body specs).
(Find_Corresponding_Spec): When checking full and subtype conformance of
subprogram bodies in instances, pass Designated and E in that order, for
consistency with the expected order of the formals (New_Id followed by
Old_Id).
2011-08-02 Robert Dewar <dewar@adacore.com>
* sem_ch8.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177172
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:56:42 +0000 (14:56 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
primitive operations of class-wide actuals.
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_atag.ads, exp_atag.adb
(Build_Common_Dispatching_Select_Statements): Remove argument Loc
since its value is implicitly passed in argument Typ.
* exp_disp.adb (Make_Disp_Conditional_Select_Body,
Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
Build_Common_Dispatching_Select_Statements.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177171
138bc75d-0d04-0410-961f-
82ee72b054a4
ktietz [Tue, 2 Aug 2011 14:55:47 +0000 (14:55 +0000)]
* gimple.c (canonicalize_cond_expr_cond): Handle cast from
boolean-type.
(ssa_forward_propagate_and_combine): Interprete result of
forward_propagate_comparison.
* gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
boolean-typed operands for comparisons.
* gcc.dg/tree-ssa/forwprop-15.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177170
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:54:14 +0000 (14:54 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177169
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:50:56 +0000 (14:50 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* sem_res.adb: Minor reformatting.
* sem_prag.adb: Minor reformatting.
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_atag.adb, exp_atags.ads
(Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
by the tagged type Entity. Required to use this routine in the VM
targets since we do not have available the Tag entity in the VM
platforms.
* exp_ch6.adb
(Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
Ada.Tags has not been previously loaded.
* exp_ch7.adb
(Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
Build_VM_TSDs if package Ada.Tags has not been previously loaded.
* sem_aux.adb
(Enclosing_Dynamic_Scope): Add missing support to handle the full
view of enclosing scopes. Required to handle enclosing scopes that
are synchronized types whose full view is a task type.
* exp_disp.adb
(Build_VM_TSDs): Minor code improvement to avoid generating and
analyzing lists with empty nodes.
(Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
(Make_Disp_Conditional_Select_Body): Add support for VM targets.
(Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
(Make_Disp_Timed_Select_Body): Add support for VM targets.
(Make_Select_Specific_Data_Table): Add support for VM targets.
(Make_VM_TSD): Generate code to initialize the SSD structure of
the TSD.
2011-08-02 Yannick Moy <moy@adacore.com>
* lib-writ.adb (Write_ALI): when ALFA mode is set, write local
cross-references section in ALI.
* lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
(enclosing subprogram), Slc (location of Sub) and Sun (unit number of
Sub).
(Enclosing_Subprogram_Or_Package): new function to return the enclosing
subprogram or package entity of a node
(Is_Local_Reference_Type): new function returns True for references
selected in local cross-references.
(Lt): function extracted from Lt in Output_References
(Write_Entity_Name): function extracted from Output_References
(Generate_Definition): generate reference with type 'D' for definition
of objects (object declaration and parameter specification), with
appropriate locations and units, for use in local cross-references.
(Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
references of type 'I' for initialization in object definition.
(Output_References): move part of function Lt and procedure
Write_Entity_Name outside of the body. Ignore references of types 'D'
and 'I' introduced for local cross-references.
(Output_Local_References): new procedure to output the local
cross-references sections.
(Lref_Entity_Status): new array defining whether an entity is a local
* sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
with 'I' type when initialization expression is present.
* get_scos.adb, get_scos.ads: Correct comments and typos
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177168
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:46:28 +0000 (14:46 +0000)]
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
the JVM target.
* exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
the JVM target.
* exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
TSD support.
2011-08-02 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
(No_Space_Img): New function
(Find_Excluded_Sources): When reading from a file, record the file name
and the line number for each excluded source.
(Mark_Excluded_Sources): When reporting an error, if the excluded
sources were read from a file, include file name and line number in
the error message.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177167
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Tue, 2 Aug 2011 14:44:06 +0000 (14:44 +0000)]
Check __x86_64__ instead of __LP64__ for x86 futex.
2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
* config/linux/x86/futex.h: Check __x86_64__ instead of
__LP64__.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177166
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:43:43 +0000 (14:43 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177165
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:42:28 +0000 (14:42 +0000)]
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
generation of TSDs to the DOTNET compiler.
* exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
generation of TSDs to the DOTNET compiler.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177164
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:41:13 +0000 (14:41 +0000)]
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
record of all the tagged types declared inside library level package
declarations, library level package bodies or library level subprograms.
* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
associated with a given tagged type.
(Build_VM_TSDs): New subprogram.
* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
compilation units that are subprograms.
* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
compilation units that are package bodies.
(Expand_N_Package_Declaration): Generate TSDs of the main compilation
units that are a package declaration or a package instantiation.
* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
reorganization to improve the error generated by the frontend when the
function Ada.Tags.Secondary_Tag is not available.
* rtsfind.ads (RE_Register_TSD): New runtime entity.
* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177163
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:39:06 +0000 (14:39 +0000)]
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
2011-08-02 Robert Dewar <dewar@adacore.com>
* s-imenne.ads: Minor reformatting.
2011-08-02 Robert Dewar <dewar@adacore.com>
* a-stunau.ads: Add pragma Suppress_Initialization for Big_String
* freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
* s-stalib.ads: Add pragma Suppress_Initialization for Big_String
2011-08-02 Robert Dewar <dewar@adacore.com>
* einfo.ads (Materialize_Entity): Document this is only for renamings
* exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
required debug information in the case where we transform the object
declaration into a renaming declaration.
* exp_ch4.adb (Expand_Concatenate): Generate debug info for result
object
* exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
Materialize_Entity.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177162
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:35:51 +0000 (14:35 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb (Suppress_Initialization): Replaces
Suppress_Init_Procs.
* exp_ch3.adb, exp_disp.adb, freeze.adb: Use
Suppress_Initialization/Initialization_Suppressed.
* gnat_rm.texi: New documentation for pragma Suppress_Initialization
* sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
* sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
* sem_prag.adb: New processing for pragma Suppress_Initialization.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177161
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:30:35 +0000 (14:30 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177160
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:28:32 +0000 (14:28 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
only have inheritable classwide pre/postconditions.
2011-08-02 Javier Miranda <miranda@adacore.com>
* a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
* rtsfind.ads (RE_Check_TSD): New runtime entity.
* exp_disp.adb (Make_DT): Generate call to the new runtime routine that
checks if the external tag of a type is the same as the external tag
of some other declaration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177159
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 14:02:45 +0000 (14:02 +0000)]
2011-08-02 Thomas Quinot <quinot@adacore.com>
* s-taskin.ads: Minor reformatting.
2011-08-02 Emmanuel Briot <briot@adacore.com>
* g-comlin.adb (Display_Help): swap the order in which it prints the
short help and the general usage.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
the aspect declarations and attach them to the generic copy for
subsequent analysis.
(Analyze_Subprogram_Instantiation): copy explicitly the aspect
declarations of the generic tree to the new subprogram declarations.
* sem_attr.adb (Check_Precondition_Postcondition): recognize
conditions that apply to a subprogram instance.
2011-08-02 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
private type with a tagged full view is not derived in the immediate
scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177157
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:51:43 +0000 (13:51 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb: Minor reformatting.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
Ada2012 iterator, the loop will be rewritten during expansion into a
while loop with a cursor and an element declaration. Do not analyze the
body in this case, because if the container is for indefinite types the
actual subtype of the elements will only be determined when the cursor
declaration is analyzed.
2011-08-02 Arnaud Charlet <charlet@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
size/alignment related attributes in CodePeer_Mode.
2011-08-02 Gary Dismukes <dismukes@adacore.com>
* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
Prepend_Element, since this can result in the operation getting the
wrong slot in the full type's dispatch table if the full type has
inherited operations. The incomplete type's operation will get added
to the proper position in the full type's primitives
list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
(Process_Incomplete_Dependents): Add Is_Primitive test when checking for
dispatching operations, since there are cases where nonprimitive
subprograms can get added to the list of incomplete dependents (such
as subprograms in nested packages).
* sem_ch6.adb (Process_Formals): First, remove test for being in a
private part when determining whether to add a primitive with a
parameter of a tagged incomplete type to the Private_Dependents list.
Such primitives can also occur in the visible part, and should not have
been excluded from being private dependents.
* sem_ch7.adb (Uninstall_Declarations): When checking the rule of
RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
list of a Taft-amendment incomplete type is a primitive before issuing
an error that the full type must appear in the same unit. There are
cases where nonprimitives can be in the list (such as subprograms in
nested packages).
* sem_disp.adb (Derives_From): Use correct condition for checking that
a formal's type is derived from the type of the corresponding formal in
the parent subprogram (the condition was completely wrong). Add
checking that was missing for controlling result types being derived
from the result type of the parent operation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177156
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:46:38 +0000 (13:46 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* errout.adb (First_Node): minor renaming
* restrict.adb (Check_Formal_Restriction): put restriction warning on
first node.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177155
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:43:04 +0000 (13:43 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
before accessing operands.
* sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
decide whether an initialization expression respects SPARK rules, as
the plain node is the expanded one. This allows for more valid warnings
to be issued.
* gnat_rm.texi: Minor update.
2011-08-02 Arnaud Charlet <charlet@adacore.com>
* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
previous change.
2011-08-02 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_ch4.adb: Minor reformatting.
2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
loop statements and the element renaming declaration with a block when
the element type is controlled.
2011-08-02 Yannick Moy <moy@adacore.com>
* sinfo.ads: Minor formatting.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Add_Association): if the association has a box and no
expression, use the Sloc of the aggregate itself for the new
association.
* errout.adb (First_Node): Exclude nodes with no Sloc, and always use
the Original_Node.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177153
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:39:08 +0000 (13:39 +0000)]
2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
When a container is provided via a function call, generate a renaming
of the function result. This avoids the creation of a transient scope
and the premature finalization of the container.
* exp_ch7.adb (Is_Container_Cursor): Removed.
(Wrap_Transient_Declaration): Remove the supression of the finalization
of the list controller when the declaration denotes a container cursor,
it is not needed.
2011-08-02 Yannick Moy <moy@adacore.com>
* restrict.adb (Check_Formal_Restriction): only issue a warning if the
node is from source, instead of the original node being from source.
* sem_aggr.adb
(Resolve_Array_Aggregate): refine the check for a static expression, to
recognize also static ranges
* sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
Array_Type_Declaration): postpone the test for the type being a subtype
mark after the type has been resolved, so that component-selection and
expanded-name are discriminated.
(Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
to distinguish the case of an iteration scheme, so that an error is
issed on a non-static range in SPARK except in an iteration scheme.
* sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
In_Iter_Schm = True.
* sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
user-defined operators so that they are allowed in renaming
* sem_ch8.adb
(Find_Selected_Component): refine the check for prefixing of operators
so that they are allowed in renaming. Move the checks for restrictions
on selector name after analysis discriminated between
component-selection and expanded-name.
* sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
concatenation argument of string type if it is static.
* sem_util.adb, sem_util.ads
(Check_Later_Vs_Basic_Declarations): add a new function
Is_Later_Declarative_Item to decice which declarations are allowed as
later items, in the two different modes Ada 83 and SPARK. In the SPARK
mode, add that renamings are considered as later items.
(Enclosing_Package): new function to return the enclosing package
(Enter_Name): correct the rule for homonyms in SPARK
(Is_SPARK_Initialization_Expr): default to returning True on nodes not
from source (result of expansion) to avoid issuing wrong warnings.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* errout.adb: On anything but an expression First_Node returns its
argument.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177152
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:34:00 +0000 (13:34 +0000)]
2011-08-02 Pascal Obry <obry@adacore.com>
* prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
Set the associated loop as the related expression of internally
generated cursors.
* exp_ch7.adb (Is_Container_Cursor): New routine.
(Wrap_Transient_Declaration): Supress the finalization of the list
controller when the declaration denotes a container cursor.
2011-08-02 Yannick Moy <moy@adacore.com>
* opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
command line now.
* par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
expression is a simple expression. This check cannot be performed in
the semantics, so just drop it.
(P_Index_Or_Discriminant_Constraint): move check that the index or
discriminant is a subtype mark to Analyze_Subtype_Declaration in the
semantics. Other cases were previously checked in the semantics.
* par-ch4.adb (P_Name): move checks that a selector name is not
character literal or an operator symbol to Find_Selected_Component in
the semantics
* par-ch5.adb (Parse_Decls_Begin_End): move check that basic
declarations are not placed after later declarations in a separate
procedure in Sem_Util (possibly not the best choice?), to be used both
during parsing, for Ada 83 mode, and during semantic analysis, for
SPARK mode.
* par-endh.adb (Check_End): move check that end label is not missing
to Process_End_Label in the semantics
* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
the special case for SPARK restriction
* par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
* restrict.adb, restrict.ads (Check_Formal_Restriction): add a
parameter Force to issue the error message even on internal node (used
for generated end label). Call Check_Restriction to check when an error
must be issued. In SPARK mode, issue an error message even if the
restriction is not set.
(Check_Restriction): new procedure with an additional out parameter to
inform the caller that a message has been issued
* sem_aggr.adb: Minor modification of message
* sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
instead of issuing an error message directly
* sem_ch3.adb (Analyze_Declarations): move here the check that basic
declarations are not placed after later declarations, by calling
Check_Later_Vs_Basic_Declarations
(Analyze_Subtype_Declaration): move here the check that an index or
discriminant constraint must be a subtype mark. Change the check that
a subtype of String must start at one so that it works on subtype marks.
* sem_ch4.adb (Analyze_Call): move here the check that a named
association cannot follow a positional one in a call
* sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
instead of issuing an error message directly
* sem_ch8.adb (Find_Selected_Component): move here the check that a
selector name is not a character literal or an operator symbol. Move
here the check that the prefix of an expanded name cannot be a
subprogram or a loop statement.
* sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
procedure called from parsing and semantics to check that basic
declarations are not placed after later declarations
(Process_End_Label): move here the check that end label is not missing
2011-08-02 Arnaud Charlet <charlet@adacore.com>
* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
representation clause in codepeer mode, since it confuses CodePeer and
does not bring useful info.
2011-08-02 Ed Falis <falis@adacore.com>
* init.c: initialize fp hw on MILS.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* errout.adb (First_Node): for bodies, return the node itself (small
optimization). For other nodes, do not check source_unit if the node
comes from Standard.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177151
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:29:08 +0000 (13:29 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* exp_ch3.adb: Minor comment additions.
* sem_ch13.adb: Minor reformatting.
2011-08-02 Arnaud Charlet <charlet@adacore.com>
* exp_pakd.adb (Expand_Packed_Element_Reference): Revert previous change
2011-08-02 Pascal Obry <obry@adacore.com>
* make.adb, makeutl.adb: Removes some superfluous directory separator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177150
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:26:46 +0000 (13:26 +0000)]
Refine previous change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177149
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:24:06 +0000 (13:24 +0000)]
Fix bootstrap with g++
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177148
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:16:09 +0000 (13:16 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* sem_attr.adb: Minor reformatting.
2011-08-02 Ed Falis <falis@adacore.com>
* init.c: Revert previous change.
2011-08-02 Robert Dewar <dewar@adacore.com>
* einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
(Has_Default_Component_Value): Removed
* einfo.ads Comment updates
(Has_Default_Aspect): Replaces Has_Default_Value
(Has_Default_Component_Value): Removed
* exp_ch13.adb
(Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
* exp_ch3.adb
(Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
(Get_Simple_Init_Val): Handle Default_Value aspect
(Needs_Simple_Initialization): Handle Default_Value aspect
* exp_ch3.ads: Needs_Simple_Initialization
* freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
* par-prag.adb (Pragma_Default[_Component]Value) Removed
* sem_ch13.adb
(Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
* sem_prag.adb (Pragma_Default[_Component]Value) Removed
* snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
package containing iteration primitives.
exp_ch5.adb (Expand_Iterator_Loop): ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177147
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:12:40 +0000 (13:12 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
"of", pre-analyze expression in case it is a function call with
finalization actions that must be placed ahead of the loop.
* exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
on an Ada2012 iterator, insert them ahead of the rewritten loop.
2011-08-02 Geert Bosch <bosch@adacore.com>
* cstand.adb (Create_Float_Types): Only consider C's long double for
Long_Long_Float, in addition to double.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177146
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:10:33 +0000 (13:10 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
Minor reformatting.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb: handle properly 'Result when it is a prefix of an
indexed component.
2011-08-02 Javier Miranda <miranda@adacore.com>
* einfo.ads, einfo.adb
(Original_Access_Type): Move this attribute to Node26 since there was
an undocumented use of Node21 in E_Access_Subprogram_Type entities
which causes conflicts and breaks the generation of the .NET compiler.
(Interface_Name): Add missing documentation on JGNAT only uses of
this attribute.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177145
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:08:34 +0000 (13:08 +0000)]
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_pakd.adb (Expand_Packed_Element_Reference): Disable this routine
in CodePeer mode.
2011-08-02 Geert Bosch <bosch@adacore.com>
* cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
(Find_Back_End_Float_Type): Likewise
(Create_Back_End_Float_Types): Likewise
(Create_Float_Types): Likewise
(Register_Float_Type): Likewise
* sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
Nlist and split out type selection in new local Find_Base_Type function.
* sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
Nlist
* stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
2011-08-02 Robert Dewar <dewar@adacore.com>
* inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
alpha order).
* opt.ads: Minor comment change.
* sem_ch12.adb: Minor code reorganization.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177144
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:05:36 +0000 (13:05 +0000)]
Update dependencies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177143
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:02:09 +0000 (13:02 +0000)]
2011-08-02 Gary Dismukes <dismukes@adacore.com>
* sem_ch3.adb (Complete_Private_Subtype): Don't append the private
subtype's list of rep items to the list on the full subtype in the case
where the lists are the same.
2011-08-02 Geert Bosch <bosch@adacore.com>
* switch-c.adb (Free): New deallocation procedure to avoid implicitly
using the one from System.Strings, which also deallocates all strings.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177142
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 13:00:21 +0000 (13:00 +0000)]
2011-08-02 Geert Bosch <bosch@adacore.com>
* gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
function.
* gcc-interface/Make-lang.in: Update dependencies.
2011-08-02 Olivier Hainque <hainque@adacore.com>
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
end_locus.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177141
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 12:48:37 +0000 (12:48 +0000)]
2011-08-02 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
associated with anonymous access to subprograms.
2011-08-02 Geert Bosch <bosch@adacore.com>
* opt.ads
(Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
(Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
* prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
(Add_Symbol_Definition): Move to switch-c.adb
(Process_Command_Line_Symbol_Definitions): Adjust references to above.
* prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
(Add_Symbol_Definition): Move to switch-c.adb.
* sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
* sem_warn.adb
(Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
Move to warnsw.adb.
* sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
Move to warnsw.adb.
* switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
(Add_Symbol_Definition): Moved from Prepcomp.
* switch-c.ads: Update copyright notice. Use String_List instead of
Argument_List, removing dependency on System.OS_Lib.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177140
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 12:44:24 +0000 (12:44 +0000)]
2011-08-02 Yannick Moy <moy@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
mode on initialization expression which does not respect SPARK
restrictions.
* sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
if the tree referenced by its argument represents an initialization
expression in SPARK, suitable for initializing an object in an object
declaration.
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
internally generated access to subprogram with its associated protected
subprogram type.
* einfo.ads, einfo.adb (Original_Access_Type): New attribute.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177139
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 12:41:24 +0000 (12:41 +0000)]
2011-08-02 Geert Bosch <bosch@adacore.com>
* cstand.adb (Register_Float_Type): Print information about type to
register, if the Debug_Flag_Dot_B is set.
* debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
* rtsfind.ads (RE_Max_Base_Digits): New run time entity.
* sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
with a requested precision of more than Max_Digits digits and no more
than Max_Base_Digits digits, if a range specification is present and the
Predefined_Float_Types list has a suitable type to derive from.
* sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
case of type completion with pragma Import
* sem_prag.adb
(Process_Import_Predefined_Type): Processing to complete a type
with pragma Import. Currently supports floating point types only.
(Set_Convention_From_Pragma): Do nothing without underlying type.
(Process_Convention): Guard against absence of underlying type,
which may happen when importing incomplete types.
(Process_Import_Or_Interface): Handle case of importing predefined
types. Tweak error message.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177138
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 12:36:58 +0000 (12:36 +0000)]
2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
functions to previous change. Reorganize code slightly.
2011-08-02 Geert Bosch <bosch@adacore.com>
* back_end.ads (Register_Type_Proc): New call back procedure type for
allowing the back end to provide information about available types.
(Register_Back_End_Types): New procedure to register back end types.
* back_end.adb (Register_Back_End_Types): Call the back end to enumerate
available types.
* cstand.adb (Back_End_Float_Types): New list for floating point types
supported by the back end.
(Build_Float_Type): Add extra parameter for Float_Rep_Kind.
(Copy_Float_Type): New procedure to make new copies of predefined types.
(Register_Float_Type): New call back procedure to populate the BEFT list
(Find_Back_End_Float_Type): New procedure to find a BEFT by name
(Create_Back_End_Float_Types): New procedure to populate the BEFT list.
(Create_Float_Types): New procedure to create entities for floating
point types predefined in Standard, and put these and any remaining
BEFTs on the Predefined_Float_Types list.
* stand.ads (Predefined_Float_Types): New list for predefined floating
point types that do not have declarations in package Standard.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177137
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 12:32:54 +0000 (12:32 +0000)]
2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Get_Code_Unit_Entity): New local function. Returns the
entity node for the unit containing the parameter.
(Add_Inlined_Body): Use it to find the unit containing the subprogram.
(Add_Inlined_Subprogram): Likewise.
* gcc-interface/Make-lang.in: Update dependencies.
2011-08-02 Thomas Quinot <quinot@adacore.com>
* s-stusta.adb (Print): Make sure Pos is always initialized to a
suitable value.
2011-08-02 Ed Falis <falis@adacore.com>
* init.c: Fix conditional compilation so that the fp initialization is
peformed for the MILS VxWorks Guest OS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177136
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 12:26:47 +0000 (12:26 +0000)]
2011-08-02 Geert Bosch <bosch@adacore.com>
* a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
* sem_type.adb (Covers): Move trivial case to the top and reuse the
computed value of Base_Type.
2011-08-02 Yannick Moy <moy@adacore.com>
* restrict.adb (Check_Restriction): issue an error for any use of
class-wide, even if the No_Dispatch restriction is not set.
* sem_aggr.adb: Correct typos in comments and messages in formal mode
* sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
when completing a private extension, the type named in the private part
is not the same as that named in the visible part.
* sem_res.adb (Resolve_Call): issue an error in formal mode on the use
of an inherited primitive operations of a tagged type or type extension
that returns the tagged type.
* sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
function which returns True for an implicit operation inherited by the
derived type declaration for the argument type.
(Is_SPARK_Object_Reference): move to appropriate place in alphabetic
order.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177135
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 12:24:07 +0000 (12:24 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
Process_Bounds, to perform analysis with expansion of a range or an
expression that is the iteration scheme for a loop.
(Analyze_Iterator_Specification): If domain of iteration is given by a
function call with a controlled result, as is the case if call returns
a predefined container, ensure that finalization actions are properly
generated.
* par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177134
138bc75d-0d04-0410-961f-
82ee72b054a4
gjl [Tue, 2 Aug 2011 12:17:43 +0000 (12:17 +0000)]
* config/avr/libgcc.S: Gather related function in the
same input section.
__divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
references.
(__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
__udivmodsi4, __divmodsi4, __prologue_saves__,
__epilogue_restores__, _exit, __tablejump2__, __tablejump__,
__do_copy_data, __do_clear_bss, __do_global_ctors,
__do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177133
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 10:44:29 +0000 (10:44 +0000)]
2011-08-02 Javier Miranda <miranda@adacore.com>
* sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
* gcc-interface/Make-lang.in: Update dependencies.
2011-08-02 Javier Miranda <miranda@adacore.com>
* sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
determine if the analysis is performed using N or Original_Node (N).
* exp_util.adb (Side_Effect_Free): Code cleanup since the new
functionality of routine Is_Variable avoids code duplication.
* checks.adb (Determine_Range): Handle temporaries generated by
Remove_Side_Effects.
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
expansion of the condition. Required since the previous analysis was
done with expansion disabled (see Resolve_Quantified_Expression) and
hence checks were not inserted and record comparisons have not been
expanded.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177132
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 10:40:00 +0000 (10:40 +0000)]
2011-08-02 Ed Falis <falis@adacore.com>
* s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
Update header.
2011-08-02 Bob Duff <duff@adacore.com>
* opt.ads: Minor comment fix.
2011-08-02 Bob Duff <duff@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation,
Analyze_Subprogram_Instantiation): Turn off style checking while
analyzing an instance. Whatever style checks that apply to the generic
unit should apply, so it makes no sense to apply them in an instance.
This was causing trouble when compiling an instance of a runtime
unit that violates the -gnatyO switch.
* stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
one of the two case statements, causing spurious errors.
2011-08-02 Robert Dewar <dewar@adacore.com>
* uname.adb: Minor reformatting.
* gnatcmd.adb: Minor reformatting.
* exp_attr.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177131
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 10:36:15 +0000 (10:36 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
No_Dispatching_Calls, do not look for the Assign primitive, because
predefined primitives are not created in this case.
2011-08-02 Bob Duff <duff@adacore.com>
* stylesw.ads: Minor comment fixes.
2011-08-02 Robert Dewar <dewar@adacore.com>
* freeze.adb (Add_To_Result): New procedure.
2011-08-02 Jose Ruiz <ruiz@adacore.com>
* exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
time, if the specific run-time routines for handling streams of strings
are not available, use the default mechanism.
2011-08-02 Arnaud Charlet <charlet@adacore.com>
* s-regpat.ads: Fix typo.
2011-08-02 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
not null, call it to create the in memory config project file without
parsing an existing default config project file.
2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
* atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_elim.adb: an abstract subprogram does not need an eliminate
pragma for its descendant to be eliminable.
2011-08-02 Ed Falis <falis@adacore.com>
* init.c: revert to handling before previous checkin for VxWorks
* s-intman-vxworks.adb: delete unnecessary declarations related to
using Ada interrupt facilities for handling signals.
Delete Initialize_Interrupts. Use __gnat_install_handler instead.
* s-intman-vxworks.ads: Import __gnat_install_handler as
Initialize_Interrupts.
* s-taprop-vxworks.adb: Delete Signal_Mask.
(Abort_Handler): change construction of mask to unblock exception
signals.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177130
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 10:31:12 +0000 (10:31 +0000)]
2011-08-02 Jerome Guitton <guitton@adacore.com>
* a-except-2005.adb (Raise_From_Signal_Handler): Call
Debug_Raise_Exception before propagation starts.
2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
* exp_ch6.adb (Expand_Call): Guard restriction checks with a call
to Restriction_Check_Required.
* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
* sem_res.adb (Resolve_Call): Likewise.
* sem_attr.adb (Check_Stream_Attribute): Likewise.
2011-08-02 Bob Duff <duff@adacore.com>
* stylesw.ads: Update comment.
* style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
* errout.ads: Remove obsolete comment.
2011-08-02 Javier Miranda <miranda@adacore.com>
* einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
(Set_Is_Safe_To_Reevaluate): new procedure.
* sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
assignment is allowed on safe-to-reevaluate variables.
(Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
temporary created to remove side effects in expressions that use
the secondary stack as safe-to-reevaluate.
* exp_util.adb (Side_Effect_Free): Add missing code to handle well
variables that are not true constants.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177129
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 10:27:16 +0000 (10:27 +0000)]
2011-08-02 Robert Dewar <dewar@adacore.com>
* sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
sem_res.adb, sem_ch6.adb: Minor reformatting.
2011-08-02 Jerome Guitton <guitton@adacore.com>
* a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177127
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 2 Aug 2011 10:25:26 +0000 (10:25 +0000)]
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
not set Overridden_Operation if subprogram is an initialization
procedure.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177126
138bc75d-0d04-0410-961f-
82ee72b054a4