2007-09-26 Javier Miranda <miranda@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
for thunks associated with interface types.
* einfo.ads: Improve documentatation of Is_Internal
(Is_Thunk): New attribute applicable to subprograms. True for thunks
associated with interface types.
Extensive comment fixes regarding flags that appear in all entities. The
documentation is now consistent for all such flags (there were a number
of errors in the documentation in this regard).
* exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
* exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
of these procedures are passed a function call that already has
build-in-place actuals (testing new flag
Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
the case where processing continues.
(Expand_Call): If the call is generated from a thunk body then we
propagate the extra actuals associated with the accessibility
level of the access type actuals.
* sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
of each extra formal of a protected operation to reference the
corresponding extra formal of the subprogram denoted by the
operation's Protected_Body_Subprogram.
* sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
N_Function_Call nodes.
From-SVN: r128786
2007-09-26 Robert Dewar <dewar@adacore.com>
* checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
overlays.
* sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
(Analyze_Record_Representation_Clause): Suppress junk warning for
missing component clause.
(Analyze_Attribute_Definition_Clause, case Address): Apply the special
tests for controlled type overlay to composites with controlled
components.
(Analyze_Record_Representation_Clause): Add reference for component name
From-SVN: r128785
2007-09-26 Javier Miranda <miranda@adacore.com>
Eric Botcazou <ebotcazou@adacore.com>
* a-tags.adb:
(Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
indirection added to the HT_Link component of the TSD. This is required
to statically allocate the TSD.
* a-tags.ads:
Minor reordering of the declarations in the private part. Required to
add a level of indirection to the contents of the TSD component HT_Link.
This is required to statically allocate the TSD.
* decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
Is_Statically_Allocated set from constant objects.
Do not make exported constants created by the compiler volatile.
(gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
as read-only.
* trans.c (Identifier_to_gnu): For constants, unshare initializers
before returning them.
* exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
public part of the package.
(Make_DT): Move HT_Link component out of the TSD record. For this
purpose Make_DT now declares a separate object that stores the
HT_Link value, and initializes the TSD component with the address
of this new object. The addition of this level of indirection is
required to statically allocate the TSD because the TSD cannot
have variable components.
(Expand_Interface_Conversion): Improve the expanded code.
(Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
* sem_disp.adb (Check_Dispatching_Operation): In case of a body
declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
if we are building static dispatch tables then we must not generate
extra code to register the primitive because the dispatch table will
be built at the end of the library package; otherwise we notify that
we cannot build the static dispatch table.
From-SVN: r128784
2007-09-26 Thomas Quinot <quinot@adacore.com>
Sergey Rybin <rybin@adacore.com>
* gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
* exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
where it belongs.
* opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
* rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
where it belongs.
* sem_dist.ads: Minor comment fix
* tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
From-SVN: r128783
2007-09-26 Olivier Hainque <hainque@adacore.com>
* adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
#include <utime.h> and #define GCC_RESOURCE_H before
#include <sys/wait.h>.
Add more protections in __gnat_translate_vms.
* expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
#include <sys/wait.h>.
From-SVN: r128782
2007-09-26 Jerome Guitton <guitton@adacore.com>
* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
* s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
* s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
function which can be called by the debugger to interrupt the tasks of
an Ada application asynchronously, as needed on VxWorks.
(Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
* s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
renamed from Stop_All_Tasks. Update comments.
(Stop_All_tasks): New function declaration.
From-SVN: r128781
2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
* a-calend-vms.adb, a-calend.adb:
Add a section on leap seconds control along with two entities used to
enable and disable leap seconds support. The array Leap_Second_Times is
now constant and contains hard time values pre-generated. Remove
all elaboration code used to populate the table of leap seconds.
* bindgen.adb:
Add entity Leap_Seconds_Support to the list of global run-time variables
along with a comment on its usage and values.
(Gen_Adainit_Ada): Add code to generate the declaration and import of
Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
or one (enabled) depending on the presence of binder switch "-y".
(Gen_Adainit_C): Add code to generate the declaration of external int
__gl_leap_seconds_support. Set is value to zero (disabled) or one
(enabled) depending on the presence of binder switch "-y".
* init.c: Add __gl_leap_seconds_support to the list of global values
computed by the binder.
From-SVN: r128780
2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch8.adb (Analyze_Use_Type): Code cleanup.
(Applicable_Use): Emit a warning when a package tries to use itself.
(Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
is already in use or the package where it is declared is in use or is
declared in the current package.
(Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
* a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
From-SVN: r128779
gcc/cp/
2007-09-25 Simon Martin <simartin@users.sourceforge.net>
PR c++/33207
* name-lookup.c (pushtag): Do not create an implicit typedef before
the associated type declaration is known to be valid.
gcc/testsuite/
2007-09-25 Simon Martin <simartin@users.sourceforge.net>
PR c++/33207
* g++.dg/parse/crash38.C: New test.
From-SVN: r128769
* config/bfin/bfin.c (expand_prologue_reg_save,
expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs and
ASTAT moved here...
(expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
... from here. New argument ALL; callers changed.
(n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
(bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
have the "saveall" attribute.
From-SVN: r128762
* config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
the basic block.
* config/m68k/m68k.md (movsi_m68k): Allow certain constant when
reload is completed.
(peephole pattern): Convert most of them to RTL peephole pattern.
From-SVN: r128728
PR c++/33239
* pt.c (resolve_typename_type): Don't look things up in the original
template if it would mean losing template arguments.
From-SVN: r128725
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_mips16_attribute):
Reject hard-float modes unless the ABI is o32 or o64.
* gcc.target/mips/inter/mips16-inter.exp: Load gcc-dg.exp instead
of gcc.exp. Skip the tests when mips16 code generation is not
supported.
* gcc.target/mips/mips16-attributes.c: Require mips16_attribute
and use dg-add-options mips16_attribute.
From-SVN: r128723
2007-09-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
Allow --with-tune=cell and --with-cpu=cell.
From-SVN: r128721
2007-09-24 Douglas Gregor <doug.gregor@gmail.com>
PR c++/33185
* tree.c (cp_build_qualified_type_real): Build a canonical
ARRAY_TYPE if the original ARRAY_TYPE was not a canonical type.
From-SVN: r128717
2007-09-24 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
Ramana Radhakrishnan <ramana@hercules.pun.celunite.com>
* tree-inline.h (eni_weights): Add field target_builtin_cost to
reflect the cost per call to a target specific builtin.
* tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for
* a
call to a target specific builtin, then use
target_builtin_call_cost.
(init_inline_once): Initialize target_builtin_call_cost field.
Co-Authored-By: Ramana Radhakrishnan <ramana@hercules.pun.celunite.com>
From-SVN: r128714
2007-09-24 Douglas Gregor <doug.gregor@gmail.com>
PR c++/33112
PR c++/33185
* tree.c (cplus_array_compare): Compare pointers, not types.
(build_cplus_array_type_1): Store new array type into the hash
table before building the canonical type; build the canonical type
correctly.
(cp_build_qualified_type_real): Put all of the array types with
cv-qualified element types into the C++ array hash table, built as
variants of the unqualified versions.
From-SVN: r128711