gcc.git
16 years agodf-core.c: Update comments referring to removed features.
Paolo Bonzini [Fri, 14 Dec 2007 17:40:46 +0000 (17:40 +0000)]
df-core.c: Update comments referring to removed features.

2007-12-14  Paolo Bonzini  <bonzini@gnu.org>

* df-core.c: Update comments referring to removed features.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* df.h: Likewise.

From-SVN: r130937

16 years agosse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand constraint for operand2.
Uros Bizjak [Fri, 14 Dec 2007 15:33:34 +0000 (16:33 +0100)]
sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand constraint for operand2.

* config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
constraint for operand2.  Use nonimm_not_xmm0_operand constraint
for operand 4.  Update arguments in the call to
gen_sse4_2_pcmpestr_cconly.
(sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
template accordingly.
(sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
Use nonimm_not_xmm0_operand constraint for operand 3.  Update
arguments in the call to gen_sse4_2_pcmpistr_cconly.
(sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn

testsuite/ChangeLog:

* gcc.target/i386/sse-12.c (dg-options): Use -msse4
instead of -msse4.1.
* gcc.target/i386/sse-12.c (dg-options): Ditto.
* g++.dg/other/i386-2.C (dg-options): Ditto.

From-SVN: r130934

16 years agore PR fortran/34438 (gfortran not compliant w.r.t default initialization of derived...
Tobias Burnus [Fri, 14 Dec 2007 15:14:29 +0000 (16:14 +0100)]
re PR fortran/34438 (gfortran not compliant w.r.t default initialization of derived type component and implicit SAVE attribute)

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

        PR fortran/34438
        * resolve.c (resolve_symbol): Do not emit public-variable-
        of-private-derived-type error for non-module variables.

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

        PR fortran/34438
        * gfortran.dg/private_type_10.f90: New.

From-SVN: r130933

16 years agore PR fortran/34398 (BOZ literals: Range checks)
Tobias Burnus [Fri, 14 Dec 2007 15:11:17 +0000 (16:11 +0100)]
re PR fortran/34398 (BOZ literals: Range checks)

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

        PR fortran/34398
        * expr.c (gfc_check_assign): Add range checks for assignments of
        * BOZs.
        * resolve.c (resolve_ordinary_assign): Ditto.
        * arith.c (gfc_range_check): Fix return value for complex
        * numbers.

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

        PR fortran/34398
        * gfortran.dg/nan_4.f90: New.

From-SVN: r130932

16 years agore PR middle-end/34462 (tree check: expected ssa_name, have struct_field_tag in vuses...
Richard Guenther [Fri, 14 Dec 2007 14:21:41 +0000 (14:21 +0000)]
re PR middle-end/34462 (tree check: expected ssa_name, have struct_field_tag in vuses_compare, at tree-vn.c:118)

2007-12-14  Richard Guenther  <rguenther@suse.de>

PR middle-end/34462
* tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
parameter to say whether to unlink immediate uses.
* tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
mark the artificial stmt as modified.  Unlink immediate uses
only if requested.
* tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
* tree-ssa-pre.c (insert_fake_stores): Likewise.

* gcc.c-torture/compile/20071214-1.c: New testcase.

From-SVN: r130931

16 years agosse-14.c (test_1, [...]): New macros to test macroized SSE intrinsics.
Uros Bizjak [Fri, 14 Dec 2007 12:43:57 +0000 (13:43 +0100)]
sse-14.c (test_1, [...]): New macros to test macroized SSE intrinsics.

* gcc.target/i386/sse-14.c (test_1, test_2, test_2x, test_4): New
macros to test macroized SSE intrinsics.  Use new macros to test
macroized SSE intrinsics from ammintrin.h, smmintrin.h, tmmintrin.h,
emmintrin.h, xmmintrin.h and bmmintrin.h
* gcc.target/i386/sse-13.c (__builtin_ia32_pcmp?str*128): Redefine
to test with immediate operand.

From-SVN: r130930

16 years agore PR fortran/34324 (Module files on CRLF systems)
Daniel Franke [Fri, 14 Dec 2007 10:25:12 +0000 (05:25 -0500)]
re PR fortran/34324 (Module files on CRLF systems)

2007-12-14  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/34324
        * module.c (parse_atom): Fixed parsing of modules files whose
        lines are terminated by CRLF.

From-SVN: r130928

16 years agore PR target/34091 (ICE in reload_cse_simplify_operands, at postreload.c:392)
John David Anglin [Fri, 14 Dec 2007 01:01:58 +0000 (01:01 +0000)]
re PR target/34091 (ICE in reload_cse_simplify_operands, at postreload.c:392)

PR target/34091
* gcc.c-torture/compile/pr34091.c: New test.

From-SVN: r130927

16 years agoDaily bump.
GCC Administrator [Fri, 14 Dec 2007 00:17:21 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r130925

16 years agore PR middle-end/33088 (spurious exceptions with -ffloat-store)
Eric Botcazou [Thu, 13 Dec 2007 21:49:09 +0000 (22:49 +0100)]
re PR middle-end/33088 (spurious exceptions with -ffloat-store)

PR middle-end/33088
* gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
* tree-complex.c (init_dont_simulate_again): Return true if there are
uninitialized loads generated by gimplify_modify_expr_complex_part.
* tree-gimple.c (is_gimple_reg_type): Return false for complex types
if not optimizing.
* tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
(warn_uninit): ...here.  Use ssa_undefined_value_p.
* tree-ssa-pre.c (is_undefined_value): Delete.
(phi_translate_1): Use ssa_undefined_value_p.
(add_to_exp_gen): Likewise.
(make_values_for_stmt): Likewise.
* tree-flow.h (ssa_undefined_value_p): Declare.

From-SVN: r130917

16 years agostruct-reorg.exp: Replace DEFAULT_CFLAGS by STRUCT_REORG_CFLAFS.
Olga Golovanevsky [Thu, 13 Dec 2007 20:50:38 +0000 (20:50 +0000)]
struct-reorg.exp: Replace DEFAULT_CFLAGS by STRUCT_REORG_CFLAFS.

2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>

* gcc.dg/struct/struct-reorg.exp: Replace
 DEFAULT_CFLAGS by STRUCT_REORG_CFLAFS.

From-SVN: r130916

16 years ago[multiple changes]
Tobias Burnus [Thu, 13 Dec 2007 20:31:45 +0000 (21:31 +0100)]
[multiple changes]

2007-12-13  Anton Korobeynikov  <asl@math.spbu.ru>

        * trans-decl.c (gfc_build_builtin_function_decls): Correct decl
        construction for select_string() and internal_unpack()

2007-12-13  Duncan Sands  <baldrick@free.fr>
            Anton Korobeynikov  <asl@math.spbu.ru>

        * trans-expr.c (gfc_conv_structure): Make sure record
        * constructors
        for static variables are marked constant.

From-SVN: r130914

16 years agore PR libfortran/34370 (file positioning after nonadvancing i/o)
Thomas Koenig [Thu, 13 Dec 2007 19:35:09 +0000 (19:35 +0000)]
re PR libfortran/34370 (file positioning after nonadvancing i/o)

2007-12-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR libfortran/34370
PR libfortran/34323
PR libfortran/34405
* io/io.h:  Add previous_nonadvancing_write to gfc_unit.
Add prototype for finish_last_advance_record.
* io/file_pos.c (st_backspace):  Generate error if backspace is
attempted for direct access or unformatted stream.
If there are bytes left from a previous ADVANCE="no", write
them out before performing the backspace.
(st_endfile):  Generate error if endfile is attempted for
direct access.
If there are bytes left from a previous ADVANCE="no", write
them out before performing the endfile.
(st_rewind):  Generate error if rewind is attempted for
direct access.
* unit.c (close_unit_1):  Move functionality to write
previously written bytes to...
(finish_last_advance_record):  ... here.
* transfer.c (data_transfer_init):  If reading, reset
previous_nonadvancing_write.
(finalize_transfer):  Set the previous_noadvancing_write
flag if we are writing and ADVANCE="no" was specified.
Only call next_record() if advance="no" wasn't specified.

2007-12-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR libfortran/34370
PR libfortran/34323
PR libfortran/34405
* gfortran.dg/advance_6.f90:  New test case.
* gfortran.dg/direct_io_7.f90:  New test case.
* gfortran.dg/streamio_13.f90:  New test case.

From-SVN: r130912

16 years ago__func__.C: New.
Douglas Gregor [Thu, 13 Dec 2007 19:29:52 +0000 (19:29 +0000)]
__func__.C: New.

2007-12-13  Douglas Gregor  <doug.gregor@gmail.com>

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

From-SVN: r130911

16 years agore PR bootstrap/34144 (Revision 130005 causes bootstrap failure with --disable-checking)
Andrew Pinski [Thu, 13 Dec 2007 19:19:17 +0000 (11:19 -0800)]
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

16 years agore PR rtl-optimization/32636 (25_algorithms/search_n/iterator.cc: miscompiled on...
Jakub Jelinek [Thu, 13 Dec 2007 19:05:37 +0000 (20:05 +0100)]
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

16 years agoFogot to commit ipa-struct-reorg.c
Olga Golovanevsky [Thu, 13 Dec 2007 18:59:44 +0000 (18:59 +0000)]
Fogot to commit ipa-struct-reorg.c

From-SVN: r130906

16 years agore PR target/34435 (SSE2 intrinsics - emmintrin with optimisations off and type conve...
Uros Bizjak [Thu, 13 Dec 2007 18:19:38 +0000 (19:19 +0100)]
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

16 years agoRestore part of patch lost for PR ada/15805:
Arnaud Charlet [Thu, 13 Dec 2007 17:59:09 +0000 (18:59 +0100)]
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

16 years agore PR ada/34360 (typo gcc/ada/Makefile.in for GNU/kFreeBSD)
Samuel Tardieu [Thu, 13 Dec 2007 15:14:54 +0000 (15:14 +0000)]
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

16 years agore PR middle-end/34450 (compile takes up 1.8 GB RAM at -O1)
Richard Guenther [Thu, 13 Dec 2007 14:22:23 +0000 (14:22 +0000)]
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

16 years agoipa-struct-reorg.c (is_candidate): Print information to dump file when the type is...
Olga Golovanevsky [Thu, 13 Dec 2007 13:58:18 +0000 (13:58 +0000)]
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

16 years agostruct: New directory with tests for struct-reorg optimizaion.
Olga Golovanevsky [Thu, 13 Dec 2007 13:47:22 +0000 (13:47 +0000)]
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

16 years ago(Attribute_to_gnu): Check for violations of the No_Implicit_Dynamic_Code restriction.
Bob Duff [Thu, 13 Dec 2007 11:33:49 +0000 (11:33 +0000)]
(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

16 years agoResync
Arnaud Charlet [Thu, 13 Dec 2007 11:27:52 +0000 (12:27 +0100)]
Resync

From-SVN: r130891

16 years agoinvoke.texi (Optimiza Options): Document new -fipa-struct-reorg option and struct...
Golovanevsky Olga [Thu, 13 Dec 2007 11:11:57 +0000 (11:11 +0000)]
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

16 years agore PR libfortran/34427 (Revision 130708 breaks namelist input)
Tobias Burnus [Thu, 13 Dec 2007 11:01:00 +0000 (12:01 +0100)]
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

16 years agoUpdate comments.
Arnaud Charlet [Thu, 13 Dec 2007 10:59:30 +0000 (11:59 +0100)]
Update comments.

Minor reformatting.
Kill new warnings.

From-SVN: r130888

16 years ago(Nkind_In): New functions.
Arnaud Charlet [Thu, 13 Dec 2007 10:56:34 +0000 (11:56 +0100)]
(Nkind_In): New functions.

Add support for new flags.

From-SVN: r130887

16 years agoRemoved, no longer used
Arnaud Charlet [Thu, 13 Dec 2007 10:53:49 +0000 (11:53 +0100)]
Removed, no longer used

From-SVN: r130886

16 years agoNew file.
Arnaud Charlet [Thu, 13 Dec 2007 10:52:39 +0000 (11:52 +0100)]
New file.

From-SVN: r130885

16 years agoNew file.
Arnaud Charlet [Thu, 13 Dec 2007 10:50:30 +0000 (11:50 +0100)]
New file.

From-SVN: r130884

16 years agosem_ch3.ads, [...] (Check_Abstract_Overriding): Avoid generation of spurious error...
Javier Miranda [Thu, 13 Dec 2007 10:48:09 +0000 (11:48 +0100)]
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

16 years agoi-vxwork.ads: Kill new warning on Convention C, since changing the spec would break...
Arnaud Charlet [Thu, 13 Dec 2007 10:46:43 +0000 (11:46 +0100)]
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

16 years agos-parame-vxworks.adb: Update comments to reflect usage of this package by Nucleus.
Geert Bosch [Thu, 13 Dec 2007 10:46:20 +0000 (11:46 +0100)]
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

16 years agosymbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
Vincent Celier [Thu, 13 Dec 2007 10:46:10 +0000 (11:46 +0100)]
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

16 years agomake.adb (Scan_Make_Arg): Add test for -aamp_target switch...
Gary Dismukes [Thu, 13 Dec 2007 10:45:44 +0000 (11:45 +0100)]
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

16 years agoitypes.ads, itypes.adb (Create_Itype): For access-to-subprogram types...
Bob Duff [Thu, 13 Dec 2007 10:45:14 +0000 (11:45 +0100)]
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

16 years agoimpunit.adb: Add entries for missing units
Robert Dewar [Thu, 13 Dec 2007 10:44:45 +0000 (11:44 +0100)]
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

16 years agog-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
Vasiliy Fofanov [Thu, 13 Dec 2007 10:44:32 +0000 (11:44 +0100)]
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

16 years agos-os_lib.ads, [...] (Normalize_Pathname): Do not compute Reference_Dir unless we...
Emmanuel Briot [Thu, 13 Dec 2007 10:43:51 +0000 (11:43 +0100)]
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

16 years agotb-gcc.c (uw_data_t, [...]): Only define if not GCC-SJLJ eh.
Olivier Hainque [Thu, 13 Dec 2007 10:43:33 +0000 (11:43 +0100)]
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

16 years agoa-cohase.ads, [...]: Document which generic formal operations are called for each...
Matthew Heaney [Thu, 13 Dec 2007 10:42:54 +0000 (11:42 +0100)]
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

16 years agognat_ugn.texi: Dcoument new rules for style check comment alignment Document that...
Robert Dewar [Thu, 13 Dec 2007 10:42:14 +0000 (11:42 +0100)]
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

16 years agoa-direct.adb (Create_Path): Always take '/' as a directory separator, even on Windows
Vincent Celier [Thu, 13 Dec 2007 10:41:38 +0000 (11:41 +0100)]
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

16 years agoxeinfo.adb: Remove warnings
Robert Dewar [Thu, 13 Dec 2007 10:40:58 +0000 (11:40 +0100)]
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

16 years agotreepr.ads, treepr.adb: (pl): implement use of positive value shorthands
Robert Dewar [Thu, 13 Dec 2007 10:37:34 +0000 (11:37 +0100)]
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

16 years agotbuild.ads, tbuild.adb: Fix location of flag for unrecognized pragma message
Robert Dewar [Thu, 13 Dec 2007 10:37:00 +0000 (11:37 +0100)]
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

16 years agotb-alvms.c (struct tb_entry_t, [...]): Revert back to use of Procedure Value instead...
Olivier Hainque [Thu, 13 Dec 2007 10:36:42 +0000 (11:36 +0100)]
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

16 years agostyleg.adb (Check_Comment): More liberal rules for comment placement
Robert Dewar [Thu, 13 Dec 2007 10:36:06 +0000 (11:36 +0100)]
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

16 years agos-tassta.adb (Create_Task): Take into account tasks created by foreign threads.
Arnaud Charlet [Thu, 13 Dec 2007 10:35:41 +0000 (11:35 +0100)]
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

16 years agos-stoele.adb ("mod"): mod negative value raises Constraint_Error
Robert Dewar [Thu, 13 Dec 2007 10:35:02 +0000 (11:35 +0100)]
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

16 years agos-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant with Stack_Grows_Do...
Olivier Hainque [Thu, 13 Dec 2007 10:34:35 +0000 (11:34 +0100)]
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

16 years agos-soflin.ads: Apply new pragma Favor_Top_Level to all access-to-subprogram types...
Bob Duff [Thu, 13 Dec 2007 10:34:11 +0000 (11:34 +0100)]
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

16 years agosinput-l.adb (Load_File): Disable style checks when preprocessing.
Thomas Quinot [Thu, 13 Dec 2007 10:33:25 +0000 (11:33 +0100)]
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

16 years agosinput.adb (Get_Source_File_Index): Add assertion to guard against an invalid access...
Thomas Quinot [Thu, 13 Dec 2007 10:32:56 +0000 (11:32 +0100)]
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

16 years agosem_util.ads, [...] (Is_Concurrent_Interface): New routine.
Bob Duff [Thu, 13 Dec 2007 10:32:45 +0000 (11:32 +0100)]
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

16 years agosem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check whether formal...
Hristian Kirtchev [Thu, 13 Dec 2007 10:32:34 +0000 (11:32 +0100)]
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

16 years agosem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static context, so...
Geert Bosch [Thu, 13 Dec 2007 10:32:23 +0000 (11:32 +0100)]
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

16 years agosem_disp.adb (Check_Dispatching_Call): If an actual in a call to an inherited operati...
Ed Schonberg [Thu, 13 Dec 2007 10:32:11 +0000 (11:32 +0100)]
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

16 years agosem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a requeue statemen...
Hristian Kirtchev [Thu, 13 Dec 2007 10:32:01 +0000 (11:32 +0100)]
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

16 years agosem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for renaming entry...
Robert Dewar [Thu, 13 Dec 2007 10:30:55 +0000 (11:30 +0100)]
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

16 years agosem_ch4.adb (Analyze_Selected_Component): Include the requeue statement to the list...
Hristian Kirtchev [Thu, 13 Dec 2007 10:30:41 +0000 (11:30 +0100)]
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

16 years agos-imenne.adb, [...]: New files.
Robert Dewar [Thu, 13 Dec 2007 10:30:04 +0000 (11:30 +0100)]
s-imenne.adb, [...]: New files.

2007-12-06  Robert Dewar  <dewar@adacore.com>

* s-imenne.adb, s-imenne.ads: New files.

* s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
s-imgwch.ads: New calling sequence for Image routines to avoid sec
stack usage.

From-SVN: r130852

16 years agosem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram renaming declaration...
Ed Schonberg [Thu, 13 Dec 2007 10:29:52 +0000 (11:29 +0100)]
sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram renaming declaration...

2007-12-06  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
renaming declaration, use the Slocs of the formal parameters from the
declaration of the formal subprogram when creating the formal parameter
entities in the renaming declaration.
(Analyze_Formal_Type_Declaration): Change the placement of the error
message concerning illegal known discriminants. It is now posted on the
type rather than on the first discriminant. This change ensures early
error report.
(Freeze_Subprogram_Body): If the generic subprogram is nested within
the package body that contains the instance, do not generate an
out-of-place freeze node for the enclosing package.
(Collect_Previous_Instantiations): Ignore internal instantiations
generated for formal packages.
(Validate_Derived_Type_Instance): Add a check that when a formal
derived type is Known_To_Have_Preelab_Init then the actual type must
have preelaborable initialization, and issue an error when this
condition is violated.

From-SVN: r130851

16 years agosem_ch10.adb (Check_Private_Child_Unit): A non-private library level subprogram body...
Thomas Quinot [Thu, 13 Dec 2007 10:29:38 +0000 (11:29 +0100)]
sem_ch10.adb (Check_Private_Child_Unit): A non-private library level subprogram body that acts as its own spec may not...

2007-12-06  Thomas Quinot  <quinot@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
subprogram body that acts as its own spec may not have a non-private
WITH clause on a private sibling.
(Build_Unit_Name): If the parent unit in the name in a with_clause on a
child unit is a renaming, create an implicit with_clause on that
parent, and not on the unit it renames, to prevent visibility errors
in the current unit.

From-SVN: r130850

16 years agog-byorma.adb, [...]: New files.
Robert Dewar [Thu, 13 Dec 2007 10:29:24 +0000 (11:29 +0100)]
g-byorma.adb, [...]: New files.

2007-12-06  Robert Dewar  <dewar@adacore.com>

* g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.

* scn.adb: Implement BOM recognition

From-SVN: r130849

16 years agortsfind.adb (Check_CRT): Take into account RTE_Available_Call Fixes another case...
Arnaud Charlet [Thu, 13 Dec 2007 10:29:02 +0000 (11:29 +0100)]
rtsfind.adb (Check_CRT): Take into account RTE_Available_Call Fixes another case where...

* rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
Fixes another case where RTE_Available_Call was ignored instead of being
taken into account.
(Load_Fail): Ditto.

* rtsfind.ads: Add new entries.

From-SVN: r130848

16 years agorestrict.ads, [...] (Check_Implicit_Dynamic_Code_Allowed): New procedure to be called...
Bob Duff [Thu, 13 Dec 2007 10:28:48 +0000 (11:28 +0100)]
restrict.ads, [...] (Check_Implicit_Dynamic_Code_Allowed): New procedure to be called from the back end to check the...

2007-12-06  Bob Duff  <duff@adacore.com>

* restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
procedure to be called from the back end to check the
No_Implicit_Dynamic_Code restriction.

From-SVN: r130847

16 years agoprj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a string
Emmanuel Briot [Thu, 13 Dec 2007 10:28:39 +0000 (11:28 +0100)]
prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a string

2007-12-06  Emmanuel Briot  <briot@adacore.com>
    Vincent Celier  <celier@adacore.com>

* prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
string
(Must_Check_Configuration, Default_Language_Is_Ada): new flags in
prj.ads
(Hash): Move instantiation of System.HTable.Hash from spec to body
(prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
systems, since we do not need to recompute the Name_Id for the canonical
file name.
(Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
as a parameter. This parameter is in fact always "ada" in all calls, and
we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
while loading a project with 40000 files

* prj-attr.adb: Fix name of attribute Dependency_Driver
Change the kind of indexing for attribute Root

* prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
variables already declared, in case constructions.

* prj-env.adb (Initialize): Reset Current_Source_Path_File and
Current_Object_Path_File to No_Path.

* prj-ext.adb (Initialize_Project_Path): In multi language mode, use
ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.

* prj-makr.adb: new parameter Current_Dir

* prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
Ada sources when language is not Ada.
Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
(Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
(Must_Check_Configuration, Default_Language_Is_Ada): new flags.
(Locate_Directory): Always resolve links when computing Canonical_Path
(Look_For_Sources): Make sure that Name_Buffer contains the file name
in Source_Files before checking for the presence of a directory
separator.
Optimize calls to Name_Find when on case sensitive systems.
(Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
as a parameter.
(Prj.Nmsc.Check): new parameter Current_Dir
(Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
cannot be empty and the spec suffix cannot be the same as the body or
separate suffix.
(Get_Unit): When a file name can be of several unit kinds (spec, body or
subunit), always consider the longest suffix.
(Check_Configuration): Do not issue an error if there is no compiler
for a language. Just issue a warning and ignore the sources for the
language.
(Check_Library_Attributes): Only check Library_Dir if Library_Name is
not empty.
(Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
(Unit_Exceptions): New hash table
(Check_Naming_Schemes): Check if a file that could be a unit because of
the naming scheme is not in fact a source because there is an exception
for the unit.
(Look_For_Sources): Put the unit exceptions in hash table
Unit_Exceptions
(Get_Unit_Exceptions): Give initial value No_Source to local variable
Other_Part to avoid exception when code is compiled with validity
checking.
(Get_Sources_From_File): Check that there is no directory information
in the file names.
(Look_For_Sources): Check that there is no directory information in the
list of file names in Source_Files.
(Look_For_Sources): In multi-language mode, do not allow exception file
names that are excluded.
(Excluded_Sources_Htable): New hash table
(Search_Directories.Check_File): New procedure to simplify
Search_Directories.
(Search_Directories): Do not consider excluded sources
(Look_For_Sources): Populate Excluded_Sources_Htable before calling
Search_Directories.
(Get_Exceptions): Set component Lang_Kind of Source_Data
(Get_Unit_Exceptions): Ditto
(Search_Directories): Ditto

* prj-pars.adb: new parameter Current_Dir

* prj-part.ads, prj-part.adb:
Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
(Opt.Follow_Links_For_Dirs): New flag
(Project_Path_Name_Of): Cache information returned by this routine as
Locate_Regular_File is a costly routine. The code to output a log
information and the effective call to Locate_Regular_File is now
factorized into a routine (code clean-up).
(Parse, Parse_Single_Project): new parameter Current_Dir
When main project file cannot be found, indicate in the error
message the project path that was used to do the search.

* prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
(Prj.Proc.Process*): new parameter Current_Dir

* switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files

From-SVN: r130846

16 years agoinline.adb (Back_End_Cannot_Inline): Use new flag Has_Pragma_Inline_Always instead...
Robert Dewar [Thu, 13 Dec 2007 10:28:24 +0000 (11:28 +0100)]
inline.adb (Back_End_Cannot_Inline): Use new flag Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined

2007-12-06  Robert Dewar  <dewar@adacore.com>

* inline.adb (Back_End_Cannot_Inline): Use new flag
Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined

* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
Has_Pragma_Inline_Always instead.
of obsolete function Is_Always_Inlined
(Build_Body_To_Inline): Same change
(Cannot_Inline): Same change
Do not give warning on exception raise in No_Return function

* sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
component has two inconsistent component clauses in the same record
representation clause, favor the message that complains about
duplication rather than inconsistency.
Update comments.
(Record_Representation_Clause): Do not warn on missing component
clauses for inherited components of a type extension.
(Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
an overloadable item if it is a pragma that can apply to multiple
overloadable entities (e.g. Inline) because a pragma cannot be on
more than one chain at a time.
(Validate_Unchecked_Conversion): Add code to warn on unchecked
conversion where one of the operands is Ada.Calendar.Time.
(Analyze_Attribute_Definition_Clause): Fix typo in error message.
For now, ignore Component_Size clause on VM targets, as done for
pragma Pack.

From-SVN: r130845

16 years agog-spipat.adb (Break): Fix accessibility error (vsn taking not null access Vstring)
Robert Dewar [Thu, 13 Dec 2007 10:28:10 +0000 (11:28 +0100)]
g-spipat.adb (Break): Fix accessibility error (vsn taking not null access Vstring)

2007-12-06  Robert Dewar  <dewar@adacore.com>

* g-spipat.adb (Break): Fix accessibility error (vsn taking not null
access Vstring)

From-SVN: r130844

16 years agog-spchge.ads, [...]: New files.
Robert Dewar [Thu, 13 Dec 2007 10:27:58 +0000 (11:27 +0100)]
g-spchge.ads, [...]: New files.

2007-12-06  Robert Dewar  <dewar@adacore.com>

* g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
namet-sp.adb, namet-sp.ads: New files.

* g-speche.adb: Use generic routine in g-spchge

* s-wchcnv.ads, s-wchcnv.adb:
Minor code cleanup (make formal type consistent with spec)

* namet.adb: Update comments.

* par-endh.adb (Evaluate_End_Entry): Use new
Namet.Sp.Is_Bad_Spelling_Of function

* par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function

* sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
ancestor is an access type initialized with a box, set its type
explicitly, for use in subsequent expansion.
(Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
function

From-SVN: r130843

16 years agog-regist.ads, [...] (Set_Value): new parameter Expand...
Vasiliy Fofanov [Thu, 13 Dec 2007 10:27:42 +0000 (11:27 +0100)]
g-regist.ads, [...] (Set_Value): new parameter Expand...

2007-12-06  Vasiliy Fofanov  <fofanov@adacore.com>

* g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
set to True this procedure will create the value of type REG_EXPAND_SZ.
It was only possible to create REG_SZ values before.

From-SVN: r130842

16 years agognatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when object directory...
Vincent Celier [Thu, 13 Dec 2007 10:27:32 +0000 (11:27 +0100)]
gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when object directory of main project...

2007-12-06  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
object directory of main project does not exist.
On VMS, correctly set then environment variable for the source
directories.

From-SVN: r130841

16 years agognat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
Robert Dewar [Thu, 13 Dec 2007 10:27:21 +0000 (11:27 +0100)]
gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target

2007-12-06  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target

* layout.adb (Resolve_Attribute, case 'Access): If designated type of
context is a limited view, use non-limited view when available. If the
non-limited view is an unconstrained array, this enforces consistency
requirements in 3.10.2 (27).
(Layout_Type): For an access type whose designated type is a limited
view, examine its declaration to determine if it is an unconstrained
array, and size the access type accordingly.
(Layout_Type): Do not force 32-bits for convention c subprogram
pointers in -gnatdm mode, only if real vms target.

* sem_attr.adb (Analyze_Access_Attribute): Use new flag
Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
(Analyze_Access_Attribute,Attribute_Address): Remove checks for
violations of the No_Implicit_Dynamic_Code restriction.
(Resolve_Attribute, case 'Access): If designated type of context is a
limited view, use non-limited view when available. If the non-limited
view is an unconstrained array, this enforces consistency requirements
in 3.10.2 (27).
(Layout_Type): For an access type whose designated type is a limited
view, examine its declaration to determine if it is an unconstrained
array, and size the access type accordingly.

From-SVN: r130840

16 years agog-calend.ads (No_Time): New constant, to represent an uninitialized time value
Emmanuel Briot [Thu, 13 Dec 2007 10:27:07 +0000 (11:27 +0100)]
g-calend.ads (No_Time): New constant, to represent an uninitialized time value

2007-12-06  Emmanuel Briot  <briot@adacore.com>

* g-calend.ads (No_Time): New constant, to represent an uninitialized
time value

* g-catiio.ads, g-catiio.adb (Value): Added support for more date
formats.
(Month_Name_To_Number): New subprogram

* g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
letter to upper-case.

From-SVN: r130839

16 years agoexp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for assert fail
Robert Dewar [Thu, 13 Dec 2007 10:26:56 +0000 (11:26 +0100)]
exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for assert fail

2007-12-06  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
assert fail

* ug_words: Add entries for -gnatw.a -gnatw.A

* sem_res.adb (Set_String_Literal_Subtype): If the context of the
literal is a subtype with non-static constraints, use the base type of
the context as the base of the string subtype, to prevent type
mismatches in gigi.
(Resolve_Actuals): If the actual is an entity name, generate a
reference before the actual is resolved and expanded, to prevent
spurious warnings on formals of enclosing protected operations.
(Analyze_Overloaded_Selected_Component): If type of prefix if
class-wide, use visible components of base type.
(Resolve_Selected_Component): Ditto.
(Resolve_Short_Circuit): Detect case of pragma Assert argument
evaluating to False, and issue warning message.

* usage.adb: Add lines for -gnatw.a and -gnatw.A

From-SVN: r130838

16 years agoexp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing support for generic...
Javier Miranda [Thu, 13 Dec 2007 10:26:41 +0000 (11:26 +0100)]
exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing support for generic dispatching constructor calls in which we need...

2007-12-06  Javier Miranda  <miranda@adacore.com>

* exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
support for generic dispatching constructor calls in which we need to
locate the tag of a secondary dispatch table associated with an
interface type to properly dispatch the call.
(Expand_N_Attribute_Reference [case Address],
Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
handling of VM targets.

From-SVN: r130837

16 years agoexpect.c (__gnat_kill): Implement the SIGINT signal on Windows.
Pascal Obry [Thu, 13 Dec 2007 10:26:21 +0000 (11:26 +0100)]
expect.c (__gnat_kill): Implement the SIGINT signal on Windows.

2007-12-06  Pascal Obry  <obry@adacore.com>

* expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
Windows. This signal is used by gnatmake to kill child processes for
example.

From-SVN: r130836

16 years agoexp_disp.ads, [...] (Default_Prim_Op_Position): Primitive _Disp_Requeue occupies...
Hristian Kirtchev [Thu, 13 Dec 2007 10:26:10 +0000 (11:26 +0100)]
exp_disp.ads, [...] (Default_Prim_Op_Position): Primitive _Disp_Requeue occupies dispatch table slot number 15.

2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>
    Javier Miranda  <miranda@adacore.com>

* exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
_Disp_Requeue occupies dispatch table slot number 15. Move
_Disp_Timed_Select to slot 16.
(Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
generate the spec and body of _Disp_Reqeueue.
(Make_DT): Build and initialize the second dispatch table.
Handle initialization of RC_Offset when the parent
is a private type with variable size components.
(Make_Secondary_DT): Complete documentation. Add support to
initialize the second dispatch table.
(Make_Tags): Generate the tag of the second dispatch table.
(Register_Primitive): Add support to register primitives in the
second dispatch table.

From-SVN: r130835

16 years agoexp_ch9.adb (Expand_N_Asynchronous_Select, [...]): Code and comment reformatting.
Hristian Kirtchev [Thu, 13 Dec 2007 10:26:00 +0000 (11:26 +0100)]
exp_ch9.adb (Expand_N_Asynchronous_Select, [...]): Code and comment reformatting.

2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* exp_ch9.adb (Expand_N_Asynchronous_Select,
Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
comment reformatting.
(Set_Privals): Inherit aliased flag from formal. From code reading.
(Build_Simple_Entry_Call): Out parameters of an access type are passed
by copy and initialized from the actual. This includes entry parameters.
(Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
and Ada 2005 models of requeue.
(Null_Statements): Still connsider do-end block null if it contains
Unreferenced and Warnings pragmas.
(Expand_N_Accept_Statement): Do not optimize away null do end if
dispatching policy is other than defaulted.
(Expand_N_Timed_Entry_Call): When the triggering statement is a
dispatching call, manually analyze the delay statement.
(Find_Parameter_Type): Move subprogram to Sem_Util.

From-SVN: r130834

16 years agoexp_ch8.ads, [...] (Expand_N_Subprogram_Renaming_Declaration): In the case where...
Gary Dismukes [Thu, 13 Dec 2007 10:25:50 +0000 (11:25 +0100)]
exp_ch8.ads, [...] (Expand_N_Subprogram_Renaming_Declaration): In the case where the renamed subprogram is a dereference...

2007-12-06  Gary Dismukes  <dismukes@adacore.com>

* exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
In the case where the renamed subprogram is a dereference, call
Force_Evaluation on the prefix.

From-SVN: r130833

16 years agoexp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute Is_Complation_Un...
Javier Miranda [Thu, 13 Dec 2007 10:25:35 +0000 (11:25 +0100)]
exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute Is_Complation_Unit by Is_Library_Level_Entity...

2007-12-06  Javier Miranda  <miranda@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
Is_Complation_Unit by Is_Library_Level_Entity in the code
that decides if the static dispatch tables need to be built.
(Wrap_Transient_Declaration): Do not generate a finalization call if
this is a renaming declaration and the renamed object is a component
of a controlled type.

From-SVN: r130832

16 years agoexp_ch4.adb (Expand_N_Attribute_Reference, [...]): Take into account VM_Target
Arnaud Charlet [Thu, 13 Dec 2007 10:25:14 +0000 (11:25 +0100)]
exp_ch4.adb (Expand_N_Attribute_Reference, [...]): Take into account VM_Target

* exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
Expand_Allocator_Expression): Take into account VM_Target

* exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
secondary stack when VM_Target /= No_VM

From-SVN: r130831

16 years agoexp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of predefined primitive...
Hristian Kirtchev [Thu, 13 Dec 2007 10:24:53 +0000 (11:24 +0100)]
exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of predefined primitive _Disp_Requeue.

2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
predefined primitive _Disp_Requeue.
(Make_Predefined_Primitive_Specs): Create the spec for predefined
primitive _Disp_Requeue.
(Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
(Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
an interface type. In case of limited interfaces we now declare all the
predefined primitives associated with synchronized interfaces as
abstract.
(Predef_Spec_Or_Body): For interface types generate abstract subprogram
declarations.
(Predefined_Primitive_Bodies): Add body of "=" if the parent of the
tagged type is an interface type and there is no user-defined equality
function.
Add also bodies of predefined primitives associated with synchronized
interfaces.
(Freeze_Record_Type): Do not build bodies of predefined primitives of
interface types because they are now defined abstract.
Add missing documentation.
(Expand_Record_Controller): Update occurrence of Related_Interface
to Related_Type.
(Build_Offset_To_Top_Functions): Do nothing in case of VM.
(Expand_N_Object_Declaration): Take into account VM_Target when handling
class wide interface object declaration.
(Expand_Previous_Access_Type): Do not create a duplicate master entity
if the access type already has one.
(Expand_N_Object_Declaration): Defend against attempt to validity check
generic types. Noticed for -gnatVcf specified with previous errors.

From-SVN: r130830

16 years agoexpander.adb: Take into account N_Subprogram_Renaming_Declaration
Ed Schonberg [Thu, 13 Dec 2007 10:24:44 +0000 (11:24 +0100)]
expander.adb: Take into account N_Subprogram_Renaming_Declaration

2007-12-06  Ed Schonberg  <schonberg@adacore.com>

* expander.adb: Take into account N_Subprogram_Renaming_Declaration

From-SVN: r130829

16 years agoexp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a limited ancesto...
Ed Schonberg [Thu, 13 Dec 2007 10:24:30 +0000 (11:24 +0100)]
exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a limited ancestor part...

2007-12-06  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
limited ancestor part, initialize controllers of enclosing record
before expanding ancestor aggregate.
(Gen_Assign): If a component of the aggregate is box-initialized, add
code to call Initialize if the component is controlled, and explicit
assignment of null if the component is an access type.

Handle properly aggregates for limited types that appear in object
declarations when the aggregate contains controlled values such as
protected types.
When expanding limited aggregates into individual components, do not
call Adjust on controlled components that are limited.

From-SVN: r130828

16 years agoeval_fat.adb (Decompose_Int): Handle argument of zero.
Geert Bosch [Thu, 13 Dec 2007 10:24:08 +0000 (11:24 +0100)]
eval_fat.adb (Decompose_Int): Handle argument of zero.

2007-12-06  Geert Bosch  <bosch@adacore.com>

* eval_fat.adb (Decompose_Int): Handle argument of zero.
(Compose): Remove special casing of zero.
(Exponent): Likewise.
(Fraction): Likewise.
(Machine): Likewise.
(Decompose): Update comment.

From-SVN: r130827

16 years agoerrout.adb (Output_Source_Line): Do not keep a trailing space after the source line...
Vincent Celier [Thu, 13 Dec 2007 10:23:55 +0000 (11:23 +0100)]
errout.adb (Output_Source_Line): Do not keep a trailing space after the source line number if...

2007-12-06  Vincent Celier  <celier@adacore.com>

* errout.adb (Output_Source_Line): Do not keep a trailing space after
the source line number if the source line is empty.

From-SVN: r130826

16 years agoeinfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
Hristian Kirtchev [Thu, 13 Dec 2007 10:23:40 +0000 (11:23 +0100)]
einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.

2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
(Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
(Write_Entry_Flags): Add an entry for Implemented_By_Entry.
(Renamed_In_Spec): New flag
(Has_Pragma_Inline_Always): New flag
Add missing doc for pragma Obsolescent_Warning
Add missing doc for 17 additional unused flags (230-247)
(Is_Derived_Type): Remove condition "not Is_Generic_Type".
Alphabetize with clauses.
Separate Is_Thunk and Has_Thunks flags
(Write_Entity_Flags): Add forgotten entry for Has_Thunks
(Related_Interface): Renamed to Related_Type.
(Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
(Set_Is_Flag): Restrict the assertion.

From-SVN: r130825

16 years agoclean.adb (Usage): Add line for -aP
Bob Duff [Thu, 13 Dec 2007 10:23:29 +0000 (11:23 +0100)]
clean.adb (Usage): Add line for -aP

2007-12-06  Bob Duff  <duff@adacore.com>

* clean.adb (Usage): Add line for -aP
(Check_Version_And_Help): Change Check_Version_And_Help to be generic,
with a parameter "procedure Usage", instead of passing a pointer to a
procedure. This is to eliminate trampolines (since the Usage procedure
is often nested in a main procedure, and it would be inconvenient to
unnest it).

* g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
to be generic, with a parameter "procedure Callback (...)", instead of
passing a pointer to a procedure. This is to eliminate trampolines
(since the Callback procedure is usually nested).

* gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
(Check_Version_And_Help): Change Check_Version_And_Help to be generic.

* g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
Use the generic Heap_Sort_G instead of Heap_Sort_A.

From-SVN: r130824

16 years agochecks.adb: Fix optimization problem with short-circuited form
Robert Dewar [Thu, 13 Dec 2007 10:23:01 +0000 (11:23 +0100)]
checks.adb: Fix optimization problem with short-circuited form

2007-12-06  Robert Dewar  <dewar@adacore.com>

* checks.adb: Fix optimization problem with short-circuited form

From-SVN: r130823

16 years agoback_end.adb: Recognize -fno-inline
Robert Dewar [Thu, 13 Dec 2007 10:22:45 +0000 (11:22 +0100)]
back_end.adb: Recognize -fno-inline

2007-12-06  Robert Dewar  <dewar@adacore.com>

* back_end.adb: Recognize -fno-inline

From-SVN: r130822

16 years agoopt.ads: Indicate what flags are used by the Project Manager, gprbuild and gprclean.
Vincent Celier [Thu, 13 Dec 2007 10:22:25 +0000 (11:22 +0100)]
opt.ads: Indicate what flags are used by the Project Manager, gprbuild and gprclean.

2007-12-06  Vincent Celier  <celier@adacore.com>

* opt.ads: Indicate what flags are used by the Project Manager,
gprbuild and gprclean.
(Opt.Follow_Links_For_Dirs): New flag
(Warn_On_Assertion_Failure): New flag
(Wide_Character_Encoding_Method_Specified): New flag
(Suppress_All_Inlining): New switch set by -fno-inline
(Real_VMS_Target): New flag
New pragma Fast_Math

From-SVN: r130821

16 years agoatree.adb (Flag231..Flag247): New functions
Robert Dewar [Thu, 13 Dec 2007 10:22:06 +0000 (11:22 +0100)]
atree.adb (Flag231..Flag247): New functions

2007-12-06  Robert Dewar  <dewar@adacore.com>

* atree.adb (Flag231..Flag247): New functions
(Set_Flag231..Set_Flag247): New procedures
(Basic_Set_Convention): Rename Set_Convention to be
Basic_Set_Convention
(Nkind_In): New functions
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

* exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
instead
 of obsolete function Is_Always_Inlined
(Register_Predefined_DT_Entry): Initialize slots of the second
secondary dispatch table.
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
(Expand_N_Function_Call): Remove special provision for stack checking.

* exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
Include _Disp_Requeue in the list of predefined operations.
(Find_Interface_ADT): Modified to fulfill the new specification.
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

* par-ch4.adb, nlists.ads, nlists.adb:
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

* sinfo.ads, sinfo.adb: (Nkind_In): New functions
Fix location of flag for unrecognized pragma message

* sem_ch7.adb: Use Nkind_In

From-SVN: r130820

16 years ago2007-12-06 Geert Bosch <bosch@adacore.com>
Geert Bosch [Thu, 13 Dec 2007 10:21:51 +0000 (11:21 +0100)]
2007-12-06  Geert Bosch  <bosch@adacore.com>

* a-tifiio.adb
(Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
the second or later Scaled_Divide would omit leading zeroes,
resulting in too few digits produced and a Layout_Error as result.
(Put): Initialize Pos.

From-SVN: r130819

16 years agoa-ngcoty.adb: New pragma Fast_Math
Robert Dewar [Thu, 13 Dec 2007 10:21:30 +0000 (11:21 +0100)]
a-ngcoty.adb: New pragma Fast_Math

2007-12-06  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* a-ngcoty.adb: New pragma Fast_Math

* opt.adb: New pragma Fast_Math

* par-prag.adb:
Add Implemented_By_Entry to the list of pragmas which do not require any
special processing.
(Favor_Top_Level): New pragma.
New pragma Fast_Math

* exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
(Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
Expand_Allocator_Expression): Take into account VM_Target
(Expand_Attribute, case 'Identity):  Handle properly the case where
the prefix is a task interface.
New pragma Fast_Math

* par.adb (Next_Token_Is): New function
(P_Pragma): Add Skipping parameter
(U_Left_Paren): New procedure
(U_Right_Paren): New procedure
New pragma Fast_Math

* par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
subunit
New pragma Fast_Math

* sem_prag.adb: Add significance value to table Sig_Flag for pragma
Implemented_By_Entry.
(Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
(Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
items, since it can apply to more than one overloadable entity. Set
new flag Has_Pragma_Inline_Always for Inline_Always case.
(Analyze_Pragma, case Complex_Representation): Improve error message.
(Analyze_Pragma, case Assert): When assertions are disabled build the
rewritten code with Sloc of expression rather than pragma, so new
warning about failing is not deleted.
(Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
protected types and update error message to reflect that. Test whether
the protected type is allowed for the pragma (an error is issued if the
type has any entries, or components that do not have preelaborable
initialization).
New pragma Fast_Math
(Analyze_Pragma, case No_Return): Handle generic instance

* snames.h, snames.ads, snames.adb:
Add new predefined name for interface primitive _Disp_Requeue.
New pragma Fast_Math

* a-tags.ads, a-tags.adb: New calling sequence for
String_To_Wide_[Wide_]String
(Secondary_Tag): New subprogram.

* exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
from Exp_Attr
New calling sequence for String_To_Wide_[Wide_]String
(Expand_Image_Attribute): Major rewrite. New calling sequence avoids
the use of the secondary stack for image routines.

* a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
calling sequence for String_To_Wide_[Wide_]String

* par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
Ada 95 mode
(P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

* par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
(P_Formal_Part): Use Skipping parameter in P_Pragma call
to improve error recovery

* par-util.adb (Next_Token_Is): New function
(Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function

* par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
semicolon if missing
(P_Pragma): Implement new Skipping parameter
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
Fix location of flag for unrecognized pragma message

* par-tchk.adb (U_Left_Paren): New procedure
(U_Right_Paren): New procedure

From-SVN: r130818

16 years agoa-textio.adb, [...]: Extensive changes to private part for wide character encoding
Robert Dewar [Thu, 13 Dec 2007 10:20:52 +0000 (11:20 +0100)]
a-textio.adb, [...]: Extensive changes to private part for wide character encoding

2007-12-06  Robert Dewar  <dewar@adacore.com>

* a-textio.adb, a-textio.ads:
Extensive changes to private part for wide character encoding

* a-witeio.ads, a-witeio.adb, a-ztexio.ads, a-ztexio.adb
(Look_Ahead): Fix mishandling of encoded sequences
Move declaration of Wch_Con to private part (should not be visible)

* ali.adb (Scan_ALI): Set default encoding method to brackets instead of
UTF-8. Probably this is never used, but if it is, brackets is
clearly correct.

* bindgen.adb (Get_WC_Encoding): New procedure to properly handle
setting wide character encoding for no main program case and when
encoding is specified using -W?
Initialize stack limit of environment task if stack limit method of
stack checking is enabled.
(Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
(Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
(Get_Main_Unit_Name): New function.
(Gen_Adainit_Ada): Add call to main program for .NET when needed.
(Gen_Output_File): Set Bind_Main_Program to True for .NET

* bindusg.adb: Add line for -Wx switch

* s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
Add comments
Add new useful constant WC_Longest_Sequences

* switch-b.adb: Clean up handling of -Wx switch
For -gnatWx, set Wide_Character_Encoding_Method_Specified

* switch-c.adb: -gnatg activates warning on assertion errors
For -gnatWx, set Wide_Character_Encoding_Method_Specified

* s-wchcon.adb: (Is_Start_Of_Encoding): New function

From-SVN: r130817

16 years agoadaint.h: (__gnat_plist_init): Not defined for RTX.
Jose Ruiz [Thu, 13 Dec 2007 10:19:55 +0000 (11:19 +0100)]
adaint.h: (__gnat_plist_init): Not defined for RTX.

2007-12-06  Jose Ruiz  <ruiz@adacore.com>

* adaint.h: (__gnat_plist_init): Not defined for RTX.

* initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
RTX systems.

* Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
(LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
GNATLIB_SHARED for RTX run time): Use the versions required by RTX.

* mingw32.h:
Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.

* sysdep.c (winflush_function for RTX): Procedure that does nothing
since we only have problems with Windows 95/98, which are not
supported by RTX.
(__gnat_ttyname): Return the empty string on Nucleus, just as
done on vxworks.

From-SVN: r130816