* gnatchop.adb (BOM_Length): New global variable
(Write_Unit): Add new parameter Write_BOM
(Write_Chopped_Files): Check for BOM and set Write_BOM for call
to Write_Unit
* gnat_ugn.texi: Add note on propagation of BOM by gnatchop
2009-04-15 Geert Bosch <bosch@adacore.com>
* system-mingw-x86_64.ads, system-darwin-x86_64.ads
(Backend_Overflow_Checks): Set to True.
2009-04-15 Gary Dismukes <dismukes@adacore.com>
* par-ch3.adb (P_Type_Declaration): Issue an error if the synchronized
keyword is given in a record extension.
* exp_ch7.adb (Expand_Ctrl_Function_Call): Procede with the expansion
of a controlled function call in the context of a record aggregate.
This does not apply to array aggregates since the call will be expanded
into assignments.
* sem_eval.adb (Get_Static_Length): Go to origin node for array bounds
in case they were rewritten by expander (Force_Evaluation).
* targparm.adb (Get_Target_Parameters): Correct check for
Suppress_Exception_Locations.
2009-04-15 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Inlined_Call): If an in-parameter in a call to be
inlined is of an array type that is not bit-packed, use a renaming
declaration to capture its value, rather than a constant declaration.
* prj-part.adb, prj-tree.adb, prj-tree.ads (Restore_And_Free): renames
Restore, and free the saved context.
2009-04-15 Gary Dismukes <dismukes@adacore.com>
* sem_ch3.adb (Analyze_Private_Extension_Declaration): Move error check
for illegal private extension from a synchronized interface parent in
front of check for illegal limited extension so that limited extension
from a synchronized interface will be rejected.
(Check_Ifaces): Check that a private extension that has a synchronized
interface as a progenitor must be explicitly declared synchronized.
Also check that a record extension cannot derive from a synchronized
interface.
* prj-nmsc.adb: Minor spelling error corrections in error messages
2009-04-15 Robert Dewar <dewar@adacore.com>
* sinfo.ads: Minor comment update
* opt.ads: Minor comment updates
* checks.adb (Enable_Overflow_Check): Do not set Do_Overflow_Check for
modular type.
2009-04-15 Ed Schonberg <schonberg@adacore.com>
* exp_disp.ads, exp_disp.adb (Register_Primitive): Is now a function
that generates the code needed to update a dispatch table when a
primitive operation is declared with a subprogram body without previous
spec. Insertion of the generated code is responsibility of the caller.
(Make_DT): When building static tables, append the code created by
Register_Primitive to update a secondary table after it has been
constructed.
* exp_ch3.adb, exp_ch6.adb: use new version of Register_Primitive.
* sem_disp.adb (Check_Dispatching_Operation): Call Register_Primitive
on an overriding operation that implements an interface operation only
if not building static dispatch tables.
* a-caldel-vms.adb (To_Duration): Declare a "safe" end of time which
does not cause overflow when converted to Duration. Use the safe value
as the maximum allowable time delay..
2009-04-15 Jerome Lambourg <lambourg@adacore.com>
* g-comlin.adb (Set_Command_Line): When adding a switch with attached
parameter, specify that the delimiter is NUL, otherwise "-j2" will be
translated to "-j 2".
2009-04-15 Bob Duff <duff@adacore.com>
* rtsfind.adb (Maybe_Add_With): Split out procedure to add implicit
with_clauses, to avoid code duplication. Change this processing so we
always add a with_clause on the main unit if needed.
* frontend.adb (Frontend): Set proper default for
Warn_On_Non_Local_Exception.
* opt.ads (Exception_Handler_Encountered): New flag
(No_Warn_On_Non_Local_Exception): New flag
* par-ch11.adb (P_Exception_Handler): Set Exception_Handler_Encountered
* sem_warn.adb (Set_Warning_Switch): Set No_Warn_On_Non_Local_Exception
(Set_Dot_Warning_Switch): Set No_Warn_On_Non_Local_Exception
2009-04-15 Cyrille Comar <comar@adacore.com>
* s-tassta.adb, a-exextr.adb, a-elchha.adb
(Ada.Exception.Last_Chance_Handler): Do not print unhandled exception
message when exception traces are active since it would generate
redundant information.
(Exception_Traces.Notify_Exception): put message output by a critical
section to avoid unsynchronized output.
(Trace_Unhandled_Exception_In_Task): put message output by a critical
section to avoid unsynchronized output.
2009-04-15 Emmanuel Briot <briot@adacore.com>
* g-comlin.adb, prj-tree.adb, prj-tree.ads, prj.adb, prj.ads
(Free): New subprogram.
* a-calend.adb: Add new constant Nanos_In_Four_Years.
(Formatting_Operations.Time_Of): Change the way four year chunks of
nanoseconds are added to the intermediate result.
2009-04-15 Nicolas Setton <setton@adacore.com>
* sysdep.c: Add __APPLE__ in the list of systems where get_immediate
does not need to wait for a carriage return.
2009-04-15 Tristan Gingold <gingold@adacore.com>
* bindgen.adb: Do not generate adafinal if No_Finalization restriction
is set.
2009-04-15 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Entity): improve error message for improper use of
incomplete types.
Diagnose additional illegal uses of incomplete types in formal parts.
appearing in formal parts.
* a-calend.adb: Move constant Epoch_Offset from package
Conversion_Operations to top level.
(Delay_Operations.To_Duration): Define a constant which represents
"end of time" and use it as a guard against very distant delay dates.
Protect the code against overflow when performing the origin shift to
Unix time.
* sem_elim.adb (Set_Eliminated): Add support for elimination of
dispatching subprograms.
* exp_disp.adb (Make_DT): Minor code cleanup when freezing primitive
operations. Initialize with "null" the slots of eliminated dispaching
primitives.
(Write_DT): Add output for eliminated primitives.
rs6000.c (rs6000_init_builtins): Set TYPE_NAME of our distinct integral and vector types.
./ * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
our distinct integral and vector types.
testsuite/
* g++.dg/ext/altivec-17.C: New.
* sem_ch8.adb (Use_One_Type): If both clauses appear on the same unit,
the second is redundant, regardless of scopes.
2009-04-15 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Get_Directories): Check for sources before checking
the object directory as when there are no sources, they may not be any
object directory.
* make.adb (Gnatmake): Do not attempt to get the path name of the exec
directory, when there are no exec directory.
2009-04-15 Ed Schonberg <schonberg@adacore.com>
* sem_type.adb (Remove_Conversions): In order to resolve spurious
ambiguities, refine removal of universal interpretations from complex
expressions with literal arguments, when some numeric operators have
been declared abstract.
2009-04-15 Ed Falis <falis@adacore.com>
* init.c: Map SIGSEGV to Storage_Error for all targets for uniformity
and backward compatibility for targets using probing for stack overflow
2009-04-15 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case 'Obsolescent): Pragma is legal
after any declaration, including renaming declarations.
Javier Miranda [Wed, 15 Apr 2009 09:10:11 +0000 (09:10 +0000)]
exp_ch4.adb (Expand_N_Allocator): Code cleanup.
2009-04-15 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_N_Allocator): Code cleanup.
* sem_ch6.adb (Check_Anonymous_Return): Add missing support for
functions returning anonymous access to class-wide limited types. Mark
also the containing scope as a task master.
* sem_ch8.adb (Restore_Scope_Stack): Add missing management for
limited-withed packages. Required to restore their visibility after
processing packages associated with implicit with-clauses.
* exp_ch3.adb (Build_Class_Wide_Master): Avoid marking masters
associated with return statements because this work is now done by
Check_Anonymous_Return.
(Build_Master): Code cleanup.
Vincent Celier [Wed, 15 Apr 2009 08:57:23 +0000 (08:57 +0000)]
prj-nmsc.adb (Locate_Directory): New Boolean parameter Externally_Built indicating if...
2009-04-15 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Locate_Directory): New Boolean parameter
Externally_Built indicating if the project is externally built. If it
is, and --subdirs is specified, but the subdir does not exist, look
for the specified directory, without the subdir.
* sem_ch3.adb (Analyze_Private_Extension_Declaration): Verify that a
private extension whose parent is a synchronized interface carries an
explicit synchronized keyword.
Ed Schonberg [Wed, 15 Apr 2009 08:37:21 +0000 (08:37 +0000)]
sem_ch3.adb (Analyze_Type_Declaration): Create freeze node for access type even if...
2009-04-15 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Type_Declaration): Create freeze node for access
type even if the designated type comes from a limited_with clause, to
ensure that the symbol for the finalization list of the access type is
created.
Diego Novillo [Tue, 14 Apr 2009 20:18:49 +0000 (16:18 -0400)]
[multiple changes]
2009-04-14 Diego Novillo <dnovillo@google.com>
Le-Chun Wu <lcwu@google.com>
* configure.ac: Add --enable-plugin support.
Define ENABLE_PLUGIN and PLUGINLIBS when specified.
* Makefile.in (PLUGIN_H): Define.
Export ENABLE_PLUGIN and GMPINC to site.exp.
Add PLUGINLIBS to link command.
Add/modify dependencies for plugin.o and files including plugin.h.
(plugin.o): New.
* config.in: Regenerate.
* opts.c (common_handle_option): Handle OPT_fplugin_ and
OPT_fplugin_arg_.
2009-04-14 Le-Chun Wu <lcwu@google.com>
* tree-pass.h (register_one_dump_file): Add a prototype for
register_one_dump_file.
* toplev.c (compile_file): Call initialize_plugins.
(do_compile): Call invoke_plugin_callbacks.
(toplev_main): Call invoke_plugin_callbacks.
* common.opt: Add -fplugin= and -fplugin-arg-.
* gcc-plugin.h: New public header file for plugins to include.
* plugin.c: New source file.
* plugin.h: New internal header file.
* passes.c (register_one_dump_file): Make it external.
Eli Zaretskii [Tue, 14 Apr 2009 17:46:29 +0000 (17:46 +0000)]
configure.ac (setobjs, msdosdjgpp): Move a-priori setting of existing and required library functions to...
* configure.ac (setobjs, msdosdjgpp): Move a-priori setting of
existing and required library functions to with_target_subdir
section, so that the native build does detect them at configure
time.
* configure: Regenerated.
Jakub Jelinek [Tue, 14 Apr 2009 08:50:26 +0000 (10:50 +0200)]
configure.ac: Change copyright header to refer to version 3 of the GNU General Public License...
* configure.ac: Change copyright header to refer to version
3 of the GNU General Public License and to point readers at the
COPYING3 file and the FSF's license web page.
* Makefile.def: Likewise.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
Vladimir Makarov [Mon, 13 Apr 2009 20:02:41 +0000 (20:02 +0000)]
genautomata.c: Put blank after comma.
2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
* genautomata.c: Put blank after comma.
(automaton_decls): New.
(struct unit_usage): Add comments to member next.
(store_alt_unit_usage): Keep the list ordered.
(unit_present_on_list_p, equal_alternatives_p): New.
(check_regexp_units_distribution): Check units distribution
correctness correctly.
(main): Don't write automata if error is found. Return correct
exit code.
* config/m68k/cf.md (cfv4_ds): Remove.
(cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
* config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
power4-load-ext, power4-store, power4-store-update,
power4-fpstore, power4-fpstore-update, power4-two, power4-three,
power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
power4-sqrt, power4-isync): Modify reservation to make correct
unit distribution to automata.
Adam Nemet [Mon, 13 Apr 2009 14:51:30 +0000 (14:51 +0000)]
except.c (pass_set_nothrow_function_flags): Set name and add TODO_dump_func.
* except.c (pass_set_nothrow_function_flags): Set name and add
TODO_dump_func.
(set_nothrow_function_flags): Mention in the dump file when
changing a function to nothrow.
re PR other/39062 (libssp/ssp.c needs malloc.h for mingw)
2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
PR target/39062
* ssp.c: Also include malloc.h for alloca(). MinGW needs it.
* configure.ac: Also check for malloc.h.
* configure: Regenerated.
* config.h.in: Regenerated.
* 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.