sje [Wed, 1 Nov 2006 16:25:17 +0000 (16:25 +0000)]
* tests/base/sys/socket.h: Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118384
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Wed, 1 Nov 2006 12:09:25 +0000 (12:09 +0000)]
* gcc.c-torture/execute/
20061101-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118377
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Wed, 1 Nov 2006 11:58:18 +0000 (11:58 +0000)]
Fix asm string.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118374
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 1 Nov 2006 11:38:06 +0000 (11:38 +0000)]
2006-11-01 Richard Guenther <rguenther@suse.de>
* config/i386/i386.c (ix86_expand_rint): Fix issues with
signed zeros.
(ix86_expand_floorceildf_32): Likewise.
(ix86_expand_floorceil): Likewise.
(ix86_expand_trunc): Likewise.
* testsuite/gcc.target/i386/fpprec-1.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118373
138bc75d-0d04-0410-961f-
82ee72b054a4
pinskia [Wed, 1 Nov 2006 07:28:53 +0000 (07:28 +0000)]
2006-10-31 Andrew Pinski <pinskia@gmail.com>
* doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
to "GNU C89".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118372
138bc75d-0d04-0410-961f-
82ee72b054a4
dannysmith [Wed, 1 Nov 2006 06:23:12 +0000 (06:23 +0000)]
* target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
hook.
* target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
default.
* config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
Override default.
* doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
* configure.ac (use_cxa_atexit): As a special case, don't test
for libc definition of __cxa_atexit on mingw32
* configure: Regenerate.
* config.gcc (i[34567]86-pc-mingw32): Default to
enable__cxa_atexit=yes.
cp
* decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
if targetm.cxx.use_atexit_for cxa_atexit.
(start_cleanup_fn): Likewise.
(register_dtor_fn): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118371
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 05:42:01 +0000 (05:42 +0000)]
Fix date on ChangeLog entry
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118367
138bc75d-0d04-0410-961f-
82ee72b054a4
ghazi [Wed, 1 Nov 2006 05:38:21 +0000 (05:38 +0000)]
* builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
testsuite:
* gcc.dg/torture/builtin-attr-1.c: Don't test gamma/lgamma.
* gcc.dg/torture/builtin-convert-1.c: Don't test lgamma.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118366
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 05:28:41 +0000 (05:28 +0000)]
In gcc/:
PR 23067
* c-decl.c (start_struct): Don't create self-containing
structures.
* config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
New.
* config/rs6000/rs6000-protos.h
(darwin_rs6000_special_round_type_align): New.
* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
(ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
In gcc/testsuite/:
PR 23067
* gcc.target/powerpc/darwin-abi-3.c: Remove XFAIL.
* gcc.target/powerpc/darwin-abi-6.c: Remove XFAIL.
* gcc.target/powerpc/darwin-abi-7.c: Remove XFAIL.
* gcc.target/powerpc/darwin-abi-8.c: Remove XFAIL.
* gcc.target/powerpc/darwin-abi-9.c: Remove XFAIL.
* gcc.target/powerpc/darwin-abi-10.c: Remove XFAIL.
* gcc.target/powerpc/darwin-abi-11.c: Remove XFAIL.
In libobjc/:
* encoding.c (darwin_rs6000_special_round_type_align): New.
In libffi/:
* src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
(ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
Darwin.
* testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
* testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118365
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 05:20:05 +0000 (05:20 +0000)]
2006-10-31 Eric Christopher <echristo@apple.com>
Falk Hueffner <falk@debian.org>
* gcc.dg/builtin-bswap-1.c: New.
* gcc.dg/builtin-bswap-2.c: New.
* gcc.dg/builtin-bswap-3.c: New.
* gcc.dg/builtin-bswap-4.c: New.
* gcc.dg/builtin-bswap-5.c: New.
* gcc.target/i386/builtin-bswap-1.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118364
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 05:17:14 +0000 (05:17 +0000)]
Add missing genopinit.c change for revision 118361.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118363
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 05:16:14 +0000 (05:16 +0000)]
In gcc/:
* toplev.c (compile_file): Call final_write_globals
even if there have been errors.
In gcc/cp/:
* decl2.c (cp_write_global_declarations): Rename from
cp_finish_file.
* cp-lang.c (finish_file): Don't call cp_finish_file.
* cp-tree.h (cp_write_global_declarations): Rename from
cp_finish_file.
* cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
cp_write_global_declarations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118362
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 05:14:40 +0000 (05:14 +0000)]
2006-09-07 Eric Christopher <echristo@apple.com>
Falk Hueffner <falk@debian.org>
* doc/extend.texi (__builtin_bswap32): Document.
(__builtin_bswap64): Ditto.
* doc/libgcc.texi (bswapsi2): Document.
(bswapdi2): Ditto.
* doc/rtl.texi (bswap): Document.
* optabs.c (expand_unop): Don't widen a bswap.
(init_optabs): Init bswap. Set libfuncs explicitly
for bswapsi2 and bswapdi2.
* optabs.h (OTI_bswap): New.
(bswap_optab): Ditto.
* genopinit.c (optabs): Handle bswap_optab.
* tree.h (tree_index): Add TI_UINT32_TYPE and
TI_UINT64_TYPE.
(uint32_type_node): New.
(uint64_type_node): Ditto.
* tree.c (build_common_tree_nodes_2): Initialize
uint32_type_node and uint64_type_node.
* builtins.c (expand_builtin_bswap): New.
(expand_builtin): Call.
(fold_builtin_bswap): New.
(fold_builtin_1): Call.
* fold-const.c (tree_expr_nonnegative_p): Return true
for bswap.
* builtin-types.def (BT_UINT32): New.
(BT_UINT64): Ditto.
(BT_FN_UINT32_UINT32): Ditto.
(BT_FN_UINT64_UINT64): Ditto.
* builtins.def (BUILT_IN_BSWAP32): New.
(BUILT_IN_BSWAP64): Ditto.
* rtl.def (BSWAP): New.
* genattrtab.c (check_attr_value): New.
* libgcc2.c (__bswapSI2): New.
(__bswapDI2): Ditto.
* libgcc2.h (__bswapSI2): Declare.
(__bswapDI2): Ditto.
* mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
* simplify-rtx.c (simplify_const_unary_operation): Return
0 for BSWAP.
* libgcc-std.ver (__bwapsi2): Add.
(__bswapdi2): Ditto.
* reload1.c (eliminate_regs_1): Add bswap.
(elimination_effects): Ditto.
* config/i386/i386.h (x86_bswap): New.
(TARGET_BSWAP): Use.
* config/i386/i386.c (x86_bswap): Set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118361
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 05:06:12 +0000 (05:06 +0000)]
In gcc/:
* coverage.c (coverage_checksum_string): Update comment.
* dwarf2out.c (switch_to_eh_frame_section): Update for removal
of get_file_function_name.
* cgraphunit.c (cgraph_build_static_cdtor): Update for rename
of get_file_function_name_long.
* tree.c (get_file_function_name): Rename from
get_file_function_name_long; improve comment; handle 'I' and 'D'
specially when the target has ctor/dtor support; remove special
handling for 'F'.
(get_file_function_name): Remove.
* tree.h (get_file_function_name): Rename from
get_file_function_name_long.
(get_file_function_name): Remove prototype.
In gcc/cp/:
* name-lookup.c (get_anonymous_namespace_name): New.
(push_namespace_with_attribs): Use get_anonymous_namespace_name.
* decl2.c (start_objects): Update for rename of
get_file_function_name_long.
In gcc/fortran/:
* trans-decl.c (gfc_generate_constructors): Update for removal
of get_file_function_name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118360
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 04:55:19 +0000 (04:55 +0000)]
* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
* config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
* config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
Call dsymutil when compiling and linking one or more source files
in one step.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118359
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 04:53:33 +0000 (04:53 +0000)]
PR 15834
* config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118358
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 04:48:15 +0000 (04:48 +0000)]
* c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
inline static functions in c99 mode.
PR 16622
* doc/extend.texi (Inline): Update.
* c-tree.h (struct language_function): Remove field 'extern_inline'.
* c-decl.c (current_extern_inline): Delete.
(pop_scope): Adjust test for an undefined nested function.
Add warning about undeclared inline function.
(diagnose_mismatched_decls): Update comments. Disallow overriding
of inline functions in a translation unit in C99. Allow inline
declarations in C99 at any time.
(merge_decls): Boolize variables. Handle C99 'extern inline'
semantics.
(grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
C99 inline semantics.
(start_function): Don't clear current_extern_inline. Don't set
DECL_EXTERNAL.
(c_push_function_context): Don't push current_extern_inline.
(c_pop_function_context): Don't restore current_extern_inline.
PR 11377
* c-typeck.c (build_external_ref): Warn about static variables
used in extern inline functions.
* c-decl.c (start_decl): Warn about static variables declared
in extern inline functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118357
138bc75d-0d04-0410-961f-
82ee72b054a4
geoffk [Wed, 1 Nov 2006 04:47:30 +0000 (04:47 +0000)]
* c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
inline static functions in c99 mode.
PR 16622
* doc/extend.texi (Inline): Update.
* c-tree.h (struct language_function): Remove field 'extern_inline'.
* c-decl.c (current_extern_inline): Delete.
(pop_scope): Adjust test for an undefined nested function.
Add warning about undeclared inline function.
(diagnose_mismatched_decls): Update comments. Disallow overriding
of inline functions in a translation unit in C99. Allow inline
declarations in C99 at any time.
(merge_decls): Boolize variables. Handle C99 'extern inline'
semantics.
(grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
C99 inline semantics.
(start_function): Don't clear current_extern_inline. Don't set
DECL_EXTERNAL.
(c_push_function_context): Don't push current_extern_inline.
(c_pop_function_context): Don't restore current_extern_inline.
PR 11377
* c-typeck.c (build_external_ref): Warn about static variables
used in extern inline functions.
* c-decl.c (start_decl): Warn about static variables declared
in extern inline functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118356
138bc75d-0d04-0410-961f-
82ee72b054a4
sayle [Wed, 1 Nov 2006 02:56:45 +0000 (02:56 +0000)]
PR middle-end/23470
* tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
* fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
or y is an even integer.
* gcc.dg/pr23470-1.c: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118355
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 1 Nov 2006 00:17:53 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118353
138bc75d-0d04-0410-961f-
82ee72b054a4
aldot [Tue, 31 Oct 2006 23:38:58 +0000 (23:38 +0000)]
fortran/ChangeLog:
2006-11-01 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/29537
* trans-common.c (gfc_trans_common): If the blank common is
in a procedure or program without a name then proc_name is null, so use
the locus of the common.
(gfc_sym_mangled_common_id): Fix whitespace.
* match.c (gfc_match_common): Emit warning about blank common in
block data.
testsuite/ChangeLog:
2006-11-01 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/29537
* gfortran.dg/blockdata_1.f90: Add warning about blank common in block
data.
* gfortran.dg/blockdata_2.f90: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118347
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 31 Oct 2006 23:29:06 +0000 (23:29 +0000)]
* gcc.c-torture/execute/
20061031-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118344
138bc75d-0d04-0410-961f-
82ee72b054a4
sje [Tue, 31 Oct 2006 22:28:18 +0000 (22:28 +0000)]
* inclhack.def (hpux11_extern_sendfile): New.
(hpux11_extern_sendpath): New.
* fixincl.x: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118343
138bc75d-0d04-0410-961f-
82ee72b054a4
tkoenig [Tue, 31 Oct 2006 20:58:26 +0000 (20:58 +0000)]
2006-10-31 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/29627
* libgfortran.h: Add ERROR_SHORT_RECORD
* runtime/error.c (translate_error): Add case
for ERROR_SHORT_RECORD.
* io/transfer.c (read_block_direct): Separate codepaths
for stream and record unformatted I/O. Remove unneeded
tests for standard input, padding and formatted I/O.
If the record is short, read in as much data as possible,
then raise the error.
2006-10-31 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/29627
* gfortran.dg/unf_short_record_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118341
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 20:43:39 +0000 (20:43 +0000)]
Fix typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118340
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Tue, 31 Oct 2006 20:17:11 +0000 (20:17 +0000)]
* ChangeLog: Forgotten ChangeLog entry for previous commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118339
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Tue, 31 Oct 2006 20:15:22 +0000 (20:15 +0000)]
PR fortran/29067
* decl.c (gfc_set_constant_character_len): NULL-terminate the
character constant string.
* data.c (create_character_intializer): Likewise.
* expr.c (gfc_simplify_expr): NULL-terminate the substring
character constant.
* primary.c (match_hollerith_constant): NULL-terminate the
character constant string.
* gfortran.dg/pr29067.f: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118338
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 20:11:46 +0000 (20:11 +0000)]
Resync.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118337
138bc75d-0d04-0410-961f-
82ee72b054a4
jsm28 [Tue, 31 Oct 2006 19:58:21 +0000 (19:58 +0000)]
2006-10-31 Joseph Myers <joseph@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* lib/target-supports.exp (get_compiler_messages): Append options
as a single list element.
(check_effective_target_arm_vfp_ok): New.
* gcc.dg/arm-vfp1.c: Use arm_vfp_ok.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118334
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:21:54 +0000 (18:21 +0000)]
Resync.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118333
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:20:42 +0000 (18:20 +0000)]
Add new Ada test cases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118332
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:19:52 +0000 (18:19 +0000)]
2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
Nicolas Setton <setton@adacore.com>
Olivier Hainque <hainque@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* gigi.h: (tree_code_for_record_type): Declare.
(add_global_renaming_pointer): Rename to record_global_renaming_pointer.
(get_global_renaming_pointers): Rename to
invalidate_global_renaming_pointers.
(static_ctors): Delete.
(static_dtors): Likewise.
(gnat_write_global_declarations): Declare.
(create_var_decl): Adjust descriptive comment to indicate that the
subprogram may return a CONST_DECL node.
(create_true_var_decl): Declare new function, similar to
create_var_decl but forcing the creation of a VAR_DECL node.
(get_global_renaming_pointers): Declare.
(add_global_renaming_pointer): Likewise.
* ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
* decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
tree before setting TREE_ADDRESSABLE for by-reference return mechanism
processing.
(gnat_to_gnu_entity): Remove From_With_Type from computation for
imported_p.
<E_Access_Type>: Use the Non_Limited_View as the full view of the
designated type if the pointer comes from a limited_with clause. Make
incomplete designated type if it is in the main unit and has a freeze
node.
<E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
Underlying_Full_View similarly. Return earlier if the full view already
has an associated tree.
(gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
(gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
(gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
reference type built for objects with an address clause.
Use create_true_var_decl with const_flag set for
DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
TREE_READONLY set.
(gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
for Character and Wide_Character types. This info is read by the
dwarf-2 writer, and is needed to be able to use the command "ptype
character" in the debugger.
(gnat_to_gnu_entity): When generating a type representing
a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
so that debug writers can distinguish it from ordinary integers.
(elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
addition to TREE_READONLY to assert the constantness of variables for
elaboration purposes.
(gnat_to_gnu_entity, subprogram cases): Change loops on formal
parameters to call new Einfo function First_Formal_With_Extras.
(gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
protected type with its corresponding discriminant, to obtain a usable
declaration
(gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
for a multiple elaboration of the "equivalent" type.
(gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
into record_global_renaming_pointer.
(gnat_to_gnu_entity) <E_Array_Type>: Do not force
TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
<E_Array_Subtype>: Likewise.
(gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
incomplete subtypes and incomplete subtypes of incomplete types visible
through a limited with clause.
(gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
the base index type for the maximum size of the array only if they are
constant.
(gnat_to_gnu_entity, renaming object case): Do not wrap up the
expression into a SAVE_EXPR if stabilization failed.
* utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
a result decl into DECL_BY_REFERENCE on this decl, now what is expected
by lower level compilation passes.
(gnat_genericize): New function, lowering a function body to GENERIC.
Turn the type of RESULT_DECL into a real reference type if the decl
has been marked DECL_BY_REFERENCE, and adjust references to the latter
accordingly.
(gnat_genericize_r): New function. Tree walking callback for
gnat_genericize.
(convert_from_reference, is_byref_result): New functions. Helpers for
gnat_genericize_r.
(create_type_decl): Call gnat_pushdecl before calling
rest_of_decl_compilation, to make sure that field TYPE_NAME of
type_decl is properly set before calling the debug information writers.
(write_record_type_debug_info): The heuristics which compute the
alignment of a field in a variant record might not be accurate. Add a
safety test to make sure no alignment is set to a smaller value than
the alignment of the field type.
(make_dummy_type): Use the Non_Limited_View as the underlying type if
the type comes from a limited_with clause. Do not loop on the full view.
(GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
(dummy_node_table): New global variable, moved from decl.c.
(GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
(save_gnu_tree): Use above macros.
(get_gnu_tree): Likewise.
(present_gnu_tree): Likewise.
(init_dummy_type): New function, moved from decl.c. Use above macros.
(make_dummy_type): Likewise.
(tree_code_for_record_type): New function extracted from make_dummy_type
(init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
(static_ctors): Change it to a vector, make static.
(static_dtors): Likewise.
(end_subprog_body): Adjust for above change.
(build_global_cdtor): Moved from trans.c.
(gnat_write_global_declarations): Emit global constructor and
destructor, and call cgraph_optimize before emitting debug info for
global declarations.
(global_decls): New global variable.
(gnat_pushdecl): Store the global declarations in global_decls, for
later use.
(gnat_write_global_declarations): Emit debug information for global
declarations.
(create_var_decl_1): Former create_var_decl, with an extra argument to
state whether the creation of a CONST_DECL is allowed.
(create_var_decl): Behavior unchanged. Now a wrapper around
create_var_decl_1 allowing CONST_DECL creation.
(create_true_var_decl): New function, similar to create_var_decl but
forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
(create_field_decl): Do not always mark the field as addressable
if its type is an aggregate.
(global_renaming_pointers): New static variable.
(add_global_renaming_pointer): New function.
(get_global_renaming_pointers): Likewise.
* misc.c (gnat_dwarf_name): New function.
(LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
(gnat_post_options): Add comment about structural alias analysis.
(gnat_parse_file): Do not call cgraph_optimize here.
(LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
* trans.c (process_freeze_entity): Don't abort if we already have a
non dummy GCC tree for a Concurrent_Record_Type, as it might
legitimately have been elaborated while processing the associated
Concurrent_Type prior to this explicit freeze node.
(Identifier_to_gnu): Do not make a variable referenced in a SJLJ
exception handler volatile if it is of variable size.
(process_type): Remove bypass for types coming from a limited_with
clause.
(call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
actual, convert the corresponding gnu_actual to the real destination
type when necessary.
(add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
originally TREE_READONLY but whose elaboration cannot be performed
statically.
Part of fix for F504-021.
(tree_transform, subprogram cases): Change loops on formal parameters to
call new Einfo function First_Formal_With_Extras.
(gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
stemming from type conversion for the lhs.
(Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
number of bits per unit for components of records.
(gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
(Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
with At_End_Proc after the SJLJ EH cleanup.
(Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
compilation unit.
(elaborate_all_entities): Do not retest type_annotate_only.
(tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
result type of an abstract subprogram, which may be an itype associated
with an anonymous access result (related to AI-318-02).
(build_global_cdtor): Move to utils.c.
(Case_Statement_to_gnu): Avoid adding the choice of a when statement if
this choice is not a null tree nor an integer constant.
(gigi): Run unshare_save_expr via walk_tree_without_duplicates
on the body of elaboration routines instead of mark_unvisited.
(add_stmt): Do not mark the tree.
(add_decl_expr): Tweak comment.
(mark_unvisited): Delete.
(unshare_save_expr): New static function.
(call_to_gnu): Issue an error when making a temporary around a
procedure call because of non-addressable actual parameter if the
type of the formal is by_reference.
(Compilation_Unit_to_gnu): Invalidate the global renaming pointers
after building the elaboration routine.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118331
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:16:03 +0000 (18:16 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Thomas Quinot <quinot@adacore.com>
Arnaud Charlet <charlet@adacore.com>
* fmap.adb: Put routines in alpha order
* g-boumai.ads: Remove redundant 'in' keywords
* g-cgi.adb: Minor reformatting
* g-cgi.ads: Remove redundant 'in' keywords
* get_targ.adb: Put routines in alpha order
* prj-attr.ads: Minor reformatting
* s-atacco.ads: Minor reformatting
* scn.adb: Put routines in alpha order
* sinput-l.adb: Minor comment fix
* sinput-p.adb: Minor comment fix
* s-maccod.ads: Minor reformatting
* s-memory.adb: Minor reformatting
* s-htable.adb: Fix typo in comment.
* s-secsta.adb: Minor comment update.
* s-soflin.adb: Minor reformatting
* s-stoele.ads:
Add comment about odd qualification in Storage_Offset declaration
* s-strxdr.adb:
Remove unnecessary 'in' keywords for formal parameters.
* treeprs.adt: Minor reformatting
* urealp.adb: Put routines in alpha order
* s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
taking string.
* s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
* g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
* env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
workaround as on other platforms.
* g-eacodu-vms.adb: Remove redundant 'in' keywords
* g-expect-vms.adb: Remove redundant 'in' keywords
* gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
clear error message if the list-of-files file cannot be opened.
* g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
equality operator is always visible.
* lang.opt: Woverlength-strings: New option.
* nmake.adt:
Update copyright, since nmake.ads and nmake.adb have changed.
* osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
(Binder_Output_Time_Stamps_Set): removed.
(Old_Binder_Output_Time_Stamp): idem.
(New_Binder_Output_Time_Stamp): idem.
(Recording_Time_From_Last_Bind): idem.
(Recording_Time_From_Last_Bind): Make constant.
* output.ads, output.adb (Write_Str): Allow LF characters
(Write_Spaces): New procedure
* prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
* inline.adb: Minor reformatting
* s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
* s-mastop-vms.adb: Remove redundant 'in' keywords
* s-osprim-vms.adb: Remove redundant 'in' keywords
* s-trafor-default.adb: Remove redundant 'in' keywords
* 9drpc.adb: Remove redundant 'in' keywords
* s-osinte-mingw.ads: Minor reformatting
* s-inmaop-posix.adb: Minor reformatting
* a-direio.ads: Remove quotes from Compile_Time_Warning message
* a-exexda.adb: Minor code reorganization
* a-filico.adb: Minor reformatting
* a-finali.adb: Minor reformatting
* a-nudira.ads: Remove quote from Compile_Time_Warning message
* a-numeri.ads: Minor reformatting
* a-sequio.ads: Remove quotes from Compile_Time_Warning message
* exp_pakd.ads: Fix obsolete comment
* a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
Probably not a bug, but certainly neater and more efficient.
* a-tienio.adb: Minor reformatting
* comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
Avoid assuming low bound of string is 1.
* gnatbind.adb: Change Bindusg to package and rename procedure as
Display, which now ensures that it only outputs usage information once.
(Scan_Bind_Arg): Avoid assuming low bound of string is 1.
* g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
Table'First.
* g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
warning.
(Match): Add pragma Assert to ensure that Matches'First is zero
* g-regpat.ads (Match): Document that Matches lower bound must be zero
* makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
documented preconditions (also kills warnings about bad indexes).
* mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
is 1.
(Build_Import_Library): Ditto;
* mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
* rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
* sem_case.adb (Analyze_Choices): Add pragma Assert to check that
lower bound of choice table is 1.
* sem_case.ads (Analyze_Choices): Document that lower bound of
Choice_Table is 1.
* s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
string is 1.
* uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
and add appropriate Assert pragma to suppress warnings.
* atree.h, atree.ads, atree.adb
Change Elist24 to Elist25
Add definitions of Field28 and Node28
(Traverse_Field): Use new syntactic parent table in sinfo.
* cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
* itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
* exp_tss.adb: Put routines in alpha order
* fe.h: Remove redundant declarations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118330
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:15:40 +0000 (18:15 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* s-osinte-tru64.adb:
Mark Asm statements Volatile to prevent warnings (seems a
reasonable change anyway)
Fixes new warnings
* s-mastop-irix.adb: Add Volatile to Asm statements
Suppresses warning, and seems appropriate in any case
* s-osinte-vms.adb: Add Volatile to Asm statement
* s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
* exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
returned.
Add call to Check_Code_Statement
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118329
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:14:24 +0000 (18:14 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Cyrille Comar <comar@adacore.com>
Ben Brosgol <brosgol@adacore.com>
* debug.adb: Update flags documentation
* gnat_ugn.texi: Add documentation for new -gnatwq switch
Clean up documentation for several other warning switches
Clarify how task stack size can be specified with various
versions of Windows.
Add note that -gnatVo includes ranges including loops
Add documentation for -gnatL switch
Add note on elaboration warning for initializing variables
Add documentation for new -gnatwt warning switch
Document new form of pragma Warnings (On|Off, string)
Add comment on use of pragma Warnings to control warnings
Add documentation for -gnatjnn switch
Modify section on interfacing with C for VMS 64-bit.
Add doc for -gnatVe/E
Add documentation of new warning flags -gnatww/-gnatwW
Add warnings about address clause overlays to list of warnings
(Exception Handling Control): Document that the option --RTS must be
used consistently for gcc and gnatbind.
Clarify that inlining is not always possible
Update documentation on pragma Unchecked_Union.
* gnat_rm.texi:
Add documentation for new extended version of pragma Obsolescent
Add documentation for implementation defined attribute 'Stub_Type.
Add note on use of Volatile in asm statements
Add documentation on use of pragma Unreferenced in context clause
Document new form of pragma Warnings (On|Off, pattern)
Document pragma Wide_Character_Encoding
Add note that pragma Restrictions (No_Elaboration_Code) is only fully
enforced if code generation is active.
Add section on pragma Suppress to document GNAT specific check
Alignment_Check
Clarify difference between No_Dispatching_Calls & No_Dispatch.
Add documentation for pragma Restrictions (No_Elaboration_Code)
* gnat-style.texi:
Add comments on layout of subprogram local variables in the
presence of nested subprograms.
* ug_words: Resync.
* elists.ads: Minor reformatting
Node returns Node_Or_Entity_Id (doc change only)
* xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
* g-arrspl.ads (Create): Update comments.
* sem.ads: Add details on the handling of the scope stack.
* usage.adb: Update documentation.
* validsw.ads, validsw.adb:
Add definition of Validity_Check_Components and implement -gnatVe/E
* vms_data.ads: Add missing VMS qualifiers.
* s-addope.ads: Add documentation on overflow and divide by zero
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118328
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:14:09 +0000 (18:14 +0000)]
2006-10-31 Pat Rogers <rogers@adacore.com>
* a-rttiev.ads, a-rttiev.adb:
This is a significant redesign primarily for the sake of automatic
timer task termination but also to fix a design flaw.
Therefore we are now using an RTS lock, instead of a protected
object, to provide mutual exclusion to the queue of pending events
and the type Timing_Event is no longer a protected type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118327
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:13:55 +0000 (18:13 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* symbols-processing-vms-ia64.adb,
symbols-processing-vms-alpha.adb (Process): Do not include symbols
that come from generic instantiations in bodies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118326
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:13:39 +0000 (18:13 +0000)]
2006-10-31 Doug Rupp <rupp@adacore.com>
* g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
Call TBK$SYMBOLIZE without omitting parameters.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118325
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:13:22 +0000 (18:13 +0000)]
2006-10-31 Matt Heaney <heaney@adacore.com>
* a-crbtgo.ads: Commented each subprogram
* a-crbtgo.adb: Added reference to book from which algorithms were
adapted.
* a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
indicate which child.
(Generic_Conditional_Insert): changed parameter name from "Success" to
"Inserted".
(Generic_Unconditional_Insert_With_Hint): improved algorithm
* a-coorse.adb (Replace_Element): changed parameter name in call to
conditional insert operation.
* a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
* a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
Generic_Iteration
* a-ciorse.adb (Replace_Element): changed parameter name in call to
conditional insert operation.
* a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
Generic_Iteration.
* a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
instead of mode inout.
* a-chtgop.adb (Adjust): modified comments to reflect current AI-302
draft
(Generic_Read): preserve existing buckets array if possible
(Generic_Write): don't send buckets array length anymore
* a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
instead of mode inout.
* a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
(Iterate): manipulate busy-bit here, instead of in Generic_Iteration
* a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
(Iterate): manipulate busy-bit here, instead of in Generic_Iteration
(Replace_Element): local operation is now an instantiation
* a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
check current length.
(Generic_Replace_Element): new operation
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118324
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:13:06 +0000 (18:13 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* makegpr.adb (Check_Compilation_Needed): Take into account path names
with spaces.
(Check_Compilation_Needed): When checking a C or C++ source, do not
resolve symbolic links.
(Display_Command): New Boolean parameter Ellipse, defaulted to False.
When not in verbose mode and Ellipse is True, display "..." for the
first argument with Display set to False.
(Build_Global_Archive): Always set Display True for the first object
file. Call Display_Command with Ellipse set to True.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118323
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:12:50 +0000 (18:12 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118322
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:12:34 +0000 (18:12 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
in file names.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118321
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:12:23 +0000 (18:12 +0000)]
2006-10-31 Olivier Hainque <hainque@adacore.com>
* s-stchop.ads: make this unit preelaborate. This is desirable in
general and made mandatory by the use of this unit by s-taprop which
is itself preelaborate.
* s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
Td_Events component.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118320
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:12:08 +0000 (18:12 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
add more precise check for the character sequence that follows '[' to
avoid possible confusion in case if '[' is the last character of a
string literals.
(Scan_Wide): Always allow brackets encoding
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118319
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:11:57 +0000 (18:11 +0000)]
2006-10-31 Jose Ruiz <ruiz@adacore.com>
* s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
requeuing to the same protected object to give higher priority tasks
the opportunity to execute.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118318
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:11:44 +0000 (18:11 +0000)]
2006-10-31 Javier Miranda <miranda@adacore.com>
* s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
(Get_Ceiling): New subprogram that returns
the ceiling priority of the protected object.
(Set_Ceiling): New subprogram that sets the new ceiling priority of
the protected object.
* s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
* s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118317
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:11:33 +0000 (18:11 +0000)]
2006-10-31 Gary Dismukes <dismukes@adacore.com>
* s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
True when AAMP extended floating-point is in use (48-bit). Change type
ByteLF to ByteLLF, add new array type ByteLF and condition the size of
the two byte array types on AFloat. Change type of IV_Ilf overlay
variable from Byte8 to ByteLF. Add appropriate initializations of
floating-point overlays for AAMP cases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118316
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:11:19 +0000 (18:11 +0000)]
2006-10-31 Arnaud Charlet <charlet@adacore.com>
* s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
Remove elaboration code, now done in the binder.
* s-rident.ads: Make this unit Preelaborate.
(No_Restrictions): New constant used to clean up code and follow
preelaborate constraints.
* s-stalib.adb:
Add System.Restrictions dependence, referenced directly from the
binder generated file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118315
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:11:05 +0000 (18:11 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com>
Bob Duff <duff@adacore.com>
* sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
print null exclusion twice in the case of an access definition,
Implement new -gnatL switch
Remove N_Return_Object_Declaration. We now use
N_Object_Declaration instead. Implement the case for
N_Extended_Return_Statement. Alphabetize the cases.
Add cases for new nodes N_Extended_Return_Statement and
N_Return_Object_Declaration. The code is not yet written.
Update the output for N_Formal_Object_Declaration
and N_Object_Renaming_Declaration.
(Write_Itype): Account for the case of a modular integer subtype whose
base type is private.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118314
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:10:46 +0000 (18:10 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Bob Duff <duff@adacore.com>
* sinfo.ads, sinfo.adb (Set_Synchronized_Present,
Synchronized_Present): Add Formal_Derived_Type_Definition and
Private_Extension_Declaration to the list of assertions.
(Is_Entry_Barrier_Function): New flag
(Has_Self_Reference): New flag on aggregates, to indicate that they
contain a reference to the enclosing type, inserted through a default
initialization.
(Next_Rep_Item): Move from Node4 to Node5.
(Entity): Add this field for N_Attribute_Definition_Clause.
(Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
(N_Return_Object_Declaration): Remove this node kind. We now use
N_Object_Declaration instead.
(Actual_Designated_Subtype): Move to a different place to make room in
N_Extended_Return_Statement.
(Procedure_To_Call): Move to a different place to make room in
N_Extended_Return_Statement.
(Return_Type): Removed this field to make room in return statements
(both kinds).
(Return_Statement_Entity): New field in return statements, in part to
replace Return_Type, and in part to support the fact that return
statements are now pushed on the scope stack during semantic analysis.
(Return_Object_Declarations): New field to support extended return
statements.
(N_Extended_Return_Statement): New node for extended_return_statement
nonterminal.
(N_Return_Object_Declaration): New node for part of
extended_return_statement nonterminal. Needed because all the necessary
fields won't fit in N_Extended_Return_Statement.
Generic_associations now carry the Box_Present flag, to indicate a
default for an actual in a partially parametrized formal package.
* snames.h, snames.ads, snames.adb: Add definition for Validity_Check
(Preset_Names): Add entries for Priority_Specific_Dispatching pragma
and for the new predefined dispatching policies: EDF_Across_Priorities,
Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
Introduce new name Stub_Type for implementation defined attribute.
Add pragma Preelaborable_Initialization
Add entry for Priority attribute.
Add Pragma_Wide_Character_Encoding
(Get_Convention_Name): Given a convention id, this function returns the
corresponding name id from the names table.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118313
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:10:11 +0000 (18:10 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
messages for entities in packages which are not used.
(Collect_Synchronized_Interfaces): New procedure.
(Overrides_Synchronized_Primitive): New function.
(Denotes_Discriminant): Extend predicate to apply to task types.
Add missing continuation marks in error msgs
(Unqualify): New function for removing zero or more levels of
qualification from an expression. There are numerous places where this
ought to be used, but we currently only deal properly with zero or one
level.
(In_Instance); The analysis of the actuals in the instantiation of a
child unit is not within an instantiation, even though the parent
instance is on the scope stack.
(Safe_To_Capture_Value): Exclude the case of variables that are
renamings.
(Check_Obsolescent): Removed
(Is_Aliased_View): A reference to an enclosing instance in an aggregate
is an aliased view, even when rewritten as a reference to the target
object in an assignment.
(Get_Subprogram_Entity): New function
(Known_To_Be_Assigned): New function
(Type_Access_Level): Compute properly the access level of a return
subtype that is an anonymous access type.
(Explain_Limited_Type): Correct use of "\" for continuation messages.
(Is_Transfer): The new extended_return_statement causes a transfer of
control.
(Has_Preelaborable_Initialization): New function
(Has_Null_Exclusion): New function. Given a node N, determine whether it
has a null exclusion depending on its Nkind.
Change Is_Lvalue to May_Be_Lvalue
(May_Be_Lvalue): Extensive additional code to deal with subprogram
arguments (IN parameters are not Lvalues, IN OUT parameters are).
(Safe_To_Capture_Value): Extend functionality so it can be used for
the current value condition case.
(Has_Compatible_Alignment): New function
(Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
objects to handle the Ada 2005 case, where aliasedness no longer implies
that the object is constrained. In particular, for dereferenced names,
the designated object must be assumed to be unconstrained.
(Kill_Current_Values): Properly deal with the case where we encounter
a loop in the scope chain.
(Safe_To_Capture_Value): Do not let a loop stop us from capturing
a value.
(Compile_Time_Constraint_Error): Improve error message in error case
* exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
associated with entities of abstract interface primitives.
Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118312
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:09:49 +0000 (18:09 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
Javier Miranda <miranda@adacore.com>
* sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
subprogram type to provide better diagnostics in case of ambiguity.
(Covers): Handle coverage of formal and actual anonymous access types in
the context of generic instantiation.
(Covers/Interface_Present_In_Ancestors): Use the base type to manage
abstract interface types; this is required to handle concurrent types
with discriminants and abstract interface types.
(Covers): Include type coverage of both regular incomplete subtypes and
incomplete subtypes of incomplete type visibles through a limited with
clause.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118311
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:09:38 +0000 (18:09 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* sem_eval.adb (Compile_Time_Compare): Make use of information from
Current_Value in the conditional case, to evaluate additional
comparisons at compile time.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118310
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:09:19 +0000 (18:09 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
Add new calls to this procedure during traversal
(Activate_Elaborate_All_Desirable): Do not set elaboration flag on
another unit if expansion is disabled.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118309
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:09:03 +0000 (18:09 +0000)]
2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
inherited from an interface ancestor by another interface in the
context of an instance as 'late'.
(Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
of a call to a function that dispatches on access result.
(Check_Dispatching_Operation): In case of late overriding of a primitive
that covers abstract interface subprograms we register it in all the
secondary dispatch tables associated with abstract interfaces.
(Check_Dispatching_Call): Add check that a dispatching call is not made
to a function with a controlling result of a limited type. This is a
current implementation restriction.
(Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
(Check_Dispatching_Operation): Do no emit a warning if the controlling
argument is an interface type that is a generic formal.
(Is_Interface_Subprogram): Removed.
(Check_Dispatching_Operation): If the subprogram is not a dispatching
operation, check the formals to handle the case in which it is
associated with an abstract interface type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118308
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:08:46 +0000 (18:08 +0000)]
2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* sem_ch9.adb (Analyze_Protected_Definition): Remove call to
Check_Overriding_Indicator.
(Analyze_Task_Definition): Ditto.
(Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
(Check_Overriding_Indicator): To find overridden interface operation,
examine only homonyms that have an explicit subprogram declaration, not
inherited operations created by an unrelated type derivation.
(Check_Overriding_Indicator): When checking for the presence of "null"
in a procedure, ensure that the queried node is a procedure
specification.
(Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
type when the formal is an access to variable.
(Analyze_Protected_Type): Add check for Preelaborable_Initialization
(Analyze_Task_Type): Same addition
(Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
provide navigation capabilities for entries.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118307
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:08:29 +0000 (18:08 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
Javier Miranda <miranda@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb: Minor error msg rewording
(Undefined): When checking for misspellings, invert arguments (to get
expected and found set right)
(Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
(Analyze_Generic_Renaming): Same fix
(Use_One_Package): Do not take into account the internal entities of
abstract interfaces during the analysis of entities that are marked
as potentially use-visible.
(Find_Type): Handle the case of an attribute reference for
implementation defined attribute Stub_Type (simply let the analysis of
the attribute reference rewrite it).
(Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
type that appears in a Use_Type clause.
(Analyze_Object_Renaming): Add support for renaming of the Priority
attribute.
(Find_Type): In Ada 2005, a task type can be used within its own body,
when it appears in an access definition.
(Analyze_Object_Renaming): Remove warning on null_exclusion.
(Analyze_Object_Renaming): Introduce checks for required null exclusion
in a formal object declaration or in a subtype declaration.
(Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
(Check_Null_Exclusion): New local routine to
Analyze_Subprogram_Renaming. Check whether the formals and return
profile of a renamed subprogram have required null exclusions when
their counterparts of the renaming already impose them.
(In_Generic_Scope): New local routine to Analyze_Object_Renaming.
Determine whether an entity is inside a generic scope.
(In_Open_Scope): First pass of documentation update.
(Find_Expanded_Name): Add support for shadow entities associated with
limited withed packages. This is required to handle nested packages.
(Analyze_Package_Renaming): Remove the restriction imposed by AI-217
that makes a renaming of a limited withed package illegal.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118306
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:08:12 +0000 (18:08 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
of Analyze_Package_Body, to create Itype references for anonymous
access types created in the package declaration, whose designated types
may have only a limited view.
(Analyze_Package_Specification): For the private part of a nested
package, install private_with_clauses of enclosing compilation unit if
we are in its visible part.
(Declare_Inherited_Private_Subprograms): Complete barrier
to ensure that the primitive operation has an alias to some parent
primitive. This is now required because, after the changes done for the
implementation of abstract interfaces, the contents of the list of
primitives has entities whose alias attribute references entities of
such list of primitives.
(Analyze_Package_Specification): Simplify code that handles parent units
of instances and formal packages.
(Uninstall_Declarations): Check the convention consistency among
primitive overriding operations of a tagged record type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118305
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:07:52 +0000 (18:07 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
Bob Duff <duff@adacore.com>
* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
procedure cannot be a protected operation (it is a basic_declaration,
not a subprogram_declaration).
(Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
Subp. Add logic for entry processing.
(Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
Determine whether an entry or subprogram of a protected or task type
override an inherited primitive of an implemented interface.
(New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
Update the actual used in calls to Check_Overriding_Indicator.
(Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
generate the proper reference to the parent unit, for cross-reference.
(Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
Is_Formal.
Add -gnatd.l --Use Ada 95 semantics for limited function returns,
(Add_Extra_Formal): Revise procedure to allow passing in associated
entity, scope, and name suffix, and handle setting of the new
Extra_Formals field.
(Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
pass new parameters. Add support for adding the new extra access formal
for functions whose calls are treated as build-in-place.
(Analyze_A_Return_Statement): Correct casing in error message.
Move Pop_Scope to after Analyze_Function_Return, because an extended
return statement really is a full-fledged scope. Otherwise, visibility
doesn't work right. Correct use of "\" for continuation messages.
(Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
evilly trying to call Analyze_Object_Declaration directly. Otherwise,
the node doesn't get properly marked as analyzed.
(Analyze_Subprogram_Body): If subprogram is a function that returns
an anonymous access type that denotes a task, build a Master Entity
for it.
(Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
proper usage of null exclusion in a result definition.
(Process_Formals): Code cleanup and new error message.
(Process_Formals): Detect incorrect application of null exclusion to
non-access types.
(Conforming_Types): Handle conformance between [sub]types and itypes
generated for entities that have null exclusions applied to them.
(Maybe_Primitive_Operation): Add an additional type retrieval when the
base type is an access subtype. This case arrises with null exclusions.
(New_Overloaded_Entity): Do not remove the overriden entity from the
homonym chain if it corresponds with an abstract interface primitive.
(Process_Formals): Replace membership test agains Incomplete_Kind with a
call to the synthesized predicate Is_Incomplete_Type.
(Analyze_Subprogram_Body): Check wrong placement of abstract interface
primitives.
(Analyze_Subprogram_Declaration): Check that abstract interface
primitives are abstract or null.
(Analyze_Subprogram_Specification): Remove previous check for abstract
interfaces because it was not complete.
(Has_Interface_Formals): Removed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118304
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:07:33 +0000 (18:07 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
warn on infinite loops.
Add \\ to some continuation messages
(Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
(Process_Bounds): If the bounds are integer literals that result from
constant-folding, and they carry a user-defined type, preserve that type
rather than treating this as an integer range.
(Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
(Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
(Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
left hand side of assignment.
(Analyze_Assignment): Add suport to manage assigments to the attribute
priority of a protected object.
(Check_Possible_Current_Value_Condition): Allow fully qualified names
not just identifiers.
(Check_Possible_Current_Value_Condition): Acquire left operand of AND
or AND THEN for possible tracking.
(Analyze_Iteration_Scheme): Check for setting Current_Value for the
case of while loops so we can track values in the loop body.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118303
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:07:13 +0000 (18:07 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
Robert Dewar <dewar@adacore.com>
* sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
generate the same errors compiling under -gnatc.
(Try_Object_Operation): If no candidate interpretation succeeds, but
there is at least one primitive operation with the right name, report
error in call rather than on a malformed selected component.
(Analyze_Selected_Component): If the prefix is an incomplete type from
a limited view, and the full view is available, use the full view to
determine whether this is a prefixed call to a primitive operation.
(Operator_Check): Verify that a candidate interpretation is a binary
operation before checking the type of its second formal.
(Analyze_Call): Add additional warnings for function call contexts not
yet supported.
(Analyze_Allocator): Move the check for "initialization not allowed for
limited types" after analyzing the expression. This is necessary,
because OK_For_Limited_Init looks at the structure of the expression.
Before analysis, we don't necessarily know what sort of expression it
is. For example, we don't know whether F(X) is a function call or an
indexed component; the former is legal in Ada 2005; the latter is not.
(Analyze_Allocator): Correct code for AI-287 -- extension aggregates
were missing. We also didn't handle qualified expressions. Now also
allow function calls. Use new common routine OK_For_Limited_Init.
(Analyze_Type_Conversion): Do not perform some legality checks in an
instance, because the error message will be redundant or spurious.
(Analyze_Overloaded_Selected_Component): Do not do style check when
setting an entity, since we do not know it is the right entity yet.
(Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
(Analyze_Overloaded_Selected_Component): Same change
(Analyze_Selected_Component): Remove unnecessary prefix type retrieval
since regular incomplete subtypes are transformed into corresponding
subtypes of their full views.
(Complete_Object_Operation): Treat name of transformed subprogram call
as coming from source, for browsing purposes.
(Try_Primitive_Operation): If formal is an access parameter, compare
with base type of object to determine whether it is a primitive
operation.
(Operator_Check): If no interpretation of the operator matches, check
whether a use clause on any candidate might make the operation legal.
(Try_Class_Wide_Operation): Check whether the first parameter is an
access type whose designated type is class-wide.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118302
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:06:54 +0000 (18:06 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Thomas Quinot <quinot@adacore.com>
* sem_ch13.adb: Storage pool cannot be given for access to subprogram
type.
(New_Stream_Subprogram): When processing an attribute definition clause
for a stream-oriented subprogram, record an entity node occurring at
the point of clause to use for checking the visibility of the clause,
as defined by 8.3(23) as amended by AI-195.
(New_Stream_Subprogram): New procedure, factoring behaviour from both
New_Stream_Function and New_Stream_Procedure.
(New_Stream_Function, New_Stream_Procedure): Removed.
(Analyze_Attribute_Definition_Clause, case Address): Check new
Alignment_Check check
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118301
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:06:39 +0000 (18:06 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
that has been constant-folded, preserve information of original tree,
for ASIS uses.
(Analyze_Formal_Derived_Type): Set the limited present flag of the newly
generated private extension declaration if the formal derived type is
synchronized. Carry synchronized present over to the generated private
extension.
(Validate_Derived_Type_Instance): Ensure that the actual of a
synchronized formal derived type is a synchronized tagged type.
(Instantiate_Formal_Package): When creating the instantiation used to
validate the actual package of a formal declared without a box, check
whether the formal itself depends on a prior actual.
(Instantiate_Formal_Subprogram): Create new entities for the defining
identifiers of the formals in the renaming declaration, for ASIS use.
(Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
a renaming declaration or a subtype declaration for an actual in an
instance, capture location information of declaration in generic, for
ASIS use.
(Instantiate_Formal_Package): Add comments on needed additional tests.
AI-317 (partial parametrization) is fully implemented.
(Validate_Private_Type_Instance): Add check for actual which
must have preelaborable initialization
Use new // insertion for some continuation messages
(Analyze_Formal_Object_Declaration): Change usage of Expression to
Default_Expression. Add type retrieval when the declaration has an
access definition. Update premature usage of incomplete type check.
(Check_Access_Definition): New subsidiary routine. Check whether the
current compilation version is Ada 05 and the supplied node has an
access definition.
(Instantiate object): Alphabetize local variables. Handle the creation
of new renaming declarations with respect to the kind of definition
used - either an access definition or a subtype mark. Guard against
unnecessary error message in the context of anonymous access types after
they have been resolved. Add check for required null exclusion in a
formal object declaration.
(Switch_View): A private subtype of a non-private type needs to be
switched (the base type can have been switched without its private
dependents because of the last branch of Check_Private_View.
(Check_Private_View): Do not recompute Base_Type (T), instead use cached
value from BT.
(Instantiate_Type): Emit an error message whenever a class-wide type of
a tagged incomplete type is used as a generic actual.
(Find_Actual_Type): Extend routine to handle a component type in a child
unit that is imported from a formal package in a parent.
(Validate_Derived_Type_Instance): Check that analyzed formal and actual
agree on constrainedness, rather than checking against ultimate ancestor
(Instantiate_Subprogram_Body): Create a cross-reference link to the
generic body, for navigation purposes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118300
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:06:22 +0000 (18:06 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* sem_ch11.adb (Analyze_Handled_Statements): Move final test for
useless assignments here and conditionalize it on absence of exception
handlers.
(Analyze_Exception_Handlers): Small code reorganization of error
detection code, for new handling of formal packages.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118299
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:06:06 +0000 (18:06 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
Thomas Quinot <quinot@adacore.com>
Javier Miranda <miranda@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
properly an attempt to apply Unchecked_Access to a protected operation.
(OK_Self_Reference): New subprogram to check the legality of an access
attribute whose prefix is the type of an enclosing aggregate.
Generalizes previous mechanism to handle attribute references nested
arbitrarily deep within the aggregate.
(Analyze_Access_Attribute): An access attribute whose prefix is a type
can appear in an aggregate if this is a default-initialized aggregate
for a self-referential type.
(Resolve_Attribute, case Access): Ditto.
Add support for new implementation defined attribute Stub_Type.
(Eval_Attribute, case Attribute_Stub_Type): New case.
(Analyze_Attribute, case Attribute_Stub_Type): New case.
(Stream_Attribute_Available): Implement using new subprogram from
sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
Has_Specified_Stream_Attribute flag.
Disallow Storage_Size and Storage_Pool for access to subprogram
(Resolve_Attribute, case 'Access et al): Take into account anonymous
access types of return subtypes in extended return statements. Remove
accessibility checks on anonymous access types when Unchecked_Access is
used.
(Analyze_Attribute): Add support for the use of 'Class to convert
a class-wide interface to a tagged type.
Add support for the attribute Priority.
(Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
whether the designated type is discriminated with a constrained partial
view and require static matching in that case.
Add local variable Des_Btyp. The Designated_Type
of an access to incomplete subtype is either its non-limited view if
coming from a limited with or its etype if regular incomplete subtype.
* sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
Fix predicate to identify and allow cases of (expander-generated)
references to tag of designated object of a RACW.
(Validate_Static_Object_Name): In Ada 2005, a formal object is
non-static, and therefore cannot appear as a primary in a preelaborable
package.
(Has_Stream_Attribute_Definition): New subprogram, abstracted from
Has_Read_Write_Attributes.
(Has_Read_Write_Attributes): Reimplement in termes of
Has_Stream_Attribute_Definition.
(Missing_Read_Write_Attributes): When checking component types in a
record, unconditionally call Missing_Read_Write_Attributes recursively
(remove guard checking for Is_Record_Type / Is_Access_Type).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118298
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:05:47 +0000 (18:05 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* scng.adb (Scan, case of numeric literal): Better msg for identifier
starting with a digit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118297
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:05:34 +0000 (18:05 +0000)]
* rtsfind.adb: Remove s-polint from comment as it exists no more.
* rtsfind.ads:
Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
Move all the entities in obsolete package System.PolyORB_Interface to
System.Partition_Interface.
(RE_Storage_Size): New function in System.Tasking.
(RE_Get_Ceiling): New entity.
(RE_Set_Ceiling): New entity.
(RO_PE_Get_Ceiling): New entity.
(RO_RE_Set_Ceiling): New entity.
(Inherit_CPP_DT): New entity
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118296
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:05:19 +0000 (18:05 +0000)]
2006-10-31 Arnaud Charlet <charlet@adacore.com>
Robert Dewar <dewar@adacore.com>
* restrict.ads, restrict.adb (Restriction_Active): Now returns False if
only a restriction warning is active for the given restriction. This is
desirable because we do not want to modify code in the case where only
a warning is set.
(Set_Profile_Restrictions): Make sure that a Profile_Warnings never
causes overriding of real restrictions.
Take advantage of new No_Restrictions constant.
* raise.h: (__gnat_set_globals): Change profile.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118295
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:04:59 +0000 (18:04 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* repinfo.adb (List_Entities): Don't list entities from renaming
declarations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118294
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:04:45 +0000 (18:04 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
on VMS, change "__" to '.' before checking the name.
(Record_Ada_Source): Always add the source file name in the list of
of sources, even if it is not the first time, as it is for another
source index.
(Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
dot, instead of replacing only the first '_'.
* prj-part.adb (Parse): Convert project file path to canonical form
* prj-proc.adb (Recursive_Process): Make sure that, when a project is
extended, the project id of the project extending it is recorded in its
data, even when it has already been processed as an imported project.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118293
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:04:28 +0000 (18:04 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
(Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
Packages_To_Check.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118292
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:04:10 +0000 (18:04 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
unknown attribute in unknown package or in package that does not need
to be checked.
(Parse_Package_Declaration): Do not issue warning for unknown package in
quiet output.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118291
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:03:53 +0000 (18:03 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Javier Miranda <miranda@adacore.com>
* par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
(P_Type_Declaration): Remove barrier against the reserved word "limited"
after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
(P_Type_Declaration): Minor code cleanup. Add support for synchronized
private extensions.
(P_Type_Declaration): Add the new actual Abstract_Present to every call
to P_Interface_Type_Definition.
(P_Interface_Type_Definition): Addition of one formal to report an error
if the reserved word abstract has been previously found.
(P_Identifier_Declarations): Update grammar rules. Handle parsing of an
object renaming declaration with an access definition or subtype mark
with a possible null exclusion.
* par-ch9.adb: Minor error msg fix
* par-load.adb: Add missing continuation mark to error msg
* par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118290
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:03:23 +0000 (18:03 +0000)]
2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
Javier Miranda <miranda@adacore.com>
* par-ch12.adb: Grammar update and cleanup.
(P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
support for synchronized derived type definitions.
Add the new actual Abstract_Present to every call to
P_Interface_Type_Definition.
(P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
a formal object declaration with an access definition or a subtype mark
with a null exclusion.
(P_Generic_Association): Handle association with box, and others_choice
with box, to support Ada 2005 partially parametrized formal packages.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118289
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:03:00 +0000 (18:03 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* par-ch10.adb (P_Context_Clause): Minor error message fix
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118288
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:02:40 +0000 (18:02 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
Process_Body_Clauses): If the context of a body includes a use clause
for P.Q then a with_clause for P in the same body is not redundant,
even if the spec also has a with_clause on P.
Add missing continuation mark to error msg
(Build_Limited_Views): A limited view of a type is tagged if its
declaration includes a record extension.
(Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
node, even if the subunit has errors. This avoids malfunction by
Lib.Check_Same_Extended_Unit in the presence of syntax errors.
(Analyze_Compilation_Unit): Add circuit to make sure we get proper
generation of obsolescent messages for with statements (cannot do
this too early, or we cannot implement avoiding the messages in the
case of obsolescent units withing obsolescent units).
(Install_Siblings): If the with_clause is on a remote descendant of
an ancestor of the current compilation unit, find whether there is
a sibling child unit that is immediately visible.
(Remove_Private_With_Clauses): New procedure, invoked after completing
the analysis of the private part of a nested package, to remove from
visibility the private with_clauses of the enclosing package
declaration.
(Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
now centralized in Generate_Reference.
(Install_Limited_Context_Clauses): Remove superfluous error
message associated with unlimited view visible through use
and renamings. In addition, at the point in which the error
is reported, we add the backslash to the text of the error
to ensure that it is reported as a single error message.
Use new // insertion for some continuation messages
(Expand_Limited_With_Clause): Use copy of name rather than name itself,
to create implicit with_clause for parent unit mentioned in original
limited_with_clause.
(Install_Limited_With_Unit): Set entity of parent identifiers if the
unit is a child unit. For ASIS queries.
(Analyze_Subunit): If the subunit appears within a child unit, make all
ancestor child units directly visible again.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118287
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:02:17 +0000 (18:02 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* mlib-utl.adb (Initialized): Remove, no longer used
(Initialize): Remove, no longer used
(Ar): If Ar_Exec is null, get the location of the archive builder and,
if there is one, the archive indexer. Fail if the archive builder cannot
be found.
(Gcc): If the driver path is unknown, get it. Fail if the driver cannot
be found.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118286
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:02:00 +0000 (18:02 +0000)]
2006-10-31 Thomas Quinot <quinot@adacore.com>
Eric Botcazou <ebotcazou@adacore.com>
Arnaud Charlet <charlet@adacore.com>
* Makefile.in: Set EH mechanism to ZCX for FreeBSD.
(NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
possible.
(a-except.o): Pass it to the compiler.
(gnatlib-shared-vms): Removed -nostartfiles switch in link step.
(LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
a-calend-mingw.adb version.
* Makefile.rtl: Added s-dsaser.
Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
(GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
Ada.Dispatching.Round_Robin.
Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
* Make-lang.in: Remove all references to gt-ada-decl.h.
Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
sources.
Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
Update dependencies.
* system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118285
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:01:41 +0000 (18:01 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* lib-load.adb (Load_Unit): Skip the test for a unit not found when
its file has already been loaded, according to the unit being loaded,
not to the current value of Multiple_Unit_Index.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118284
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:01:28 +0000 (18:01 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* layout.adb (Layout_Record_Type): Deal with non-static subtypes of
variant records
(Layout_Variant_Record): Retrieve the discriminants from the entity
rather than from the type definition, because in the case of a full
type for a private type we need to take the discriminants from the
partial view.
(Layout_Component_List): When applying the Max operator to variants with
a nonstatic size, check whether either operand is static and scale that
operand from bits to storage units before applying Max.
(Layout_Type): In VMS, if a C-convention access type has no explicit
size clause (and does not inherit one in the case of a derived type),
then the size is reset to 32 from 64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118283
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:01:11 +0000 (18:01 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118282
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:00:56 +0000 (18:00 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* g-speche.ads, g-speche.adb: Add special case to recognize misspelling
initial letter o as a zero.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118281
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:00:42 +0000 (18:00 +0000)]
2006-10-31 Thomas Quinot <quinot@adacore.com>
* g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
to No_Socket.
(Selector_Type): Add default value of No_Socket for R_Sig_Socket and
W_Sig_Socket.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118280
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:00:29 +0000 (18:00 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
absolute path name.
(Locate_Regular_File): Ditto
(Change_Dir): Remove, no longer used
(Normalize_Pathname): Do not use Change_Dir to get the drive letter
on Windows. Get it calling Get_Current_Dir.
(OpenVMS): Remove imported boolean, no longer needed.
(Normalize_Pathname)[VMS]: Do not resolve directory names.
(Pid_To_Integer): New function to convert a Process_Id to Integer
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118279
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 18:00:14 +0000 (18:00 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
instead of ADA_PROJECT_PATH, for the project path.
(Gnatls): When displaying the project path directories, use host dir
specs.
* prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
names in the project path, as absolute paths may correspond to
multi-valued VMS logical names.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118278
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:59:58 +0000 (17:59 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
call it with -static-libgcc, as there are some platforms, such as
Darwin, where one of these two switches is compulsory to link.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118277
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:59:45 +0000 (17:59 +0000)]
2006-10-31 Arnaud Charlet <charlet@adacore.com>
Robert Dewar <dewar@adacore.com>
* gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
handling executable extension manually and duplicating code.
* make.adb: Implement new -S switch
(Gnatmake): Use new function Osint.Executable_Name instead
of handling executable extension manually.
* prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
is specified, the executable name ends with this suffix.
Take advantage of Osint.Executable_Name instead of duplicating code.
* switch-m.adb: Recognize new gnatmake -S switch
* targparm.ads, targparm.adb (Executable_Extension_On_Target): New
variable.
(Get_Target_Parameters): Set Executable_Extension_On_Target if
available.
* makeusg.adb: Add line for gnatmake -S switch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118276
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:59:28 +0000 (17:59 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* g-debpoo.adb (Is_Valid): Correctly compute Offset using
Integer_Address arithmetic, as in Set_Valid.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118275
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:59:12 +0000 (17:59 +0000)]
2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
* g-catiio.ads, g-catiio.adb (Value): New function.
Given an input String, try and parse a valid Time value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118274
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:58:48 +0000 (17:58 +0000)]
2006-10-31 Bob Duff <duff@adacore.com>
Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* g-awk.adb (Default_Session, Current_Session): Compile this file in
Ada 95 mode, because it violates the new rules for AI-318.
* g-awk.ads: Use overloaded subprograms in every case where we used to
have a default of Current_Session. This makes the code closer to be
correct for both Ada 95 and 2005.
* g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
code, relying on the fact that the compiler generates a warning
instead of an error in -gnatg mode.
* lib-xref.ads (Xref_Entity_Letters): Add entry for new
E_Return_Statement entity kind.
Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
* par.adb (P_Interface_Type_Definition): Addition of one formal to
report an error if the reserved word abstract has been previously found.
(SS_End_Type): Add E_Return for new extended_return_statement syntax.
* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
parenthesized range attribute usage
(P_Expression_No_Right_Paren): Add missing comment about error recovery.
* par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
in the syntax for extended_return_statement. This is not in the latest
RM, but the ARG is expected to issue an AI allowing this.
(P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
N_Return_Object_Declaration. We now use N_Object_Declaration instead.
(P_Return_Object_Declaration, P_Return_Subtype_Indication,
P_Return_Statement): Parse the new syntax for extended_return_statement.
* par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
Output_End_Missing): Add error-recovery code for the new
extended_return_statement syntax; that is, the new E_Return entry on
the scope stack.
* s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
limited to nonlimited, because otherwise we violate the new Ada 2005
rules about returning limited types in function Create_AST_Handler in
s-asthan.adb.
* sem.adb (Analyze): Add cases for new node kinds
N_Extended_Return_Statement and N_Return_Object_Declaration.
* sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
type is in the same category as type of context before applying check,
to prevent anomalies in instantiations.
(Resolve_Aggregate): Remove test for limited components in aggregates.
It's unnecessary in Ada 95, because if it has limited components, then
it must be limited. It's wrong in Ada 2005, because limited aggregates
are now allowed.
(Resolve_Record_Aggregate): Move check for limited types later, because
OK_For_Limited_Init requires its argument to have been resolved.
(Get_Value): When copying the component default expression for a
defaulted association in an aggregate, use the sloc of the aggregate
and not that of the original expression, to prevent spurious
elaboration errors, when the expression includes function calls.
(Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
were missing. We also didn't handle qualified expressions. Now also
allow function calls. Use new common routine OK_For_Limited_Init.
(Resolve_Extension_Aggregate): Minor fix to bad error message (started
with space can upper case letter).
* sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
Has_Static_Discriminants flag
(Record_Type_Declaration): Diagnose an attempt to declare an interface
type with discriminants.
(Process_Range_Expr_In_Decl): Do validity checks on range
(Build_Discriminant_Constraints): Use updated form of
Denotes_Discriminant.
(Process_Subtype): If the subtype is a private subtype whose full view
is a concurrent subtype, introduce an itype reference to prevent scope
anomalies in gigi.
(Build_Derived_Record_Type, Collect_Interface_Primitives,
Record_Type_Declaration): The functionality of the subprograms
Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
is now performed by a single routine.
(Build_Derived_Record_Type): If the type definition includes an explicit
indication of limitedness, then the type must be marked as limited here
to ensure that any access discriminants will not be treated as having
a local anonymous access type.
(Check_Abstract_Overriding): Issue a detailed error message when an
abstract subprogram was not overridden due to incorrect mode of its
first parameter.
(Analyze_Private_Extension_Declaration): Add support for the analysis of
synchronized private extension declarations. Verify that the ancestor is
a limited or synchronized interface or in the generic case, the ancestor
is a tagged limited type or synchronized interface and all progenitors
are either limited or synchronized interfaces.
Derived_Type_Declaration): Check for presence of private extension when
dealing with synchronized formal derived types.
Process_Full_View): Enchance the check done on the usage of "limited" by
testing whether the private view is synchronized.
Verify that a synchronized private view is completed by a protected or
task type.
(OK_For_Limited_Init_In_05): New function.
(Analyze_Object_Declaration): Move check for limited types later,
because OK_For_Limited_Init requires its argument to have been resolved.
Add -gnatd.l --Use Ada 95 semantics for limited function returns,
in order to alleviate the upward compatibility introduced by AI-318.
(Constrain_Corresponding_Record): If the constraint is for a component
subtype, mark the itype as frozen, to avoid out-of-scope references to
discriminants in the back-end.
(Collect_Implemented_Interfaces): Protect the recursive algorithm of
this subprogram against wrong sources.
(Get_Discr_Value, Is_Discriminant): Handle properly references to a
discriminant of limited type completed with a protected type, when the
discriminant is used to constrain a private component of the type, and
expansion is disabled.
(Find_Type_Of_Object): Do not treat a return subtype that is an
anonymous subtype as a local_anonymous_type, because its accessibility
level is the return type of the enclosing function.
(Check_Initialization): In -gnatg mode, turn the error "cannot
initialize entities of limited type" into a warning.
(OK_For_Limited_Init): Return true for generated nodes, since it
sometimes violates the legality rules.
(Make_Incomplete_Declaration): If the type for which an incomplete
declaration is created happens to be the currently visible entity,
preserve the homonym chain when removing it from visibility.
(Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
inherited subprograms.
(Access_Definition): If this is an access to function that is the return
type of an access_to_function definition, context is a type declaration
and the scope of the anonymous type is the current one.
(Analyze_Subtype_Declaration): Add the defining identifier of a regular
incomplete subtype to the set of private dependents of the original
incomplete type.
(Constrain_Discriminated_Type): Emit an error message whenever an
incomplete subtype is being constrained.
(Process_Incomplete_Dependents): Transform an incomplete subtype into a
corresponding subtype of the full view of the original incomplete type.
(Check_Incomplete): Properly detect invalid usage of incomplete types
and subtypes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118273
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:58:30 +0000 (17:58 +0000)]
2006-10-31 Olivier Hainque <hainque@adacore.com>
* g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118272
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:58:16 +0000 (17:58 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* freeze.adb: Add handling of Last_Assignment field
(Warn_Overlay): Supply missing continuation marks in error msgs
(Freeze_Entity): Add check for Preelaborable_Initialization
* g-comlin.adb: Add Warnings (Off) to prevent new warning
* g-expect.adb: Add Warnings (Off) to prevent new warning
* lib-xref.adb: Add handling of Last_Assignment field
(Generate_Reference): Centralize handling of pragma Obsolescent here
(Generate_Reference): Accept an implicit reference generated for a
default in an instance.
(Generate_Reference): Accept a reference for a node that is not in the
main unit, if it is the generic body corresponding to an subprogram
instantiation.
* xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
* sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
-gnatwq/Q.
(Warn_On_Useless_Assignment): Suppress warning if enclosing inner
exception handler.
(Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
use clauses, to avoid messages on packages used to qualify, and also
to avoid messages from obsolescent units.
(Warn_On_Useless_Assignments): Don't generate messages for imported
and exported variables.
(Warn_On_Useless_Assignments): New procedure
(Output_Obsolescent_Entity_Warnings): New procedure
(Check_Code_Statement): New procedure
* einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
Change name Is_Ada_2005 to Is_Ada_2005_Only
(Last_Assignment): New field for useless assignment warning
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118271
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:57:54 +0000 (17:57 +0000)]
2006-10-31 Vincent Celier <celier@adacore.com>
* krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
When True, apply VMS treatment to children of packages A, G, I and S.
For F320-016
* fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118270
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:57:36 +0000 (17:57 +0000)]
2006-10-31 Bob Duff <duff@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com>
* exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
Is_Inherently_Limited_Type, because return-by-reference has no meaning
in Ada 2005.
(Find_Node_To_Be_Wrapped): Use new method of determining the result
type of the function containing a return statement, because the
Return_Type field was removed. We now use the Return_Applies_To field.
* exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
(Build_Task_Image_Decl): If procedure is not called from an
initialization procedure, indicate that function that builds task name
uses the sec. stack. Otherwise the enclosing initialization procedure
will carry the indication.
(Insert_Actions): Remove N_Return_Object_Declaration. We now use
N_Object_Declaration instead.
(Kill_Dead_Code): New interface to implement -gnatwt warning for
conditional dead code killed, and change implementation accordingly.
(Insert_Actions): Add N_Return_Object_Declaration case.
Correct comment to mention N_Extension_Aggregate node.
(Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
attempts to save information for global variables which cannot be
safely tracked.
(Get_Current_Value_Condition): Handle conditions the other way round
(constant on left). Also handle right operand of AND and AND THEN
(Set_Current_Value_Condition): Corresponding changes
(Append_Freeze_Action): Remove unnecessary initialization of Fnode.
(Get_Current_Value_Condition): Handle simple boolean operands
(Get_Current_Value_Condition): Handle left operand of AND or AND THEN
(Get_Current_Value_Condition): If the variable reference is within an
if-statement, does not appear in the list of then_statments, and does
not come from source, treat it as being at unknown location.
(Get_Current_Value_Condition): Enhance to allow while statements to be
processed as well as if statements.
(New_Class_Wide_Subtype): The entity for a class-wide subtype does not
come from source.
(OK_To_Do_Constant_Replacement): Allow constant replacement within body
of loop. This is safe now that we fixed Kill_Current_Values.
(OK_To_Do_Constant_Replacement): Check whether current scope is
Standard, before examining outer scopes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118269
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:57:10 +0000 (17:57 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* exp_prag.adb (Expand_Pragma_Common_Object): Use a single
Machine_Attribute pragma internally to implement the user pragma.
Add processing for pragma Interface so that it is now completely
equivalent to pragma Import.
* sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
so that it can be applied to all entities, including record components
and enumeration literals.
(Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
priority ranges are correct, verify compatibility against task
dispatching and locking policies, and if everything is correct an entry
is added to the table containing priority specific dispatching entries
for this compilation unit.
(Delay_Config_Pragma_Analyze): Delay processing
Priority_Specific_Dispatching pragmas because when processing the
pragma we need to access run-time data, such as the range of
System.Any_Priority.
(Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
Allow pragma Unreferenced as a context item
Add pragma Preelaborable_Initialization
(Analyze_Pragma, case Interface): Interface is extended so that it is
now syntactically and semantically equivalent to Import.
(Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
insertion characters.
Add handling for Pragma_Wide_Character_Encoding
(Process_Restrictions_Restriction_Warnings): Ensure that a warning
never supercedes a real restriction, and that a real restriction
always supercedes a warning.
(Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
appropriate form.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118268
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:56:43 +0000 (17:56 +0000)]
2006-10-31 Javier Miranda <miranda@adacore.com>
* exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
run-time membership test to ensure that the constructed object
implements the target abstract interface.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118267
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:56:24 +0000 (17:56 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
cases, pass the encoding method, since it is now required by the run
time.
* s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
assumption that Str'First = 1.
(Value_Wide_Character): Takes EM (encoding method) parameter and passes
it on to the Value_Wide_Wide_Character call.
(Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
properly handles a string of the form quote-encoded_wide_char-quote.
* s-wchcnv.adb: Minor reformatting
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118266
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:56:09 +0000 (17:56 +0000)]
2006-10-31 Ed Schonberg <schonberg@adacore.com>
* exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
fixed-point operations in an integer context, i.e. as operands of a
conversion to an integer type, indicate that result must be rounded.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118265
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:55:55 +0000 (17:55 +0000)]
2006-10-31 Thomas Quinot <quinot@adacore.com>
Pablo Oliveira <oliveira@adacore.com>
* exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
subprogram Ids, even if they are not yet assigned.
(Build_Subprogram_Id): It is now this function that will take care of
calling Assign_Subprogram_Ids if necessary.
(Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
should be done only once they are assigned.
(Build_From_Any_Function, case of tagged types): Add missing call to
Allocate_Buffer.
(Corresponding_Stub_Type): New subprogram. Returns the associated stub
type for an RACW type.
(Add_RACW_Features): When processing an RACW declaration for which the
designated type is already frozen, enforce E.2.2(14) rules immediately.
(GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
special reordering of controlling formals.
* exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
associated stub type for an RACW type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118264
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Tue, 31 Oct 2006 17:55:39 +0000 (17:55 +0000)]
2006-10-31 Robert Dewar <dewar@adacore.com>
* exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
initialization of Homonym_Len.
(Fully_Qualify_Name): Remove kludge to eliminate anonymous block
names from fully qualified name. Fixes problem of duplicate
external names differing only in the presence of such a block name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118263
138bc75d-0d04-0410-961f-
82ee72b054a4