Commit Graph

84943 Commits

Author SHA1 Message Date
Douglas Gregor
a2b3eb5c97 __func__.C: New.
2007-12-13  Douglas Gregor  <doug.gregor@gmail.com>

	* g++.dg/cpp0x/__func__.C: New.

From-SVN: r130911
2007-12-13 19:29:52 +00:00
Andrew Pinski
76ce039e60 re PR bootstrap/34144 (Revision 130005 causes bootstrap failure with --disable-checking)
2007-12-13  Andrew Pinski  <pinskia@gmail.com>
	    David Daney  <ddaney@avtrex.com>

	PR bootstrap/34144
	* system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
	is disabled.

Co-Authored-By: David Daney <ddaney@avtrex.com>

From-SVN: r130908
2007-12-13 19:19:17 +00:00
Jakub Jelinek
bff98546fb re PR rtl-optimization/32636 (25_algorithms/search_n/iterator.cc: miscompiled on hppa2.0w-hp-hpux11.11)
PR rtl-optimization/32636
	* df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
	regno in entry_block_defs even if HAVE_prologue && epilogue_completed.

From-SVN: r130907
2007-12-13 20:05:37 +01:00
Olga Golovanevsky
d9d9095344 Fogot to commit ipa-struct-reorg.c
From-SVN: r130906
2007-12-13 18:59:44 +00:00
Uros Bizjak
bfcd72332c re PR target/34435 (SSE2 intrinsics - emmintrin with optimisations off and type conversion error)
PR target/34435
        * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
        _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
        _mm_shuffle_epi32): Cast non-constant input values to either __m64,
        __m128, __m128i or __m128d in a macro version of the intrinsic.
        Cast constant input values to int.
        * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
        * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
        _mm_roti_epi32, _mm_roti_epi64): Ditto.
        * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
        _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
        _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
        _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
        _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
        _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
        _mm_cmpestrs, _mm_cmpestrz): Ditto.
        * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
        * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
        _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
        * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
        _mm_round_ps, _mm_round_ss): Ditto.

testsuite/ChangeLog:

        PR target/34435
        * g++.dg/other/pr34435.C: New testcase.

From-SVN: r130904
2007-12-13 19:19:38 +01:00
Arnaud Charlet
17cf398510 Restore part of patch lost for PR ada/15805:
* sem_ch3.adb (Analyze_Object_Declaration): Signal an error
	when an access to constant is used to initialize an access
	value.

From-SVN: r130903
2007-12-13 18:59:09 +01:00
Samuel Tardieu
3958c9c882 re PR ada/34360 (typo gcc/ada/Makefile.in for GNU/kFreeBSD)
gcc/ada/
	PR ada/34360
	* Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
	mlib-tgt-specific.adb.

From-SVN: r130896
2007-12-13 15:14:54 +00:00
Richard Guenther
863d2a5760 re PR middle-end/34450 (compile takes up 1.8 GB RAM at -O1)
2007-12-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34450
	* params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
	* invoke.texi (sccvn-max-scc-size): Document.
	* Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
	* tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
	on error.
	* tree-ssa-sccvn.c (params.h): Include.
	(DFS): Return true if all went well, return false as soon as
	a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
	(run_scc_vn): Return true if all went well, return false if
	we aborted during DFS.
	* tree-ssa-pre.c (execute_pre): Check if SCCVN finished
	successfully, otherwise bail out.

From-SVN: r130895
2007-12-13 14:22:23 +00:00
Olga Golovanevsky
3905a1b25a ipa-struct-reorg.c (is_candidate): Print information to dump file when the type is initialized.
2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>

	* ipa-struct-reorg.c (is_candidate): Print information to dump 
	file when the type is initialized.
	(get_stmt_accesses):  Likewise when a structure has bitfields
	or field access is too complicate.
	(safe_cond_expr_check): Likewise for unsafe condition expressions.
	(exclude_cold_structs): Likewise for cold structures.
	(collect_structures): Suppress redundant print when there are 
	no structures to transform.
	(do_reorg): Print to dump file a number of structures that 
	will be transformed.
	(dump_new_types): Print a number of new types to replace 
	an original structure type.

