* config/arm/arm.c (return_used_this_function): Remove.
(arm_output_function_prologue): Remove use of
return_used_this_function.
(output_return_instruction): Replace use of
return_used_this_function
by cfun->machine->return_used_this_function.
(arm_output_epilogue): Likewise.
(arm_output_function_epilogue): Likewise.
(thumb_unexpanded_epilogue): Likewise.
* config/arm/arm.h (struct machine_function):
New member return_used_this_function.
Joseph Myers [Sun, 12 Apr 2009 22:20:02 +0000 (23:20 +0100)]
re PR preprocessor/31869 (stringifying empty macros)
libcpp:
PR preprocessor/31869
* macro.c (stringify_arg): Handle NULL source token in padding
token where previous padding token did not have source token with
preceding whitespace.
* doc/invoke.texi (max_gcse_passes): Remove documentation.
* params.def (PARAM_MAX_GCSE_PASSES): Remove.
* params.h (MAX_GCSE_PASSES): Remove.
* gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
in sequence. Remove ability to run multiple passes.
(bypass_jumps): Report run as third CPROP pass.
Daniel Kraft [Sat, 11 Apr 2009 16:44:37 +0000 (18:44 +0200)]
re PR fortran/37746 (bounds check of string dummy arguments)
2009-04-11 Daniel Kraft <d@domob.eu>
PR fortran/37746
* gfortran.h (struct gfc_charlen): New field `passed_length' to store
the actual passed string length for dummy arguments.
* trans-decl.c (gfc_create_string_length): Formatting fixes and added
assertion, moved a local variable into the innermost block it is needed.
(create_function_arglist): Removed TODO about the check being
implemented and initialize cl->passed_length here.
(add_argument_checking): New method.
(gfc_generate_function_code): Call the argument checking method.
2009-04-11 Daniel Kraft <d@domob.eu>
PR fortran/37746
* gfortran.dg/bounds_check_strlen_1.f90: New test.
* gfortran.dg/bounds_check_strlen_2.f90: New test.
* gfortran.dg/bounds_check_strlen_3.f90: New test.
* gfortran.dg/bounds_check_strlen_4.f90: New test.
* gfortran.dg/bounds_check_strlen_5.f90: New test.
* gfortran.dg/bounds_check_strlen_6.f90: New test.
* gfortran.dg/bounds_check_strlen_7.f90: New test.
* gfortran.fortran-torture/execute/intrinsic_index.f90: Fix wrong
expected string length that failed with -fbounds-check now.
* gfortran.fortran-torture/execute/intrinsic_trim.f90: Ditto.
* doc/tm.texi (Instruction Output): Document
TARGET_ASM_FINAL_POSTSCAN_INSN.
* target.h (final_postscan_insn): New field in asm_out.
* target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
(TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
* final.c (final_scan_insn): Call
targetm.asm_out.final_postscan_insn after outputting
an asm macro and a normal instruction.
* config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
* config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
* config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
(mips_final_prescan_insn, mips_final_postscan_insn): New functions.
(TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
* sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): Catch more cases
for warning suppression.
2009-04-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Use_One_Type): If the two use_type clauses are
identical, there is no redudancy to check.
2009-04-10 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb (Expand_N_Extended_Return_Statement): Delete redundant
calls initializing SS_Allocator (which is initialized in following
code).
(Expand_Simple_Function_Return): Add comment about False value for
Comes_From_Source on secondary-stack allocator.
* prj-attr.adb:
Add new Linker attributes Max_Command_Line_Length, Response_File_Format
and Response_File_Switches.
* prj-nmsc.adb (Process_Linker): Process new attributes
Max_Command_Line_Length, Response_File_Format and
Response_File_Switches.
* prj.ads (Response_File_Format): New enumeration type
(Project_Configuration): New componants Max_Command_Line_Length,
Resp_File_Format and Resp_File_Options.
* snames.ads-tmpl: Add new standard names for linking response files
for gprbuild: GNU, None, Object_List, Option_List,
Max_Command_Line_Length, Response_File_Format and
Response_File_Switches.
* sem_prag.adb (Check_Precondition_Postcondition): Within a generic,
analyze the expression for a postcondition, even if the compiler mode
is Generate_Code.
* vms_data.ads:
Add qualifier for new gnatstub option '--no-exception'
* gnat_ugn.texi:
Add the description of the new gnatstub option '--no-exception'
2009-04-10 Robert Dewar <dewar@adacore.com>
* rtsfind.adb: Minor reformatting
2009-04-10 Thomas Quinot <quinot@adacore.com>
* sem_disp.adb: Minor reformatting.
Add comment pointing to RM clause for the case of warning against a
(failed) attempt at declaring a primitive operation elsewhere than in a
package spec.
2009-04-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Denotes_Formal_Package): Check whether the package is
an actual for a previous formal package of the current instance.
* rtsfind.adb (RTE): Put implicit with_clauses on whatever unit needs
them first, rather than on the extended main unit.
2009-04-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Check_Discriminant_Conformance): If discriminant
specification of full view carries a null exclusion indicator, create
an itype for it, to check for conformance with partial view.
* exp_attr.adb (Expand_N_Attribute_Reference, case 'Tag): If the tagged
type is a synchronized type, retrieve tag information from the
corresponding record, which has the dispatch table link.
2009-04-10 Jerome Lambourg <lambourg@adacore.com>
* g-comlin.adb (Group_Analysis): Take care of switches that might be
decomposed afterwards, but are present as-is in the command line
configuration, and thus should be kept as-is.
* gnat_rm.texi: Document that postconditions are tested on implicit
returns.
* sem_aux.adb: Minor reformatting
2009-04-10 Gary Dismukes <dismukes@adacore.com>
* itypes.adb (Create_Null_Excluding_Itype): Apply Base_Type when
setting Etype.
* par-ch3.adb (P_Access_Type_Definition): Set new attribute
Null_Exclusion_In_Return_Present when an access-to-function type has a
result type with an explicit not null.
* sem_ch3.adb (Access_Subprogram_Definition): If a null exclusion is
given on the result type, then create a null-excluding itype for the
function.
* sem_ch6.adb (Analyze_Return_Type): Create a null-excluding itype in
the case where a null exclusion is imposed on a named access type.
(Analyze_Subprogram_Specification): Push and pop the scope of the
function around the call to Analyze_Return_Type in the case of no
formals, for consistency with handling when formals are present
(Process_Formals does this). Ensures that any itype created for the
return type will be associated with the proper scope.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): If a null
exclusion is given on a generic function's result type, then create a
null-excluding itype for the generic function.
(Instantiate_Object): Set Null_Exclusion_Present of a constant created
for an actual for a formal in object according to the setting on the
formal. Ensures null exclusion checks are done when the association is
elaborated.
* sinfo.ads: Add new flag Null_Exclusion_In_Return_Present on
N_Access_Function_Definition.
* sinfo.adb: Add Get_ and Set_ operations for
Null_Exclusion_In_Return_Present.
Bob Duff [Fri, 10 Apr 2009 14:03:49 +0000 (14:03 +0000)]
exp_ch5.adb, [...]: Move the code that creates a call to the _Postconditions procedure in the case...
2009-04-10 Bob Duff <duff@adacore.com>
* exp_ch5.adb, exp_ch6.adb, sem_ch6.adb: Move the code that creates a
call to the _Postconditions procedure in the case of implicit returns
from analysis to expansion. This eliminates some duplicated code. Use
the Postcondition_Proc to find the identity of this procedure during
expansion.
* snames.ads-tmpl: Remove names that are no longer used in the
Project Manager.
Mark specifically those that are used only in gprbuild
2009-04-10 Eric Botcazou <ebotcazou@adacore.com>
* init.c: Adjust EH support code on Alpha/Tru64.
2009-04-10 Bob Duff <duff@adacore.com>
* sem_ch6.adb (Process_PPCs): Add a call to the _Postconditions
procedure on every path that could return implicitly (not via a return
statement) from a procedure.
2009-04-10 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Build_Master_Entity): An extended return statement is a
valid scope for a task declarations and therefore for a master id.
2009-04-10 Robert Dewar <dewar@adacore.com>
* sem_aux.adb: Minor reformatting
2009-04-10 Vincent Celier <celier@adacore.com>
* scn.adb (Obsolescent_Check_Flag): New Boolean flag, initialized to
True.
(Obsolescent_Check): Do nothing if Obsolescent_Check_Flag is False
(Set_Obsolescent_Check): New procedure to change the value of
Obsolescent_Check_Flag.
* scn.ads (Set_Obsolescent_Check): New procedure to control
Obsolescent_Check.
* sinput-l.adb (Load_File): Do not check for pragma Restrictions on
obsolescent features while preprocessing.
* xsnamest.adb: Use XUtil to have uniform line endings (UNIX style) in
generated files on all platforms.
2009-04-10 Robert Dewar <dewar@adacore.com>
* sem_aux.adb: Minor reformatting
2009-04-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Definition): Handle properly the case of a
protected function with formals that returns an anonymous access type.
2009-04-10 Thomas Quinot <quinot@adacore.com>
* sem_disp.adb: Minor reformatting
2009-04-10 Vasiliy Fofanov <fofanov@adacore.com>
* seh_init.c: Do not use the 32-bit specific implementation of
__gnat_install_SEH_handler on 64-bit Windows target (64-bit specific
version TBD).
2009-04-10 Jose Ruiz <ruiz@adacore.com>
* mlib-tgt-specific-xi.adb (Get_Target_Prefix): Target_Name may contain
a '/' at the end so we better use the complete target name to determine
whether it is a PowerPC 55xx target.
2009-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/20118
cp/
* parser.c (cp_parser_check_template_parameters): Take a
cp_declarator parameter.
(cp_parser_elaborated_type_specifier): Update to
cp_parser_check_template_parameters.
(cp_parser_class_head): Likewise.
(cp_parser_check_declarator_template_parameters): Likewise.
(cp_parser_check_template_parameters): Handle first the non-error
conditions. Give more accurate diagnostics if a declarator is
given.
testsuite/
* g++.dg/parse/pr20118.C: New.
* g++.dg/template/spec16.C: Update.
Makefile.in, utils.c: Include "rtl.h" to avoid compile time warnings.
2009-04-10 Tristan Gingold <gingold@adacore.com>
* gcc-interface/Makefile.in, gcc-interface/utils.c: Include "rtl.h" to
avoid compile time warnings.
Do not add gcc/config in include search list while compiling the RTS.
Pragma Thread_Local_Storage is available on any target.
* exp_util.adb (Make_Non_Empty_Check): New function
(Silly_Boolean_Array_Not_Test): Add call to Make_Non_Empty_Check
(Silly_Boolean_Array_Xor_Test): Use Make_Non_Empty_Check
2009-04-10 Arnaud Charlet <charlet@adacore.com>
* make.adb, gnatlink.adb: Rename JGNAT toolchain.
2009-04-10 Jose Ruiz <ruiz@adacore.com>
* mlib-tgt-specific-xi.adb (Get_Target_Prefix): Insert the appropriate
tool prefix for AVR and PowerPC 55xx targets.
2009-04-10 Robert Dewar <dewar@adacore.com>
* sem_warn.adb (Within_Postcondition): New function
(Check_Unset_Reference): Use Within_Postcondition to stop bad warning
* exp_ch7.adb (Find_Final_List): When creating a finalization-chain
entity and the scope is a subprogram, retrieve the Sloc of the
subprogram's body rather than using the sloc of the spec, for better
line-stepping behavior in gdb.
(Wrap_Transient_Declaration): For the Sloc of nodes created with a list
controller, use the Sloc of the first declaration of the containing list
rather than that of the node that triggered creation of the list
controller.
* prj-nmsc.adb:
(Check_Library_Attributes): For a project qualified as a library project
that is not a library project, indicate in the error message which
attributes are missing (Library_Dir and/or Library_Name).
* sem_prag.adb (Analyze_Pragma, case Task_Name): Do not expand argument
of pragma. It will be recopied and analyzed when used in call to
Create_Task.
* sem_res.adb (Resolve_Call): Clarify use of secondary stack within
initialization operations and recognize use of it in procedure calls
within init_procs.
* exp_ch9.adb (Make_Task_Create_Call): Copy full tree of Task_Name
argument, because it may have side-effects.
* exp_ch2.adb: Remove obsolete comments on default functions
2009-04-10 Jose Ruiz <ruiz@adacore.com>
* adaint.c (RTX section): Do for RTX the same thing as we do for
Windows (include ctype.h and define a fallback ISALPHA if IN_RTS).
* vms_data.ads:
Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT
New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn
New qualifier /LXDEBUG=nnn for -gnatDnnn
For H820-010
* gnat_ugn.texi:
Update documentation for VMS qualifiers equivalent to -gnatGnn and
-gnatDnn
2009-04-09 Nicolas Setton <setton@adacore.com>
* s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long,
to match layout of siginfo_t in sys/signal.h.
* gcc-interface/Makefile.in: Add section for x86_64 darwin.
2009-04-09 Thomas Quinot <quinot@adacore.com>
* g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment.
2009-04-09 Nicolas Setton <setton@adacore.com>
* s-oscons-tmplt.c: Allow long lines in the generated spec.
Add generation of Darwin-specific constants needed when binding to the
pthread library.
Robert Dewar [Thu, 9 Apr 2009 12:56:35 +0000 (14:56 +0200)]
2009-04-09 Robert Dewar <dewar@adacore.com>
* checks.adb:
(Insert_Valid_Check): Avoid unnecessary generation of junk declaration
when no invalid values exist, Avoid duplicate read of atomic variable.
* cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid
(Standard_Unsigned): Set Is_Known_Valid
* sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on
subtype declaration if no constraint.
(Set_Modular_Size): Set Is_Known_Valid if appropriate
(Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint
* lib-load.adb (Load_Unit): When loading the parent of a child unit
named in a with_clause, retain the with_clause to preserve a
limited_with indication.