2012-06-12 Robert Dewar <dewar@adacore.com>
* gcc-interface/Make-lang.in: Update dependencies.
* sem_ch9.ads, einfo.adb, einfo.ads, sem_prag.adb, freeze.adb,
sem_util.adb, sem_ch13.adb, sem_ch13.ads, exp_ch3.adb: Add comments.
Minor reformatting.
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Instantiate_Formal_Subprogram): Remove code that
implements AI05-0296, because the actual may be overloaded.
* sem_ch8.adb (Analyze_Subprogram_Renaming): and move it here,
to be applied once the actual subprogram is properly resolved.
From-SVN: r188456
2012-06-12 Robert Dewar <dewar@adacore.com>
* switch-c.adb, a-exexpr-gcc.adb: Minor reformatting.
2012-06-12 Vincent Pucci <pucci@adacore.com>
* checks.adb (Tag_Checks_Suppressed): Remove Kill_Tag_Checks check.
* einfo.adb (Universal_Aliasing): Apply to the implementation
base type instead of the base type.
(Get_Rep_Item_For_Entity):
Return a pragma if the pragma node is not present in the Rep
Item chain of the parent.
(Kill_Tag_Checks): Removed (unused flag).
(Set_Kill_Tag_Checks): Removed.
(Get_First_Rep_Item): New routine.
(Get_Rep_Pragma_For_Entity): New routine.
(Has_Rep_Item): New routine.
(Has_Rep_Pragma_For_Entity): New routine.
(Present_In_Rep_Item): New routine.
* einfo.ads (Kill_Tag_Checks): Removed.
(Set_Kill_Tag_Checks): Removed.
(Get_First_Rep_Item): New routine.
(Get_Rep_Pragma_For_Entity): New routine.
(Has_Rep_Item): New routine.
(Has_Rep_Pragma_For_Entity): New routine.
(Present_In_Rep_Item): New routine.
* exp_attr.adb, sem_attr.adb: Attribute_CPU,
Attribute_Dispatching_Domain and Attribute_Interrupt_Priority
case added.
* exp_ch13.adb (Expand_N_Attribute_Definition_Clause): For
attribute Storage_Size, insert the new assignement statement
after the Size variable declaration.
* exp_ch3.adb (Build_Init_Statements): Fill the CPU,
Dispatching_Domain, Priority and Size components with the Rep
Item expression (if any).
* exp_ch9.adb (Expand_N_Task_Type_Declaration): _CPU,
_Priority, _Domain fields are always present in the
corresponding record type.
(Find_Task_Or_Protected_Pragma): Removed.
(Get_Relative_Deadline_Pragma): New routine.
(Make_Initialize_Protection): Find_Task_Or_Protected_Pragma removed.
(Make_Task_Create_Call): Check CPU, Size or
Dispatching_Domain Rep Item is present using new routine Has_Rep_Item.
* freeze.adb (Freeze_All): Push_Scope_And_Install_Discriminants
and Uninstall_Discriminants_And_Pop_Scope calls added.
(Freeze_Entity): Evaluate_Aspects_At_Freeze_Point call added.
* sem_aux.adb (Nearest_Ancestor): Retrieve the nearest ancestor
for private derived types.
* sem_ch13.adb (Analyze_Aspect_Specifications): Clean-up
and reordering. Delay analysis for all aspects (except some
peculiar cases).
(Analyze_Attribute_Definition_Clause):
Attribute_CPU, Attribute_Dispatching_Domain,
Interrupt_Priority and Attribute_Priority cases added.
(Analyze_Freeze_Entity): Push_Scope_And_Install_Discriminants
and Uninstall_Discriminants_And_Pop_Scope calls added.
(Check_Aspect_At_Freeze_Point): Reordering and clean-up.
(Duplicate_Clause): Issue an explicit error msg when the current
clause duplicates an aspect specification, an attribute definition
clause or a pragma.
(Evaluate_Aspects_At_Freeze_Point): New routine.
* sem_ch13.ads (Evaluate_Aspects_At_Freeze_Point): New routine.
* sem_ch9.adb, sem_ch9.ads (Install_Discriminants): New routine.
(Push_Scope_And_Install_Discriminants): New routine.
(Uninstall_Discriminants): New routine.
(Uninstall_Discriminants_And_Pop_Scope): New routine.
* sem_prag.adb (Check_Duplicate_Pragma): Issue an explicit error
msg when the current pragma duplicates an aspect specification,
an attribute definition clause or a pragma.
(Analyze_Pragma): Remove use of flags Has_Pragma_CPU,
Has_Pragma_Priority and Has_Pragma_Dispatching_Domain.
* sem_util.adb (Compile_Time_Constraint_Error): Don't complain
about the type if the corresponding concurrent type doesn't come
from source.
* sinfo.adb, sinfo.ads (Has_Pragma_CPU): Removed.
(Has_Pragma_Dispatching_Domain): Removed.
(Has_Pragma_Priority): Removed.
(Has_Task_Info_Pragma): Removed.
(Has_Task_Name_Pragma): Removed.
(Set_Has_Pragma_CPU): Removed.
(Set_Has_Pragma_Dispatching_Domain): Removed.
(Set_Has_Pragma_Priority): Removed.
(Set_Has_Task_Info_Pragma): Removed.
(Set_Has_Task_Name_Pragma): Removed.
* snames.adb-tmpl (Get_Pragma_Id): Pragma_CPU,
Pragma_Dispatching_Domain and Pragma_Interrupt_Priority added.
(Is_Pragma_Name): Name_CPU, Name_Dispatching_Domain and
Name_Interrupt_Priority added.
* snames.ads-tmpl: Name_Dispatching_Domain, Name_CPU
and Name_Interrupt_Priority moved to the list of
Attribute_Name. Attribute_CPU, Attribute_Dispatching_Domain and
Attribute_Interrupt_Priority added. Pragma_Dispatching_Domain,
Pragma_CPU and Pragma_Interrupt_Priority moved to the end of
the Pragma_Name list.
From-SVN: r188455
2012-06-12 Robert Dewar <dewar@adacore.com>
* sem_ch12.adb: Minor reformatting.
2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
* opt.ads (Inline_Level): New variable.
* gnat1drv.adb (Adjust_Global_Switches): Set it based on optimization
level if it has not been set by the user.
* switch-c.adb (Scan_Front_End_Switches): Accept -gnatn1 and -gnatn2
and set Inline_Level accordingly.
* inline.adb (Add_Inlined_Body): Declate new Inline_Level_Type type.
(Must_Inline): Return Inline_Level_T instead of Boolean to indicate
whether the package of the inlined subprogram must be compiled.
If Inline_Level is set to 1, only compile packages of subprograms
directly called from the main unit.
* usage.adb (Usage): Adjust line for -gnatn switch.
* gnat_ugn.texi (Switches for gcc): Document -gnatn1 and -gnatn2.
From-SVN: r188451
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Instantiate_Formal_Subprogram): Do not apply
AI05-296 if the actual is overloaded. In this case The rule must
be applied after resolution, in Analyze_Subprogram_Renaming.
From-SVN: r188450
2012-06-12 Robert Dewar <dewar@adacore.com>
* stringt.adb: Minor reformatting.
2012-06-12 Robert Dewar <dewar@adacore.com>
* ali-util.adb, stringt.ads: Minor reformatting.
2012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Process_Declarations): Handle the case where
the original context has been wrapped in a block to avoid
interference between exception handlers and At_End handlers.
(Wrap_HSS_In_Block): Mark the block which contains the original
statements of the context as being a finalization wrapper.
* sinfo.adb (Is_Finalization_Wrapper): New routine.
(Set_Is_Finalization_Wrapper): New routine.
* sinfo.ads: Add new attribute Is_Finalization_Wrapper applicable
to block statemnts.
(Is_Finalization_Wrapper): New routine with corresponding pragma Inline.
(Set_Is_Finalization_Wrapper): New routine with corresponding pragma
Inline.
2012-06-12 Steve Baird <baird@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): No longer need to set
Exception_Extra_Info in CodePeer_Mode.
From-SVN: r188449
* alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
(nonoverlapping_memrefs_p): Don't call it here ...
(true_dependence_1): ... but here.
testsuite/
* gcc.dg/torture/alias-1.c: New test.
From-SVN: r188448
2012-06-12 Robert Dewar <dewar@adacore.com>
* sem_dist.adb, exp_ch7.adb, sem_type.adb, exp_attr.adb,
sinfo.ads, sem_ch7.adb, exp_alfa.adb, sem_scil.adb, sem_ch12.adb,
sem_util.adb, sem_res.adb, sem_attr.adb, sem_elab.adb, exp_ch6.adb,
sem_ch4.adb, sem_warn.adb, scil_ll.adb, exp_cg.adb: Minor code
reorganization.
2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
* s-tasini.ads: Minor fix in comment.
2012-06-12 Thomas Quinot <quinot@adacore.com>
* freeze.adb (Freeze_Record_Type): Warn on record with
Scalar_Storage_Order if there is no placed component.
2012-06-12 Thomas Quinot <quinot@adacore.com>
* sem_ch3.adb: Minor comment fix.
2012-06-12 Vincent Celier <celier@adacore.com>
* ali-util.adb (Time_Stamp_Mismatch): In minimal recompilation
mode, use Stringt Mark and Release to avoid growing the Stringt
internal tables uselessly.
* stringt.adb (Strings_Last): New global variable
(String_Chars_Last): New global variable.
(Mark, Release): New procedures.
* stringt.ads (Mark, Release) New procedures.
From-SVN: r188445
2012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Process_Transient_Objects): Renamed constant
Requires_Hooking to Must_Hook and replace all occurrences of the name.
(Requires_Hooking): New routine. Detect all contexts that require
transient variable export to the outer finalizer due to a potential
exception.
2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
* einfo.ads: Minor correction in comment.
From-SVN: r188444
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb: Small adjustment.
2012-06-12 Vincent Celier <celier@adacore.com>
* vms_cmds.ads (Command_Type): New enumeration value Test
* vms_conv.adb (Initialize): Add component at index Test in
Command_List
* vms_data.ads (Test_Switches): New global variable for the
switches of gnattest, currently empty.
From-SVN: r188443
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Subtype_Declaration): if an incomplete
type is tagged, so is a subtype of it.
* sem_ch12.adb (Validate_Actual_Subprogram): implement AI05-0296,
concerning freeze rules in the presence of formal incomplete
types: a formal abstract subprogram cannot have an incomplete
controlling type, and the profile of the actual subprogram does
not freeze if it includes an incomplete untagged type.
From-SVN: r188442
2012-06-12 Robert Dewar <dewar@adacore.com>
* a-direct.adb: Minor reformatting.
2012-06-12 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Add missing documentation for -gnatw.v and
-gnatw.V.
2012-06-12 Thomas Quinot <quinot@adacore.com>
* sem_ch7.adb, sem_prag.adb, sem_ch12.adb, sem_ch4.adb,
sem_ch13.adb: Minor rewording of error messages for unchecked unions.
From-SVN: r188441
2012-06-12 Robert Dewar <dewar@adacore.com>
* lib-xref.ads: Minor reformatting.
2012-06-12 Pascal Obry <obry@adacore.com>
* a-direct.adb (Delete_File): Delete symbolic links silently
instead of raising the Name_Error exception when the symbolic
link is pointing to a non existent file.
From-SVN: r188440
2012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Create_Finalizer): Add the
exception reraise mechanism at the very end of the finalizer
statements. This placement ensures that all objects are finalized,
the secondary stack mark released and aborts undeferred before
propagating an exception.
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Remove_Unit_From_Visibility): if the unit is a
wrapper package. remove from visibility the original subprogram
instance.
2012-06-12 Javier Miranda <miranda@adacore.com>
* sem_prag.adb (Process_Convention): Generate reference to entity
exported to foreign language. Needed for GPS navigation.
* xref_lib.adb (Parse_Identifier_Info): Parse exported entities.
* lib-xref (Output_References): Output exported entities.
2012-06-12 Pascal Obry <obry@adacore.com>
* prj-attr.adb: Add install package and corresponding attributes.
* snames.ads-tmpl (Name_Active): New constant.
(Name_Exec_Subdir): Likewise.
(Name_Install): Likewise.
(Name_Lib_Subdir): Likewise.
(Name_Project_Subdir): Likewise.
(Name_Sources_Subdir): Likewise.
2012-06-12 Bob Duff <duff@adacore.com>
* sem_res.adb (Check_Infinite_Recursion):
Suppress spurious warning on recursion after "raise with ...".
From-SVN: r188438
2012-06-12 Thomas Quinot <quinot@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Do
not crash on illegal unchecked union that is a null record.
2012-06-12 Thomas Quinot <quinot@adacore.com>
* exp_ch4.adb (Has_Inferable_Discriminants): Reorganize code to
treat implicit dereferences with a constrained unchecked union
nominal subtype as having inferable discriminants.
From-SVN: r188437
2012-06-12 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb: Minor reformatting.
2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
* gnat_ugn.texi: Couple of minor corrections.
2012-06-12 Thomas Quinot <quinot@adacore.com>
* sem_prag.adb (Check_Variant): An empty component list is not
illegal in an unchecked union variant.
From-SVN: r188436
2012-06-12 Gary Dismukes <dismukes@adacore.com>
* projects.texi: Remove comments.
2012-06-12 Thomas Quinot <quinot@adacore.com>
* back_end.adb (Scan_Back_End_Switches): Treat -fdump-scos as
synonym of -gnateS.
(gnat_post_options): Disable gimple-based SCO generator.
* gnat_ugn.texi: Document that -gnateS is an obsolete synonym
of -fdump-scos.
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Different_Generic_Profile): new predicate for
Find_Corresponding_Spec, to handle a rare case of accidental
overloading in an instance, when the profile of a subprogram body
that depends on a formal type becomes compatible with that of
a homonym whose profile in the generic mentions the actual type.
2012-06-12 Thomas Quinot <quinot@adacore.com>
* gnat1drv.adb: Minor reformatting.
From-SVN: r188435
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Build_Explicit_Dereference): If the expression
is an entity, ensure that the type of the expression is the same
as that of the entity.
2012-06-12 Pat Rogers <rogers@adacore.com>
* projects.texi: Corrected instances of the word "build" that
should be "built" instead. Other similar changes and minor
punctuation changes.
From-SVN: r188434
2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
* sem_util.adb (Is_Atomic_Object): Return true for an atomic
component as well as a prefix which is an atomic component.
2012-06-12 Ed Schonberg <schonberg@adacore.com>
* exp_prag.adb (Expand_Pragma_Import_Or_Interface): revert previous
patch. The processing of interfacing aspects now generates a
proper Ada 2005 pragma.
* sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
Pragma_Import): revert previous patch. The processing of
interfacing aspects now generates a proper Ada 2005 pragma.
* sem_ch13.adb (Analyze_Aspect_Specifications): generate proper
pragam for aspects Convention, Import and Export. Scan list
of aspects to collect link name and external name if present,
and verify that a complete pragma can be generated.
From-SVN: r188430
2012-06-12 Richard Guenther <rguenther@suse.de>
* emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
* alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
and MEM_SIZE only refines it. Reflect that and be less conservative
if either of the latter is not known.
From-SVN: r188429
PR rtl-optimization/53589
* cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
discovery even when e->dest != target. If any LABEL_REF points
to e->dest label, redirect it to target's label.
* gcc.dg/torture/pr53589.c: New test.
From-SVN: r188428
2012-06-12 Chung-Lin Tang <cltang@codesourcery.com>
* config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
condition for generating REG_FRAME_RELATED_EXPR note.
(pop): Add code for generating REG_CFA_RESTORE,
REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
(sh_expand_epilogue): Use frame_insn() for FP to SP move.
Set 'frame_p' of calls to output_stack_adjust() to 'true'.
From-SVN: r188424
2012-06-11 Sriraman Tallam <tmsriram@google.com>
* config/i386/libgcc-bsd.ver: Version symbol __cpu_indicator_init.
* config/i386/libgcc-sol2.ver: Ditto.
* config/i386/libgcc-glibc.ver: Ditto.
* gcc.target/i386/builtin_target.c (vendor_signatures): New enum.
(check_intel_cpu_model): New function.
(check_amd_cpu_model): New function.
(check_features): New function.
(__get_cpuid_output): New function.
(check_detailed): New function.
(fn1): Rename to quick_check.
(main): Update to call quick_check and call check_detailed.
From-SVN: r188417
* doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
Mention that this hook needs to be defined for native TLS.
* doc/tm.texi: Regenerate.
From-SVN: r188404
* emit-rtl.c (init_emit_once): Iterate through the
MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
all the MIN_MODE_PARTIAL_INT modes anymore.
From-SVN: r188402
* gthr-posix.h [neither FreeBSD nor Solaris] (__gthread_active_p):
If __GLIBC__ is defined, refer to __pthread_key_create instead of
pthread_cancel.
From-SVN: r188400
(check_effective_target_sync_long_long_runtime): Use
check_effective_target_lp64 instead of
check_effective_target_powerpc64 for powerpc targets.
From-SVN: r188399
* dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
operand.
From-SVN: r188398
2012-06-11 Richard Guenther <rguenther@suse.de>
PR middle-end/53470
* tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
replace it with the first non-BLOCK context.
* g++.dg/lto/pr53470_0.C: New testcase.
* gcc.dg/lto/pr53470_0.c: Likewise.
From-SVN: r188387
2012-06-11 Richard Guenther <rguenther@suse.de>
* alias.c (aliases_everything_p): Remove.
(DIFFERENT_ALIAS_SETS_P): Likewise.
(true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
Do not use aliases_everything_p or special-case ANDs. Do not
special-case BLKmode moves.
(may_alias_p): Likewise. Handle BLKmode similar like everywhere
- for SCATCH only.
From-SVN: r188384
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Convert GNU_SIZE
to units before invoking allocatable_size_p on it.
Remove orphaned comment. Do not use ssize_int.
<E_Record_Subtype>: Traverse list in original order. Minor tweak.
(allocatable_size_p): Adjust and simplify.
(build_subst_list): Use consistent terminology throughout.
(build_variant_list): Likewise. Traverse list in original order.
(create_field_decl_from): Likewise.
(copy_and_substitute_in_size): Likewise.
(create_variant_part_from): Add comment about field list order.
* gcc-interface/utils.c (build_vms_descriptor): Do not use ssize_int.
* gcc-interface/utils2.c (build_allocator): Likewise.
From-SVN: r188382
* gcc-interface/trans.c (Identifier_to_gnu): Test Is_Elementary_Type
instead of Is_Scalar_Type for a constant with an address clause.
Do not return the underlying constant for a constant used by reference
if it holds the address of a constant and an lvalue is required.
From-SVN: r188380