From-SVN: r130894
2007-12-13 13:58:18 +00:00
Olga Golovanevsky
65e79ca2f9 struct: New directory with tests for struct-reorg optimizaion.
2007-11-26  Olga Golovanevsky  <olga@il.ibm.com>

	* gcc.dg/struct: New directory with tests 
	for struct-reorg optimizaion.
	* gcc.dg/struct/struct-reorg.exp: New script.
	* gcc.dg/struct/wo_prof_array_through_pointer.c: New test.
	* gcc.dg/struct/wo_prof_malloc_size_var.c: Likewise.
	* gcc.dg/struct/wo_prof_mult_field_peeling.c: Likewise.
	* gcc.dg/struct/wo_prof_escape_arg_to_local.c: Likewise.
	* gcc.dg/struct/wo_prof_escape_return.c: Likewise.
	* gcc.dg/struct/wo_prof_escape_str_init.c: Likewise.
	* gcc.dg/struct/wo_prof_escape_substr_array.c: Likewise.
	* gcc.dg/struct/wo_prof_escape_substr_pointer.c: Likewise.
	* gcc.dg/struct/wo_prof_escape_substr_value.c: Likewise.
	* gcc.dg/struct/wo_prof_global_array.c: Likewise.
	* gcc.dg/struct/wo_prof_global_var.c: Likewise.
	* gcc.dg/struct/wo_prof_local_array.c: Likewise.
	* gcc.dg/struct/wo_prof_local_var.c: Likewise.
	* gcc.dg/struct/wo_prof_two_strs.c: Likewise.
	* gcc.dg/struct/wo_prof_single_str_global.c: Likewise.
	* gcc.dg/struct/wo_prof_single_str_local.c: Likewise.
	* gcc.dg/struct/wo_prof_single_str_pointer.c: Likewise.
	* gcc.dg/struct/w_prof_two_strs.c: Likewise.
	* gcc.dg/struct/w_prof_global_array.c: Likewise.
	* gcc.dg/struct/w_prof_global_var.c: Likewise.
	* gcc.dg/struct/w_prof_local_array.c: Likewise.
	* gcc.dg/struct/w_prof_local_var.c: Likewise.
	* gcc.dg/struct/w_prof_single_str_global.c: Likewise.
	* gcc.dg/struct/w_ratio_cold_str.c: Likewise.

From-SVN: r130893
2007-12-13 13:47:22 +00:00
Bob Duff
781859743c (Attribute_to_gnu): Check for violations of the No_Implicit_Dynamic_Code restriction.
(Attribute_to_gnu): Check for violations of the No_Implicit_Dynamic_Code
 	restriction. This checking used to be done in the front end, but is
	moved here so we can make it more accurate.

From-SVN: r130892
2007-12-13 12:33:49 +01:00
Arnaud Charlet
e9b54d6447 Resync
From-SVN: r130891
2007-12-13 12:27:52 +01:00
Golovanevsky Olga
5bb06e1856 invoke.texi (Optimiza Options): Document new -fipa-struct-reorg option and struct-reorg-cold-struct-ratio parameter.
2007-12-13  Golovanevsky Olga  <olga@il.ibm.com>

	* doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
	option and struct-reorg-cold-struct-ratio parameter.

From-SVN: r130890
2007-12-13 11:11:57 +00:00
Tobias Burnus
b446725a8a re PR libfortran/34427 (Revision 130708 breaks namelist input)
2007-12-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34427
        * io/list_read.c (read_real): Fix unwinding for namelists.

2007-12-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34427
        * gfortran.dg/namelist_42.f90: New.

From-SVN: r130889
2007-12-13 12:01:00 +01:00
Arnaud Charlet
014c009534 Update comments.
Minor reformatting.
Kill new warnings.

From-SVN: r130888
2007-12-13 11:59:30 +01:00
Arnaud Charlet
14b7d74b58 (Nkind_In): New functions.
Add support for new flags.

