Robert Dewar [Wed, 26 Mar 2008 07:44:09 +0000 (08:44 +0100)]
gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W Add description for the new gnatstub...
2008-03-26 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
Add description for the new gnatstub option '--header-file'
clarification of -gnatwz/-gnatwZ
Add a "Irix-Specific Considerations" section to document the need to
set LD_LIBRARY_PATH when using the default shared runtime library.
Added documentation for both gcov and gprof.
* gnat_rm.texi: Document that pragma Compile_Time_Warning generates
messages that are not suppressed when clients are compiled.
Add documentation of s-pooglo s-pooloc
Document the new GNAT.Serial_Communications API.
Add documentation for 'Old attribute
Add description of pragma Optimize_Alignment
* ug_words: Add entries for -gnatw.w -gnatw.W
* usage.adb: Add line for -gnatw.w (warn on warnings off)
Robert Dewar [Wed, 26 Mar 2008 07:43:59 +0000 (08:43 +0100)]
tbuild.ads, [...] (N_Pragma): Chars field removed, use Chars (Pragma_Identifier (..
2008-03-26 Robert Dewar <dewar@adacore.com>
* tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
removed, use Chars (Pragma_Identifier (.. instead, adjustments
throughout to accomodate this change.
* s-pooglo.ads, s-pooloc.ads: Minor comment updates
* exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
Einfo.Set_Needs_Debug_Info)
Arnaud Charlet [Wed, 26 Mar 2008 07:43:45 +0000 (08:43 +0100)]
[multiple changes]
2008-03-26 Tristan Gingold <gingold@adacore.com>
* init.c: Do not adjust pc for HPARITH on alpha/vms.
2008-03-26 Robert Dewar <dewar@adacore.com>
* lib-xref.adb: (OK_To_Set_Reference): New function
(Generate_Reference): Don't set referenced from occurrence in Warnings,
Unmodified, or Unreferenced pragma
2008-03-26 Robert Dewar <dewar@adacore.com>
* alloc.ads: Add entries for Warnings_Off_Pragmas table
Robert Dewar [Wed, 26 Mar 2008 07:42:47 +0000 (08:42 +0100)]
sem_warn.ads, [...] (Warnings_Off_Pragmas): New table
2008-03-26 Robert Dewar <dewar@adacore.com>
* sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
(Initialize): New procedure
(Output_Warnings_Off_Warnings): New procedure
(Check_References): Suppress certain msgs if Is_Trivial_Subprogram
(Output_Non_Modifed_In_Out_Warnings): Ditto
(Warn_On_Unreferenced_Entity): Ditto
Robert Dewar [Wed, 26 Mar 2008 07:42:37 +0000 (08:42 +0100)]
sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite recursion and raise SE directly.
2008-03-26 Robert Dewar <dewar@adacore.com>
* sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
recursion and raise SE directly.
(Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
set for formal type for IN mode parameter.
Ed Schonberg [Wed, 26 Mar 2008 07:42:25 +0000 (08:42 +0100)]
sem_ch7.adb (Install_Parent_Private_Declarations): If the private declarations of a parent unit are made visible when...
2008-03-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch7.adb (Install_Parent_Private_Declarations): If the private
declarations of a parent unit are made visible when compiling a child
instance, the parent is not a hidden open scope, even though it may
contain other pending instance.
* sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
hidden open scope for some child instance, it does affect the
visibility status of other stach entries.
(Analyze_Object_Renaming): Check that a class-wide object cannot be
renamed as an object of a specific type.
Ed Schonberg [Wed, 26 Mar 2008 07:42:14 +0000 (08:42 +0100)]
sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on operations that have an interface parameter.
2008-03-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
operations that have an interface parameter.
(Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
Don't treat No_Return call as raise.
* sem_disp.adb (Check_Dispatching_Operations): apply check for
non-primitive interface primitives to access parameters, not to all
parameters of an access type.
Ed Schonberg [Wed, 26 Mar 2008 07:41:53 +0000 (08:41 +0100)]
sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is a generic subprogram that is imported...
2008-03-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
a generic subprogram that is imported, do not attempt to compile
non-existent body.
* sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
imported, do not generate a raise_program_error for the non-existent
body.
(Pre_Analyze_Actuals): If an error is detected during pre-analysis,
perform minimal name resolution on the generic to avoid spurious
warnings.
(Find_Actual_Type): the designated type of the actual in a child unit
may be declared in a parent unit without being an actual.
Vincent Celier [Wed, 26 Mar 2008 07:41:16 +0000 (08:41 +0100)]
prj-dect.adb (Parse_Package_Declaration): When a package name is not known...
2008-03-26 Vincent Celier <celier@adacore.com>
* prj-dect.adb (Parse_Package_Declaration): When a package name is not
known, check if it may be a missspelling of a known package name. In
not verbose, not mode, issue warnings only if the package name is a
possible misspelling.
In verbose mode, always issue a warning for a not known package name,
plus a warning if the name is a misspelling of a known package name.
* prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
limited withs or limited withs are parse during one call.
(Parse_Single_Project): Post parse context clause in two passes: non
limited withs before current project and limited withs after current
project.
* prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
project with the name With_Name, even if it is only extended indirectly.
(Recursive_Process): Process projects in order: first single withs, then
current project, then limited withs.
* prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
project with the name With_Name, even if it is only extended indirectly.
Thomas Quinot [Wed, 26 Mar 2008 07:41:04 +0000 (08:41 +0100)]
sem_cat.adb (Validate_RACW_Primitives): Do not rely on Comes_From_Source to exclude primitives from being checked.
2008-03-26 Thomas Quinot <quinot@adacore.com>
* sem_cat.adb (Validate_RACW_Primitives): Do not rely on
Comes_From_Source to exclude primitives from being checked. We want to
exclude predefined primitives only, so use the appropriate specific
predicate. Also, flag a formal parameter of an anonymous
access-to-subprogram type as illegal for a primitive operation of a
remote access to class-wide type.
Robert Dewar [Wed, 26 Mar 2008 07:40:27 +0000 (08:40 +0100)]
itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
2008-03-26 Robert Dewar <dewar@adacore.com>
* itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
* sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
unchecked conversion for different conventions only for subprogram
pointers or on VMS.
Pascal Obry [Wed, 26 Mar 2008 07:40:18 +0000 (08:40 +0100)]
Makefile.in: Add proper GNAT.Serial_Communications implementation on supported platforms.
2008-03-26 Pascal Obry <obry@adacore.com>
* Makefile.in: Add proper GNAT.Serial_Communications implementation on
supported platforms.
* Makefile.rtl: Add g-sercom.o.
* impunit.adb: Add g-sercom.adb.
* s-crtl.ads (open): New routine.
(close): Likewise.
(write): Likewise.
* s-osinte-mingw.ads (BYTE): New type.
(CHAR): Likewise.
(OVERLAPPED): Likewise.
(GENERIC_READ): New constant.
(GENERIC_WRITE): Likewise.
(OPEN_EXISTING): Likewise.
(PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
type instead.
(CreateFile): New routine.
(WriteFile): Likewise.
(ReadFile): Likewise.
(CloseHandle): Move next to the other file oriented routines.
* g-sercom.ads: New unit.
* g-sercom.adb: Default implementation, calls to this unit will raise
a program error exception.
* g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
GNU/Linux implementations.
Vincent Celier [Wed, 26 Mar 2008 07:39:50 +0000 (08:39 +0100)]
gnatcmd.adb: Add processing for GNAT SYNC
2008-03-26 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: Add processing for GNAT SYNC
* vms_conv.ads: (Command_Type): Add command Sync
* vms_conv.adb (Initialize): Add Command_List data for new command Sync
* vms_data.ads: Add entries for -gnatw.w
Add qualifier for gnatstub --header-file option
Add switches for GNAT SYNC
* prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
(Add_Package_Name): New procedure
(Package_Name_List): New function
(Initialize): Add known package names to the list
(Register_New_Package): Add the new package name to the list
Ed Schonberg [Wed, 26 Mar 2008 07:39:39 +0000 (08:39 +0100)]
exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component assignment is within the initialization procedure for a packed...
2008-03-26 Ed Schonberg <schonberg@adacore.com>
* exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
assignment is within the initialization procedure for a packed array,
and Initialize_Scalars is enabled, compile right-hand side with checks
off, because the value is purposely out of range.
Javier Miranda [Wed, 26 Mar 2008 07:39:28 +0000 (08:39 +0100)]
exp_ch7.adb (Make_Clean): Code cleanup using the new centralized subprogram Corresponding_Runtime_Package...
2008-03-26 Javier Miranda <miranda@adacore.com>
* exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
subprogram Corresponding_Runtime_Package to know the runtime package
that will provide support to a given protected type.
* exp_ch9.adb (Add_Private_Declarations,
Build_Protected_Subprogram_Call,
Build_Protected_Entry, Build_Simple_Entry_Call,
Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
cleanup using the new centralized subprogram Corresponding_Runtime
Package to know the runtime package that provides support to
a given protected type.
Javier Miranda [Wed, 26 Mar 2008 07:39:17 +0000 (08:39 +0100)]
exp_disp.adb (Make_DT, [...]): Set attribute Is_Static_Dispatch_Table
2008-03-26 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
Is_Static_Dispatch_Table
(Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
to Exchange_Declarations to exchange the private and full-view. Bug
found working in this issue.
(Expand_Dispatching_Call): Propagate the convention of the subprogram
to the subprogram pointer type.
(Make_Secondary_DT): Replace generation of Prim'Address by
Address (Prim'Unrestricted_Access)
(Make_DT): Replace generation of Prim'Address by
Address (Prim'Unrestricted_Access)
(Make_Disp_*_Bodies): When compiling for a restricted profile, use
simple call form for single entry.
(Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
tables of predefined primitives).
(Make_Secondary_DT): Add support to handle access to dispatch tables of
predefined primitives.
(Make_Tags): Add entities to Access_Dispatch_Table associated with
access to dispatch tables containing predefined primitives.
* exp_ch6.adb (N_Pragma): Chars field removed, use Chars
(Pragma_Identifier (.. instead, adjustments throughout to accomodate
this change.
(Register_Predefined_DT_Entry): Updated to handle the new contents
of attribute Access_Disp_Table (pointers to dispatch tables containing
predefined primitives).
* exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
subprogram.
(Find_Interface_ADT): Updated to skip the new contents of attribute
Access_Dispatch_Table (pointers to dispatch tables containing predefined
primitives).
* sem_util.adb (Has_Abstract_Interfaces): Add missing support for
concurrent types.
(Set_Convention): Use new function Is_Access_Subprogram_Type
(Collect_Interfaces_Info): Updated to skip the new contents of attribute
Access_Dispatch_Table (pointers to dispatch tables containing predefined
primitives).
* exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
expanded code avoiding calls to Build_Predef_Prims.
(Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
call to Build_Get_Predefined_Prim_Op_Address.
Gary Dismukes [Wed, 26 Mar 2008 07:39:04 +0000 (08:39 +0100)]
exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation of a heap allocator for a limited unconstrained function...
2008-03-26 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
of a heap allocator for a limited unconstrained function return when
resstriction No_Allocators is active.
(Analyze_Allocator): The restriction No_Allocators is now only checked
on allocators that have Comes_From_Source set, as per RM-H.4(7).
* sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
of a heap allocator for a limited unconstrained function return when
resstriction No_Allocators is active.
(Analyze_Allocator): The restriction No_Allocators is now only checked
on allocators that have Comes_From_Source set, as per RM-H.4(7).
(Has_Fixed_Op): If the name in a function call is Standard."*" and the
operands are fixed-point types, the universal_fixed predefined operation
is used, regardless of whether the operand type (s) have a primitive
operation of the same name.
Ed Schonberg [Wed, 26 Mar 2008 07:38:40 +0000 (08:38 +0100)]
sem_ch3.adb (Access_Definition): If the access type is the return result of a protected function...
2008-03-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Definition): If the access type is the return
result of a protected function, create an itype reference for it
because usage will be in an inner scope from the point of declaration.
(Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
OK_To_Reorder_Components.
(Make_Index): If an overloaded range includes a universal integer
interpretation, resolve to Standard.Integer.
(Analyze_Subtype_Indication): Copy Convention to subtype
(Check_Abstract_Interfaces): Complete semantic checks on the legality of
limited an synchronized progenitors in type declaration and private
extension declarations.
* exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
protected subprogram body, determine proper scope from subprogram
declaration.
Robert Dewar [Wed, 26 Mar 2008 07:38:28 +0000 (08:38 +0100)]
exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise stmt.
2008-03-26 Robert Dewar <dewar@adacore.com>
Arnaud Charlet <charlet@adacore.com>
* exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
stmt.
(No_Exception_Propagation_Active): New function.
(Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
Update comments, and review all uses of No_Exception_Propagation, which
are now correct and in sync with what gigi expects.
* restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
function.
(Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
Update comments, and review all uses of No_Exception_Propagation, which
are now correct and in sync with what gigi expects.
Javier Miranda [Wed, 26 Mar 2008 07:38:16 +0000 (08:38 +0100)]
exp_attr.adb (N_Pragma): Chars field removed.
2008-03-26 Javier Miranda <miranda@adacore.com>
Robert Dewar <dewar@adacore.com>
* exp_attr.adb (N_Pragma): Chars field removed.
(Expand_N_Attribute_Reference): If the designated type associated with
attribute 'Unrestricted_Access is a subprogram entity then replace it
by an E_Subprogram_Type itype.
Implement attribute Old
* sem_attr.ads (Attribute_Class_Array): Move to snames.ads
* sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
Replace call to
New_Internal_Entity by call to Create_Itype to centralize calls
building itypes, ad propagate the convention of the designated
subprogram. In addition, disable the machinery cleaning constant
indications from all entities in current scope when 'Unrestricted_Access
corresponds with a node initializing a dispatch table slot.
(Analyze_Attribute): Parameterless attributes returning a string or a
type will not be called with improper arguments, so we can remove junk
code that was dealing with this case.
Implement attribute Old
* snames.ads, snames.h, snames.adb: Add entries for attribute Old
Add entry for pragma Optimize_Alignment
New standard names Sync and Synchronize
Robert Dewar [Wed, 26 Mar 2008 07:37:35 +0000 (08:37 +0100)]
errout.ads: Document new !! insertion sequence
2008-03-26 Robert Dewar <dewar@adacore.com>
* errout.ads: Document new !! insertion sequence
* errout.adb (N_Pragma): Chars field removed, use Chars
(Pragma_Identifier (.. instead.
Replace use of Warnings_Off by Has_Warnings_Off
(Error_Msg_Internal): Don't delete warning ending in !!
Robert Dewar [Wed, 26 Mar 2008 07:37:24 +0000 (08:37 +0100)]
einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars (Pragma_Identifier (..
2008-03-26 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
(Pragma_Identifier (.. instead.
(OK_To_Reorder_Components): New flag
(Has_Entries): Code cleanup.
(Warnings_Off_Used): New flag
(Warnings_Off_Used_Unmodified): New flag
(Warnings_Off_Used_Unreferenced): New flag
(Has_Warnings_Off): New function
(Has_Unmodified): New function
(Has_Unreferenced): New function
(Is_Trivial_Subprogram): New flag
(Is_Static_Dispatch_Table_Entity): New attribute.
Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
(more consistent with other similar names)
(Access_Subprogram_Type): New classification function
Robert Dewar [Wed, 26 Mar 2008 07:36:02 +0000 (08:36 +0100)]
ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
2008-03-26 Robert Dewar <dewar@adacore.com>
* ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
* bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
* debug.adb: Add debug flags d.r and d.v
Add debug flag .T (Optimize_Alignment (Time))
Add debug flag .S (Optimize_Alignment (Space))
* freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
depending on setting of relevant debug flags.
Replace use of Warnings_Off by Has_Warnings_Off
(Freeze_Entity): In circuit for warning on suspicious convention
actuals, do not give warning if subprogram has same entity as formal
type, or if subprogram does not come from source.
(Freeze_Entity): Don't reset Is_Packed for fully rep speced record
if Optimize_Alignment set to Space.
* frontend.adb: Add call to Sem_Warn.Initialize
Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
Reset Optimize_Alignment mode from debug switches .S and .T
* layout.adb (Layout_Composite_Object): Rewritten for
Optimize_Aligment pragma.
* lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
mode.
* opt.ads, opt.adb: (Optimize_Alignment): New global switch
* par-prag.adb (N_Pragma): Chars field removed, use Chars
(Pragma_Identifier (.. instead, adjustments throughout to accomodate
this change. Add entry for pragma Optimize_Alignment
* sem_prag.adb (N_Pragma): Chars field removed, use Chars
(Pragma_Identifier (..
instead, adjustments throughout to accomodate this change.
(Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
(Favor_Top_Level): Use new function Is_Access_Subprogram_Type
Add implementation of pragma Optimize_Alignment
Arnaud Charlet [Wed, 26 Mar 2008 07:35:35 +0000 (08:35 +0100)]
s-taprop-irix.adb, [...] (Create_Task): Do not attempt to set task priority or task info if the thread could not be created.
2008-03-26 Arnaud Charlet <charlet@adacore.com>
* s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
or task info if the thread could not be created.
Douglas Gregor [Wed, 26 Mar 2008 04:17:57 +0000 (04:17 +0000)]
pt.c (coerce_template_template_parm): Moved the body of the loop of coerce_template_template_parms here...
2008-03-26 Douglas Gregor <doug.gregor@gmail.com>
* pt.c (coerce_template_template_parm): Moved the body of the loop
of coerce_template_template_parms here, to make iteration over a
template argument pack simpler.
Also, allow matching of a template parameter pack in the template
template parameter to a template parameter in the template
template argument.
(coerce_template_template_parms): Deal with variadic template
template parameters. Use coerce_template_template_parm.
(unify): Make sure we coerce the template template argument's
template arguments to the template template parameter's template
parameters, not the other way around.
2008-03-26 Douglas Gregor <doug.gregor@gmail.com>
* g++.dg/cpp0x/variadic84.C: Update to reflect the change in
variadic template template parameter binding semantics.
* g++.dg/cpp0x/variadic85.C: Ditto.
* g++.dg/cpp0x/variadic88.C: New.
* g++.dg/cpp0x/variadic89.C: New.
* g++.dg/cpp0x/variadic90.C: New.
* g++.dg/cpp0x/variadic-ex14.C: Update to reflect the change in
variadic template template parameter binding semantics.
* g++.dg/cpp0x/variadic-lambda.C: New.
re PR rtl-optimization/35232 (ICE in fp-int-convert-double.c at -O2)
gcc/
PR rtl-optimization/35232
* reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
(forget_old_reloads_1, forget_marked_reloads): Don't clear
reg_reloaded_call_part_clobbered here.
(reload_regs_reach_end_p): New function.
(reload_reg_rtx_for_input): New variable.
(reload_reg_rtx_for_output): Likewise.
(emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
when reassigning a pseudo register. Load reloadreg from
reload_reg_rtx_for_input, moving the mode and register
calculation to...
(do_input_reload): ...here. Use the mode-adjusted reg_rtx
instead of the original when deciding whether an input reload
would be a no-op or whether an output reload can be deleted.
(emit_output_reload_insns): Use the mode-adjusted reg_rtx
when setting up new_spill_reg_store. Load it from
reload_reg_rtx_for_output, moving the mode and register
calculation to...
(do_output_reload): ...here. Use the mode-adjusted reg_rtx
instead of the original when deciding whether an output reload
would be a no-op. Do the same when modifying insn notes.
Use rtx_equal_p instead of == to compare the registers.
(inherit_piecemeal_p): Take a mode and two register numbers
as argument.
(emit_reload_insns): Clear new_spill_reg_store for every hard
register in the reload register. Remove spill registers
from reg_reloaded_valid before considering whether to record
inheritance information for them. Use reload_reg_rtx_for_output
instead of reg_rtx when recording output reloads. Use
reload_reg_rtx_for_input instead of reg_rtx when recording
input reloads. Set or clear reg_reloaded_call_part_clobbered
at the same time as setting reg_reloaded_valid.
(delete_output_reload): Add a new_reload_reg parameter and use it
instead of rld[j].reg_rtx.
(emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
calls accordingly.
gcc/testsuite/
PR rtl-optimization/35232
* gcc.target/mips/pr35232.c: New test.
Eric Botcazou [Tue, 25 Mar 2008 17:58:54 +0000 (17:58 +0000)]
revert: re PR ada/35186 (implicit assumption about alignment of DImode)
Revert
2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
PR ada/35186
* decl.c (maybe_pad_type): Avoid padding an integral type when
bumping its alignment is sufficient.
Bob Wilson [Tue, 25 Mar 2008 17:56:31 +0000 (17:56 +0000)]
xtensa.c (xtensa_va_start): Use build_int_cst instead of size_int for integer types.
* config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
instead of size_int for integer types.
(xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
to match type of MINUS_EXPR.
Jayant R Sonar [Tue, 25 Mar 2008 13:36:11 +0000 (13:36 +0000)]
constraints.md (I28): New constraint.
* config/sh/constraints.md (I28): New constraint.
* config/sh/sh.c (broken_move): Add support for movi20s.
* config/sh/sh.md (movsi_ie): Add the alternative for
movi20s.
* gcc.target/sh/sh2a-resbank.c: New test.
* gcc.target/sh/sh2a-tbr-jump.c: New test.
* gcc.target/sh/sh2a-jsrn.c: New test.
* gcc.target/sh/sh2a-rtsn.c: New test.
Co-Authored-By: Jayant R Sonar <jayant.sonar@kpitcummins.com> Co-Authored-By: Naveen.H.S <naveen.hs@kpitcummins.com>
From-SVN: r133513
Uros Bizjak [Tue, 25 Mar 2008 08:02:14 +0000 (09:02 +0100)]
sse-17.c: Include sse2-check.h.
* gcc.target/i386/sse-17.c: Include sse2-check.h.
(main): Change to void and rename to sse2_test.
* gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: Set
dg-do-what-default to "compile" if SSE2 hardware is not available.
* gcc.dg/vect/costmodel/i386/x86_64-costmodel-vect.exp: Ditto.
* gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Remove
xfail vect_no_int_max from "vectorization not profitable" check.
Paul Thomas [Mon, 24 Mar 2008 19:11:24 +0000 (19:11 +0000)]
re PR fortran/34813 (ICE on incorrect nested type constructor (fold-const.c (fold_convert):2629))
2008-03-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34813
* resolve.c (resolve_structure_cons): It is an error to assign
NULL to anything other than a pointer or allocatable component.
PR fortran/33295
* resolve.c (resolve_symbol): If the symbol is a derived type,
resolve the derived type. If the symbol is a derived type
function, ensure that the derived type is visible in the same
namespace as the function.
2008-03-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34813
* gfortran.dg/null_3.f90 : New test
PR fortran/33295
* gfortran.dg/module_function_type_1.f90 : New test
Richard Guenther [Mon, 24 Mar 2008 15:08:52 +0000 (15:08 +0000)]
re PR c/22371 (C front-end produces mis-match types in MODIFY_EXPR)
2008-03-24 Richard Guenther <rguenther@suse.de>
PR c/22371
* gimplify.c (gimplify_modify_expr): For frontend type-correct
pointer assignments change conversions according to middle-end rules.
(gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
* configure.ac: Include type checking in yes.
* configure: Regenerate.
PR documentation/15479
* Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
(doc/gnat_ugn_unw.texi): ... this, and adjusted.
(doc/gnat_ugn.info): Renamed from ...
(doc/gnat_ugn_unw.info): ... this.
(doc/gnat_ugn.dvi): Renamed from ...
(doc/gnat_ugn_unw.dvi): ... this.
(doc/gnat_ugn.pdf): Renamed from ...
(doc/gnat_ugn_unw.pdf): ... this.
(ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
Adjusted.
* gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
unconditionally to gnat_ugn.info. Fix cross references to the
GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
and GNU make manuals to be proper texinfo links.
* gnat_rm.texi: Fix cross references to the GNAT User's Guide.
Thomas Koenig [Sun, 23 Mar 2008 22:19:19 +0000 (22:19 +0000)]
re PR libfortran/32972 (performance of pack/unpack)
2007-03-23 Thomas Koenig <tkoenig@gcc.gnu.org
PR libfortran/32972
* Makefile.am: Add new variable, i_unpack_c, containing
unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
and unpack_c16.c
Add i_unpack_c to gfor_built_src.
Add rule to generate i_unpack_c from m4/unpack.m4.
* Makefile.in: Regenerated.
* libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
* intrinsics/pack_generic.c (unpack1): Add calls to specific
unpack1 functions.
(unpack0): Add calls to specific unpack0 functions.
* m4/unpack.m4: New file.
* generated/unpack_i1.c: New file.
* generated/unpack_i2.c: New file.
* generated/unpack_i4.c: New file.
* generated/unpack_i8.c: New file.
* generated/unpack_i16.c: New file.
* generated/unpack_r4.c: New file.
* generated/unpack_r8.c: New file.
* generated/unpack_r10.c: New file.
* generated/unpack_r16.c: New file.
* generated/unpack_c4.c: New file.
* generated/unpack_c8.c: New file.
* generated/unpack_c10.c: New file.
* generated/unpack_c16.c: New file.
2007-03-23 Thomas Koenig <tkoenig@gcc.gnu.org
PR libfortran/32972
* gfortran.dg/intrinsic_unpack_1.f90: New test case.
* gfortran.dg/intrinsic_unpack_2.f90: New test case.
* gfortran.dg/intrinsic_unpack_3.f90: New test case.
Uros Bizjak [Sun, 23 Mar 2008 12:07:34 +0000 (13:07 +0100)]
Revert:
2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-modes.def: Use 4 byte alignment on DI for
32bit host.
2008-03-19 Uros Bizjak <ubizjak@gmail.com>
PR target/35496
* stor-layout.c (update_alignment_for_field): Set minimum alignment
of the underlying type of a MS bitfield layout to the natural
alignment of the type.
2008-03-22 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (assign_386_stack_local): Align DImode slots
to their natural alignment to avoid store forwarding stalls.
Tobias Schlüter [Sun, 23 Mar 2008 09:28:03 +0000 (10:28 +0100)]
trans.h: Use fold_build in build1_v, build2_v and build3_v macros.
2008-03-23 Tobias Schlueter <tobi@gcc.gnu.org>
* trans.h: Use fold_build in build1_v, build2_v and build3_v
macros.
* trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
Don't use build2_v macro.
Jerry DeLisle [Sat, 22 Mar 2008 22:03:13 +0000 (22:03 +0000)]
re PR fortran/35632 (stream io broken on FreeBSD due to ftruncate changes.)
2008-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/35632
* io/transfer.c (data_transfer_init): Fix whitespace.
(next_record_w): Truncate the file only if the stream
position is short of the file end.
Richard Guenther [Sat, 22 Mar 2008 19:50:48 +0000 (19:50 +0000)]
tree-cfg.c (verify_expr): Recurse again for invariant addresses.
2008-03-22 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_expr): Recurse again for invariant addresses.
For PHI nodes verify the address is invariant.
* tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
(get_symbol_constant_value): Use is_gimple_min_invariant.
(maybe_fold_stmt_indirect): Likewise.
re PR rtl-optimization/33927 (replace_read in dse.c could handle cases where GET_MODE_CLASS (read_mode) != GET_MODE_CLASS (store_mode) (and the size is the same))
gcc/
PR rtl-optimization/33927
* Makefile.in (dse.o): Depend on $(TM_P_H).
* expr.h (extract_low_bits): Declare.
* expmed.c (extract_low_bits): New function.
* rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
* dse.c: Include tm_p.h.
(find_shift_sequence): Remove the read_reg argument and return the
read value. Emit the instructions instead of returning them.
Iterate on new_mode rather than calculating it each time.
Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
source to NEW_MODE and extract_low_bits to convert the shifted
value to READ_MODE.
(replace_read): Allow the load and store to have different mode
classes. Use extract_low_bits when SHIFT == 0. Create the shift
or extraction instructions before trying the replacement. Update
dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
gcc/testsuite/
* gcc.target/mips/dse-1.c: Add checks for zeros.
Andrew Pinski [Fri, 21 Mar 2008 22:18:23 +0000 (15:18 -0700)]
re PR target/27946 (double to long long and back to double stores to the stack)
2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR target/27946
* config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
encouraging but not allowing gprs for input;
change the input constraint to !f#r.
(fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
gprs for output;
change the output constraint to !f#r.
2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR target/27946
* gcc.target/powerpc/ppc64-double-1.c: New testcase.
Andrew Pinski [Fri, 21 Mar 2008 22:16:49 +0000 (22:16 +0000)]
re PR target/27946 (double to long long and back to double stores to the stack)
2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR target/27947
* config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
encouraging but not allowing gprs for input;
change the input constraint to !f#r.
(fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
gprs for output;
change the output constraint to !f#r.
2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR target/27947
* gcc.target/powerpc/ppc64-double-1.c: New testcase.