From-SVN: r130887
2007-12-13 11:56:34 +01:00
Arnaud Charlet
c5765b24ca Removed, no longer used
From-SVN: r130886
2007-12-13 11:53:49 +01:00
Arnaud Charlet
0ecf24f3b5 New file.
From-SVN: r130885
2007-12-13 11:52:39 +01:00
Arnaud Charlet
70e4fcc4e2 New file.
From-SVN: r130884
2007-12-13 11:50:30 +01:00
Javier Miranda
7d7af38a4b sem_ch3.ads, [...] (Check_Abstract_Overriding): Avoid generation of spurious error if parent is an interface type...
2007-12-06  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
	generation of spurious error if parent is an interface type; caused
	because predefined primitive bodies will be generated later by
	Freeze_Record_Type.
	(Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
	flag.
	(Derive_Subprograms): Handle derivations of predefined primitives
	after all the user-defined primitives to ensure that they are
	found in proper order in instantiations.
	(Add_Interface_Tag_Components, Inherit_Components): Update occurrences
	of Related_Interface to Related_Type.
	(Record_Type_Declaration): Minor reordering of calls to decorate the
	Tag component because the entity must have set its Ekind attribute
	before setting its Is_Tag attribute.
	(Analyze_Subtype_Declaration): In the case of subtypes with
	Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.

From-SVN: r130883
2007-12-13 11:48:09 +01:00
Arnaud Charlet
2242f4ddc3 i-vxwork.ads: Kill new warning on Convention C, since changing the spec would break code.
* i-vxwork.ads: Kill new warning on Convention C, since changing the
	spec would break code.

From-SVN: r130882
2007-12-13 11:46:43 +01:00
Geert Bosch
4f9720e08c s-parame-vxworks.adb: Update comments to reflect usage of this package by Nucleus.
2007-12-06  Geert Bosch  <bosch@adacore.com>

	* s-parame-vxworks.adb: 
	Update comments to reflect usage of this package by Nucleus.

From-SVN: r130881
2007-12-13 11:46:20 +01:00
Vincent Celier
405fc8e9c4 symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2007-12-06  Vincent Celier  <celier@adacore.com>

	* symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
	(Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.

From-SVN: r130880
2007-12-13 11:46:10 +01:00
Gary Dismukes
f5552c895f make.adb (Scan_Make_Arg): Add test for -aamp_target switch...
2007-12-06  Gary Dismukes  <dismukes@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
	it to the front end and setting the aamp_target environment variable
	to the switch's argument to ensure that gnaampbind and gnaamplink will
	take the specified library into account.
	(Make): Only set Check_Object_Consistency to False for JVM, not for CIL
	target, since the CIL compiler supports an "object" file (.il files).

From-SVN: r130879
2007-12-13 11:45:44 +01:00
Bob Duff
4b7908862f itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram types...
2007-12-06  Bob Duff  <duff@adacore.com>

	* itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
	types, set Can_Use_Internal_Rep appropriately, based on
	Always_Compatible_Rep_On_Target.

From-SVN: r130878
2007-12-13 11:45:14 +01:00
Robert Dewar
d776fae437 impunit.adb: Add entries for missing units
2007-12-06  Robert Dewar  <dewar@adacore.com>

	* impunit.adb: Add entries for missing units

	* Makefile.rtl: Add new run-time units.

	* Make-lang.in:  Update dependencies.

From-SVN: r130877
2007-12-13 11:44:45 +01:00
Vasiliy Fofanov
1e22f44278 g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2007-12-06  Vasiliy Fofanov  <fofanov@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	* g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.

	* s-osprim-vms.adb,
	a-calend-vms.adb: Remove pragma warning off and add pragma
	unreferenced.

From-SVN: r130876
2007-12-13 11:44:32 +01:00
Emmanuel Briot
aee21c6fec s-os_lib.ads, [...] (Normalize_Pathname): Do not compute Reference_Dir unless we actually need it.
2007-12-06  Emmanuel Briot  <briot@adacore.com>

	* s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
	Reference_Dir unless we actually need it.

From-SVN: r130875
2007-12-13 11:43:51 +01:00
Olivier Hainque
566b591edc tb-gcc.c (uw_data_t, [...]): Only define if not GCC-SJLJ eh.
2007-12-06  Olivier Hainque  <hainque@adacore.com>

	* tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
	(__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.

From-SVN: r130874
2007-12-13 11:43:33 +01:00
Matthew Heaney
8236f02792 a-cohase.ads, [...]: Document which generic formal operations are called for each operation.
2007-12-06  Matthew Heaney  <heaney@adacore.com>

	* a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
	which generic formal operations are called for each operation.

From-SVN: r130873
2007-12-13 11:42:54 +01:00
Robert Dewar
a2ad1f7960 gnat_ugn.texi: Dcoument new rules for style check comment alignment Document that suffixes may...
2007-12-06  Robert Dewar  <dewar@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Dcoument new rules for style check comment alignment
	Document that suffixes may be terminations of each others
	Add doc for -gnatw.a and -gnatw.A
	Document gnatbind -Wx switch
	Document BOM recognition
	Document pragma Implemented_By_Entry.
	Document new units.

	* gnat_rm.texi: (Favor_Top_Level): Document new pragma.
	Add doc for pragma Unreferenced suppressing no entities referenced msg
	Add documentation of GNAT.Directory_Operations.Iteration
	Add documentation of GNAT.Random_Numbers
	Add documentation for pragma Shared.
	Correct documentation for Bit_Order
	Add documentation for the Pool_Address attribute.
	Fix and improve documentation of pragma machine_attribute.
	New pragma Fast_Math
	Document BOM recognition

	* vms_data.ads: Add entries for -gnatw.a -gnatw.A
	Add /Wide_Character_Encoding for binder
	Add qualifier for the new gnatpp option --no-separate-loop-then

From-SVN: r130872
2007-12-13 11:42:14 +01:00
Vincent Celier
b1c6645b93 a-direct.adb (Create_Path): Always take '/' as a directory separator, even on Windows
2007-12-06  Vincent Celier  <celier@adacore.com>

	* a-direct.adb (Create_Path): Always take '/' as a directory separator,
	even on Windows

From-SVN: r130871
2007-12-13 11:41:38 +01:00
Robert Dewar
34a343e634 xeinfo.adb: Remove warnings
2007-12-06  Robert Dewar  <dewar@adacore.com>

	* xeinfo.adb: Remove warnings
	* xnmake.adb: Remove warnings
	* xsinfo.adb: Remove warnings
	* xtreeprs.adb: Remove warnings
	* xsnames.adb: Remove warnings

	* a-ngcoar.adb: Fix typo.
	* s-interr.adb: Minor reformatting
	* env.c: Minor reformatting.
	* g-bytswa.adb: Minor reformatting.
	* g-rannum.ads: Minor documentation improvements
	* s-tasinf-mingw.adb: Minor header fix
	* a-clrefi.adb: Minor reformatting
	* g-sttsne.ads: Minor documentation improvement
	* g-sttsne-locking.ads: Minor documentation improvement
	* g-soliop-solaris.ads: Minor documentation improvement
	* g-soliop-mingw.ads: Minor documentation improvement
	* g-soliop.ads: Minor documentation improvement
	* exp_aggr.ads: Minor reformatting
	* debug.adb: Add documentation for the gprbuild debug flags
	* exp_ch2.adb: Use Nkind_In to simplify code throughout
	* exp_pakd.adb: Minor reformatting

	* g-altive.ads, g-alleve.adb: Remove assertions.
	Add comment about minor differences between targets regarding
	floating-point operations.

	* g-thread.adb: Remove pragma unreferenced.
	* lib.ads: Minor reformatting
	* par-ch9.adb: Minor reformatting of error messages
	* sem_case.adb: Minor reformatting
	* s-fileio.adb: Minor reformattinng
	* s-vmexta.ads: Minor typo
	* vxaddr2line.adb: 
	Take into account 'Success' value as per new GNAT warning.

From-SVN: r130870
2007-12-13 11:40:58 +01:00
Robert Dewar
9b99838142 treepr.ads, treepr.adb: (pl): implement use of positive value shorthands
2007-12-06  Robert Dewar  <dewar@adacore.com>

	* treepr.ads, treepr.adb: (pl): implement use of positive value
	shorthands

From-SVN: r130869
2007-12-13 11:37:34 +01:00
Robert Dewar
c1e0259c98 tbuild.ads, tbuild.adb: Fix location of flag for unrecognized pragma message
2007-12-06  Robert Dewar  <dewar@adacore.com>

	* tbuild.ads, tbuild.adb: 
	Fix location of flag for unrecognized pragma message

From-SVN: r130868
2007-12-13 11:37:00 +01:00
Olivier Hainque
543b442821 tb-alvms.c (struct tb_entry_t, [...]): Revert back to use of Procedure Value instead of Frame Pointer as the...
2007-12-06  Olivier Hainque  <hainque@adacore.com>

	* tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
	of Procedure Value instead of Frame Pointer as the invocation
	identifier associated with the instruction pointer in each traceback
	entry.

	* g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
	TB_Entry_For): Revert back to use of Procedure Value instead of Frame
	Pointer as the invocation identifier passed to tbk$symbolize.

	* s-traent-vms.ads, s-traent-vms.adb
	(Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
	Procedure Value instead of Frame Pointer as the invocation identifier
	passed to tbk$symbolize.

From-SVN: r130867
2007-12-13 11:36:42 +01:00
Robert Dewar
46edcdb100 styleg.adb (Check_Comment): More liberal rules for comment placement
2007-12-06  Robert Dewar  <dewar@adacore.com>

	* styleg.adb (Check_Comment): More liberal rules for comment placement

From-SVN: r130866
2007-12-13 11:36:06 +01:00
Arnaud Charlet
31eee11b7c s-tassta.adb (Create_Task): Take into account tasks created by foreign threads.
* s-tassta.adb (Create_Task): Take into account tasks created by
	foreign threads.
	Code clean up: use constants instead of hard coded values.

From-SVN: r130865
2007-12-13 11:35:41 +01:00
Robert Dewar
e4b551223d s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2007-12-06  Robert Dewar  <dewar@adacore.com>

	* s-stoele.adb ("mod"): mod negative value raises Constraint_Error

From-SVN: r130864
2007-12-13 11:35:02 +01:00
Olivier Hainque
4981ffccd5 s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant with Stack_Grows_Down in System.Parameters.
2007-12-06  Olivier Hainque  <hainque@adacore.com>

	* s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
	with Stack_Grows_Down in System.Parameters. Rename Array_Address into
	Stack_Overlay_Address and document that we are using an internal
	abstraction.
	(Byte_Size, Unsigned_32_Size): Remove, now useless.
	(Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
	consistently throughout the various implementation pieces.

	* s-stausa.adb (Stack_Slots): New type, abstraction for the stack
	overlay we are using to fill the stack area with patterns.
	(Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
	(Push_Index_Step_For, Pop_Index_Step_For): Likewise.
	(Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.

From-SVN: r130863
2007-12-13 11:34:35 +01:00
Bob Duff
90de1450e5 s-soflin.ads: Apply new pragma Favor_Top_Level to all access-to-subprogram types in this package.
2007-12-06  Bob Duff  <duff@adacore.com>

	* s-soflin.ads: Apply new pragma Favor_Top_Level to all
	access-to-subprogram types in this package.

From-SVN: r130862
2007-12-13 11:34:11 +01:00
Thomas Quinot
d82d3baadf sinput-l.adb (Load_File): Disable style checks when preprocessing.
2007-12-06  Thomas Quinot  <quinot@adacore.com>

	* sinput-l.adb (Load_File): Disable style checks when preprocessing.

From-SVN: r130861
2007-12-13 11:33:25 +01:00
Thomas Quinot
968d9db361 sinput.adb (Get_Source_File_Index): Add assertion to guard against an invalid access to an uninitialized slot in...
2007-12-06  Thomas Quinot  <quinot@adacore.com>

	* sinput.adb (Get_Source_File_Index): Add assertion to guard against
	an invalid access to an uninitialized slot in the
	Source_File_Index_Table.

From-SVN: r130860
2007-12-13 11:32:56 +01:00
Bob Duff
7f0e4cdb55 sem_util.ads, [...] (Is_Concurrent_Interface): New routine.
2007-12-06  Bob Duff  <duff@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
	(Set_Convention): New procedure to set the Convention flag, and in
	addition make sure the Favor_Top_Level flag is kept in sync (all
	foreign-language conventions require Favor_Top_Level = True).
	(Collect_Abstract_Interfaces): Update occurrences of Related_Interface
	to Related_Type.
	(Collect_Interfaces_Info): Minor update to handle the two secondary
	dispatch tables. Update occurrence of Related_Interface to Related_Type.
	(Generate_Parent_Ref): Add parameter to specify entity to check
	(Is_Preelaborable_Expression): Allow the name of a discriminant to
	initialize a component of a type with preelaborable initialization.
	This includes the case of a discriminal used in such a context.
	(Is_Dependent_Component_Of_Mutable_Object): Take into account the
	latest Ada 2005 rules about renaming and 'Access of
	discriminant-dependent components.
	(Check_Nested_Access): Add handling when there are no enclosing
	subprograms (e.g. case of a package body).
	(Find_Parameter_Type): Factor routine from several other compiler files.
	Remove routine from Find_Overridden_Synchronized_Primitive.

From-SVN: r130859
2007-12-13 11:32:45 +01:00
Hristian Kirtchev
8a4444e804 sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check whether formal E is an entity which may have parameters.
2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
	whether formal E is an entity which may have parameters.

From-SVN: r130858
2007-12-13 11:32:34 +01:00
Geert Bosch
a1980be831 sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static context, so do not call Check_Non_Static_Context.
2007-12-06  Geert Bosch  <bosch@adacore.com>

	* sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
	context, so do not call Check_Non_Static_Context.

From-SVN: r130857
2007-12-13 11:32:23 +01:00
Ed Schonberg
d215a13cd9 sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an inherited operation is a defaulted...
2007-12-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
	inherited operation is a defaulted tag-indeterminate call, and there is
	a statically tagged actual, use the static tag as a controlling actual
	for the defaulted actual.

From-SVN: r130856
2007-12-13 11:32:11 +01:00
Hristian Kirtchev
3ccd94107b sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a requeue statement is dispatching.
2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
	requeue statement is dispatching. Do not emit an error when the name is
	not an entry and the context is a dispatching select. Add code to
	perform subtype conformance between the formals of the current entry
	and those of the target interface primitive.
	(Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
	Timed_Entry_Call): Analyze the triggering statement as the first step of
	the processing. If this is a dispatching select, postpone the analysis
	of all select statements until the Expander transforms the select. This
	approach avoids generating duplicate identifiers after the Expander has
	replicated some of the select statements. In case the Expander is
	disabled, perform regular analysis.
	(Check_Triggering_Statement): New routine.
	(Analyze_Requeue): Exclude any interpretations that are not entries when
	checking overloaded names in a requeue. Also test type conformance for
	matching interpretations rather than requiring subtype conformance at
	that point to conform with the RM's resolution rule for requeues.

From-SVN: r130855
2007-12-13 11:32:01 +01:00
Robert Dewar
294ccb21c4 sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for renaming entry as subprogram using rename-as-body if...
2007-12-06  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
	renaming entry as subprogram using rename-as-body if subprogram spec
	frozen.
	(Use_One_Type): The clause is legal on an access type whose designated
	type has a limited view.
	(Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
	(Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
	(Analyze_Renamed_Primitive_Operation): new procedure to determine the
	operation denoted by a selected component.
	(Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
	it can be an expression, possibly overloaded, that returns a task or
	an access to one.

From-SVN: r130854
2007-12-13 11:30:55 +01:00
Hristian Kirtchev
d469eabed9 sem_ch4.adb (Analyze_Selected_Component): Include the requeue statement to the list of contexts where a selected...
2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Include the requeue
	statement to the list of contexts where a selected component with a
	concurrent tagged type prefix should yield a primitive operation.
	(Find_Primitive_Operation): Handle case of class-wide types.
	(Analyze_Overloaded_Selected_Component): If type of prefix is
	class-wide, use visible components of base type.
	(Resolve_Selected_Component): Ditto.
	(Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
	formal of a generic subprogram. find candidate interpretations by
	scanning the list of generic formal declarations.:
	(Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
	type from a limited_with_clause, and the full view is available, use it
	for subsequent semantic checks.
	(Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
	(Find_Primitive_Operation): New function.
	(Analyze_Overloaded_Selected_Component): insert explicit dereference
	only once if several interpretations of the prefix yield an access type.
	(Try_Object_Operation): Code and comment cleanup.
	(Analyze_Selected_Component): Reorder local variables. Minot comment and
	code reformatting. When the type of the prefix is tagged concurrent, a
	correct interpretation might be available in the primitive and
	class-wide operations of the type.

From-SVN: r130853
2007-12-13 11:30:41 +01:00