Janus Weil [Tue, 26 Oct 2010 17:38:42 +0000 (19:38 +0200)]
re PR fortran/42647 ([F03] Missed initialization/dealloc of allocatable scalar DT with allocatable component)
2010-10-26 Janus Weil <janus@gcc.gnu.org>
PR fortran/42647
* trans.h (gfc_deallocate_scalar_with_status): New prototype.
* trans.c (gfc_deallocate_scalar_with_status): New function for
deallocation of allocatable scalars.
* trans-array.c (structure_alloc_comps): Call it here ...
* trans-decl.c (gfc_trans_deferred_vars): ... here ...
* trans-stmt.c (gfc_trans_deallocate): ... and here.
Jan Hubicka [Tue, 26 Oct 2010 16:40:16 +0000 (18:40 +0200)]
re PR lto/45736 (ICE: in cgraph_remove_unreachable_nodes, at ipa.c:245 with -flto and attribute((constructor)))
PR middle-end/45736
* cgraph.c (cgraph_set_readonly_flag): Rename to...
(cgraph_set_const_flags) ... this one; get also looping argument;
clear constructor/destructor flags.
(cgraph_set_pure_flag): Likewise.
(cgraph_set_looping_const_or_pure_flag): Remove.
(cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
to optimize away static ctors/dtors; it does not work on inline clones;
external functions can always be rmeoved.
(cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on inline
clones; in LTO external functions always can go.
(cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
(cgraph_mark_address_taken_node): Assert that we are not taking address of
inline clone.
(cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
external functions.
* ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with address taken.
(ipcp_initialize_node_lattices): Only local functions can be handled without cloning.
* cgraph.h (cgraph_set_readonly_flag,
cgraph_set_looping_const_or_pure_flag): Remove.
(cgraph_set_const_flag): Declare.
(cgraph_set_pure_flag): Update.
* ipa-pure-const (propagate_pure_const, local_pure_const): Update
flags setting code.
* ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not look at inline
clones; fix handling of external definitions.
(cgraph_postorder): Do not look at inline clones in the first pass.
(function_and_variable_visibility): Drop constructors/destructor
flags at pure and const functions.
* tree-profile.c (tree_profiling): Update.
* ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
address taken; external functions do not account to whole program size.
(cgraph_decide_inlining): Likewise; do not try to inline functions already
inlined.
* testsuite/gcc.dg/lto/pr45736_0.c: New function.
H.J. Lu [Tue, 26 Oct 2010 13:56:42 +0000 (13:56 +0000)]
Properly align parameters on stack for x86.
gcc/
2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
PR target/44948
* config/i386/i386.c (ix86_old_function_arg_boundary): New.
(ix86_function_arg_boundary): Always align parameters on stack
in 64bit and align parameters with alignment >= 16byte on stack
in 32bit. Warn alignment change.
Robert Dewar [Tue, 26 Oct 2010 13:17:23 +0000 (13:17 +0000)]
opt.ads: Move documentation on checksum stuff here from prj-nmsc
2010-10-26 Robert Dewar <dewar@adacore.com>
* opt.ads: Move documentation on checksum stuff here from prj-nmsc
* prj-nmsc.adb (Process_Project_Level_Array_Attributes): Move
documentation on checksum versions to opt.ads.
Vincent Celier [Tue, 26 Oct 2010 13:15:05 +0000 (13:15 +0000)]
opt.ads (Checksum_Accumulate_Token_Checksum): New Boolean flag, defaulted to True.
2010-10-26 Vincent Celier <celier@adacore.com>
* opt.ads (Checksum_Accumulate_Token_Checksum): New Boolean flag,
defaulted to True.
(Checksum_GNAT_6_3): New name of Old_Checksums
(Checksum_GNAT_5_03): New name of Old_Old_Checksums
* prj-nmsc.adb (Process_Project_Level_Array_Attributes): Adapt to new
names of Opt flags.
Set Checksum_Accumulate_Token_Checksum to False if GNAT version is 5.03
or before.
* scng.adb (Accumulate_Token_Checksum_GNAT_6_3): New name of procedure
Accumulate_Token_Checksum_Old.
(Accumulate_Token_Checksum_GNAT_5_03): New name of procedure
Accumulate_Token_Checksum_Old_Old.
(Nlit): Call Accumulate_Token_Checksum only if
Opt.Checksum_Accumulate_Token_Checksum is True.
(Scan): Ditto
Vincent Celier [Tue, 26 Oct 2010 13:08:59 +0000 (13:08 +0000)]
opt.ads (Old_Checksums, [...]): New Boolean flags, defaulted to False.
2010-10-26 Vincent Celier <celier@adacore.com>
* opt.ads (Old_Checksums, Old_Old_Checksums): New Boolean flags,
defaulted to False.
* prj-nmsc.adb (Process_Project_Level_Array_Attributes): When
processing attribute Toolchain_Version ("Ada"), set Opt.Old_Checksums
and Opt.Old_Old_Checksums depending on the GNAT version.
* scng.adb (Accumulate_Token_Checksum_Old): New procedure.
(Accumulate_Token_Checksum_Old_Old): New procedure.
(Scan): For keywords, when Opt.Old_Checksums is True, call one of the
alternative procedures Accumulate_Token_Checksum_Old or
Accumulate_Token_Checksum_Old_Old, instead of Accumulate_Token_Checksum.
Richard Kenner [Tue, 26 Oct 2010 13:06:34 +0000 (13:06 +0000)]
utils2.c (build_compound_expr): New function.
2010-10-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc-interface/utils2.c (build_compound_expr): New function.
* gcc-interface/gigi.h (build_compound_expr): Declare it.
* gcc-interface/trans.c (Attribute_to_gnu, call_to_gnu): Use it.
(gnat_to_gnu, case N_Expression_With_Actions): Likewise.
Arnaud Charlet [Tue, 26 Oct 2010 13:05:30 +0000 (15:05 +0200)]
[multiple changes]
2010-10-26 Javier Miranda <miranda@adacore.com>
* sem_prag.adb (Process_Import_Or_Interface): Skip primitives of
interface types when processing all the entities in the homonym chain
that are declared in the same declarative part.
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Process_Range_In_Decl): If the range is part of a
quantified expression, the insertion point for range checks will be
arbitrarily far in the tree.
* sem_ch5.adb (One_Bound): Use Insert_Actions for the declaration of
the temporary that holds the value of the bounds.
* sem_res.adb (Resolve_Quantified_Expressions): Disable expansion of
condition until the full expression is expanded.
Arnaud Charlet [Tue, 26 Oct 2010 13:00:05 +0000 (15:00 +0200)]
[multiple changes]
2010-10-26 Robert Dewar <dewar@adacore.com>
* opt.ads: Comment fix.
* sem_cat.adb: Treat categorization errors as warnings in GNAT Mode.
* switch-c.adb: GNAT Mode does not set
Treat_Categorization_Errors_As_Warnings.
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming): Improve warning when an
operator renames another one with a different name.
Arnaud Charlet [Tue, 26 Oct 2010 12:45:45 +0000 (14:45 +0200)]
[multiple changes]
2010-10-26 Robert Dewar <dewar@adacore.com>
* opt.ads (Treat_Categorization_Errors_As_Warnings): New flag
* sem_cat.adb (Check_Categorization_Dependencies):
Use Check_Categorization_Dependencies
* switch-c.adb: GNAT Mode sets Treat_Categorization_Errors_As_Warnings
-gnateP sets Treat_Categorization_Errors_As_Warnings
* usage.adb: Add line for -gnateP switch
2010-10-26 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Add_Internal_Interface_Entities): Handle primitives
inherited from the parent that cover interface primitives.
(Derive_Progenitor_Subprograms): Handle primitives inherited from
the parent that cover interface primitives.
* sem_disp.adb (Find_Primitive_Covering_Interface): When searching in
the list of primitives of the type extend the test to include inherited
private primitives.
* sem_ch6.ads (Is_Interface_Conformant): Add missing documentation.
* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Add missing
barrier to the loop searching for explicit overriding primitives.
* sem_ch4.adb (Analyze_Indexed_Component_Form): Add missing barrier
before accessing attribute Entity.
2010-10-26 Bob Duff <duff@adacore.com>
* make.adb: Call Namet.Finalize, so we can get statistics.
Arnaud Charlet [Tue, 26 Oct 2010 12:35:17 +0000 (14:35 +0200)]
[multiple changes]
2010-10-26 Geert Bosch <bosch@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the subprogram_body
node to determine wether the subprogram is a rewritten parameterized
expression.
2010-10-26 Robert Dewar <dewar@adacore.com>
* opt.ads: Minor code reorganization
Alphabetize Warning switches.
Arnaud Charlet [Tue, 26 Oct 2010 12:28:37 +0000 (14:28 +0200)]
[multiple changes]
2010-10-26 Javier Miranda <miranda@adacore.com>
* sem_ch6.adb (Check_Overriding_Indicator, New_Overloaded_Entity): When
setting attribute Overridden_Operation do not reference the entities
generated by Derive_Subprograms but their aliased entity (which
is the primitive inherited from the parent type).
Arnaud Charlet [Tue, 26 Oct 2010 12:19:56 +0000 (14:19 +0200)]
[multiple changes]
2010-10-26 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb (Is_Base_Type): New function, use it where
appropriate.
* exp_ch6.adb, exp_dbug.adb, exp_disp.adb, freeze.adb, lib-xref.adb,
sem_aux.adb, sem_ch3.adb, sem_ch7.adb, sem_ch8.adb (Is_Base_Type): Use
this new abstraction where appropriate.
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb: Code clean up.
2010-10-26 Paul Hilfinger <hilfinger@adacore.com>
* exp_dbug.ads: Document effect of 'pragma Unchecked_Union' on
debugging data.
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Note_Possible_Modification): If the target of an
assignment is the bound variable in an iterator, the domain of
iteration, i.e. array or container, is modified as well.
2010-10-26 Bob Duff <duff@adacore.com>
* Make-generated.in: Make the relevant make targets depend on
ceinfo.adb and csinfo.adb.
* csinfo.adb, ceinfo.adb: Make sure it raises an exception on failure,
so when called from xeinfo, the failure will be noticed.
* sinfo.ads: Update comments to reflect the fact that xsinfo runs csinfo
* xsinfo.adb, xeinfo.adb: Run ceinfo to check for errors. Close files.
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb: Set properly parent field of operands of concatenation.
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Check_Infinite_Recursion): A recursive call within a
conditional expression or a case expression should not generate an
infinite recursion warning.
Arnaud Charlet [Tue, 26 Oct 2010 11:02:31 +0000 (13:02 +0200)]
[multiple changes]
2010-10-26 Javier Miranda <miranda@adacore.com>
* einfo.ads, einfo.adb (Is_Overriding_Operation): Removed.
(Set_Is_Overriding_Operation): Removed.
* sem_ch3.adb (Check_Abstract_Overriding): Remove redundant call to
Is_Overriding_Operation.
* exp_ch7.adb (Check_Visibly_Controlled): Remove redundant call to
Is_Overriding_Operation.
* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Remove redundant
call to Set_Is_Overriding_Operation.
* sem_util.adb (Collect_Primitive_Operations): Replace test on
Is_Overriding_Operation by test on the presence of attribute
Overridden_Operation.
(Original_Corresponding_Operation): Remove redundant call to attribute
Is_Overriding_Operation.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
redundant call to Is_Overriding_Operation.
(Verify_Overriding_Indicator): Replace several occurrences of test on
Is_Overriding_Operation by test on the presence of attribute
Overridden_Operation.
(Check_Convention): Replace test on Is_Overriding_Operation by test on
the presence of Overridden_Operation.
(Check_Overriding_Indicator): Add missing decoration of attribute
Overridden_Operation. Minor code cleanup.
(New_Overloaded_Entity): Replace occurrence of test on
Is_Overriding_Operation by test on the presence of attribute
Overridden_Operation. Remove redundant setting of attribute
Is_Overriding_Operation plus minor code reorganization.
Add missing decoration of attribute Overridden_Operation.
* sem_elim.adb (Set_Eliminated): Replace test on
Is_Overriding_Operation by test on the presence of Overridden_Operation.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Replace test on
Is_Overriding_Operation by test on the presence of
Overridden_Operation. Remove a redundant test on attribute
Is_Overriding_Operation.
* lib-xref.adb (Generate_Reference): Replace test on
Is_Overriding_Operation by test on the presence of Overridden_Operation.
(Output_References): Replace test on Is_Overriding_Operation by test on
the presence of Overridden_Operation.
* sem_disp.adb (Override_Dispatching_Operation): Replace test on
Is_Overriding_Operation by test on the presence of Overridden_Operation.
Add missing decoration of attribute Overridden_Operation.
* sem_res.adb (Resolve_Actuals): In case of certain
internally-generated type conversions (created by OK_Convert_To, so the
Conversion_OK flag is set), avoid fetching the component type when it's
not really an array type, but a private type completed by an array type.
Arnaud Charlet [Tue, 26 Oct 2010 10:57:52 +0000 (12:57 +0200)]
[multiple changes]
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb: Adjust format of error message.
2010-10-26 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb (OK_To_Reference): Removed, no longer used.
* exp_util.adb (Side_Effect_Free): Put in safety barrier in code to
detect renamings to avoid problems with invariants.
* sem_ch13.adb (Replace_Type_References_Generic): New procedure
(Build_Invariant_Procedure): Use Replace_Type_Reference_Generic
(Build_Predicate_Function): Use Replace_Type_Reference_Generic
* sem_res.adb, sem_ch8.adb, sem_ch4.adb (OK_To_Reference): Remove
references, flag is no longer set.
Arnaud Charlet [Tue, 26 Oct 2010 10:55:01 +0000 (12:55 +0200)]
[multiple changes]
2010-10-26 Vincent Celier <celier@adacore.com>
* prj.ads (Source_Data): New Boolean component Initialized, defaulted
to False, set to True when Source_Data is completely initialized.
* prj-env.adb: Minor comment fix.
2010-10-26 Robert Dewar <dewar@adacore.com>
* sem_case.adb, sem_ch6.adb, sem_util.adb: Minor reformatting.
Arnaud Charlet [Tue, 26 Oct 2010 10:51:36 +0000 (12:51 +0200)]
[multiple changes]
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iteration_Scheme): Diagnose attempt to use thew
form "for X in A" when A is an array object. This form is only intended
for containers.
* sem_eval.adb: Fix reference to non-existing field of type conversion
node.
* sem_case.adb (Check_Choices): Improve error reporting for overlapping
choices in case statements.
2010-10-26 Gary Dismukes <dismukes@adacore.com>
* exp_disp.adb (Expand_Interface_Actuals): When expanding an actual for
a class-wide interface formal that involves applying a displacement
conversion to the actual, check for the case of calling a build-in-place
function and handle generation of the implicit BIP parameters (call
Make_Build_In_Place_Call_In_Anonymous_Context).
Add with and use of Exp_Ch6.
2010-10-26 Robert Dewar <dewar@adacore.com>
* sem_prag.adb, sem_cat.ads: Minor reformatting.
2010-10-26 Sergey Rybin <rybin@adacore.com>
* vms_data.ads: Define VMS qualifier for gnatelim '--ignore' option
2010-10-26 Thomas Quinot <quinot@adacore.com>
* sem_util.adb (Has_Preelaborable_Initialization.Check_Components):
For a discriminant, use Discriminant_Default_Value rather than
Expression (Declaration_Node (D)).
2010-10-26 Geert Bosch <bosch@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Parameterized
expressions don't need a spec, even when style checks require
subprograms to have one.
Arnaud Charlet [Tue, 26 Oct 2010 10:42:02 +0000 (12:42 +0200)]
[multiple changes]
2010-10-26 Matthew Heaney <heaney@adacore.com>
* Makefile.rtl, impunit.adb: Add bounded hashed set and bounded hashed
map containers.
* a-cohata.ads: Add declaration of generic package for bounded hash
table types.
* a-chtgbo.ads, a-chtgbo.adb, a-chtgbk.ads, a-chtgbk.adb, a-cbhase.ads,
a-cbhase.adb, a-cbhama.ads, a-cbhama.adb: New files.
2010-10-26 Ed Schonberg <schonberg@adacore.com>
* sem_warn.adb: Improve warning message on overlapping actuals.
2010-10-26 Thomas Quinot <quinot@adacore.com>
* sem_ch4.adb, exp_dist.adb: Minor reformatting.
2010-10-26 Vincent Celier <celier@adacore.com>
* makeusg.adb (Makeusg): Add lines for switches -vl, -vm and -vh.
2010-10-26 Robert Dewar <dewar@adacore.com>
* exp_ch3.adb (Expand_N_Object_Declaration): Move generation of
predicate check to analyzer, since too much rewriting occurs in the
analyzer.
* sem_ch13.adb (Build_Predicate_Function): Change calling sequence, and
change the order in which things are done to fix several errors in
dealing with qualification of the type name.
(Build_Static_Predicate): Built static predicate after full analysis
of the body. This is necessary to fix several problems.
* sem_ch3.adb (Analyze_Object_Declaration): Move predicate check here
from expander, since too much expansion occurs in the analyzer to leave
it that late.
(Analyze_Object_Declaration): Change parameter Include_Null to new name
Include_Implicit in Is_Partially_Initialized_Type call.
(Analyze_Subtype_Declaration): Make sure predicates are proapagated in
some strange cases of internal subtype generation.
* sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type): Change
Include_Null to Include_Implicit, now includes the case of
discriminants.
2010-10-26 Sergey Rybin <rybin@adacore.com>
* gnat_rm.texi: Revise the documentation for pragma Eliminate.
gcc/
* tree.h (ENUM_IS_OPAQUE): New.
* dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
gcc/cp/
* cp-tree.h (SET_OPAQUE_ENUM_P): New.
(OPAQUE_ENUM_P): New.
(ENUM_FIXED_UNDERLYING_TYPE_P): New.
(start_enum): Update prototype.
(finish_enum_value_list): New prototype.
* parser.c (cp_parser_elaborated_type_specifier): Issue a pedwarn if
"enum class" is used in an elaborated-type-specifier.
(cp_parser_enum_specifier): Rewrite to parse opaque-enum-specifiers.
* decl.c (copy_type_enum): New.
(finish_enum_value_list): New, with code from finish_enum.
(finish_enum): A lot of code removed. Added a gcc_assert.
(start_enum): Add parameters enumtype and is_new.
Rewrite to work with opaque-enum-specifiers.
* pt.c (maybe_process_partial_specialization): Allow for template
specialization of enumerations, with a pedwarn.
(lookup_template_class): Update call to start_enum. Call to
SET_OPAQUE_ENUM_P.
(tsubst_enum): Call to begin_scope, finish_scope and
finish_enum_value_list.
Jie Zhang [Tue, 26 Oct 2010 03:22:49 +0000 (03:22 +0000)]
stor-layout.c (layout_decl): Use the field's type to determine the mode and keep DECL_BIT_FIELD for a...
* stor-layout.c (layout_decl): Use the field's type to
determine the mode and keep DECL_BIT_FIELD for a volatile
bit-field.
* config/arm/arm.c (arm_override_options): Default to
-fstrict-volatile-bitfields.
testsuite/
* gcc.target/arm/volatile-bitfields-1.c: New test.
* gcc.target/arm/volatile-bitfields-2.c: New test.
* gcc.target/arm/volatile-bitfields-3.c: New test.
Eric Botcazou [Mon, 25 Oct 2010 19:29:10 +0000 (19:29 +0000)]
utils2.c: Include flags.h and remove prototypes.
* gcc-interface/utils2.c: Include flags.h and remove prototypes.
(build_unary_op) <TRUTH_NOT_EXPR>: When not optimizing, fold the result
of the call to invert_truthvalue_loc.
* gcc-interface/Make-lang.in (utils2.o): Add $(FLAGS_H).
Eric Botcazou [Mon, 25 Oct 2010 17:44:05 +0000 (17:44 +0000)]
utils.c (update_pointer_to): Clear TYPE_POINTER_TO and TYPE_REFERENCE_TO of the old type after redirecting...
* gcc-interface/utils.c (update_pointer_to): Clear TYPE_POINTER_TO and
TYPE_REFERENCE_TO of the old type after redirecting its pointer and
reference types.
Arnaud Charlet [Mon, 25 Oct 2010 15:26:02 +0000 (17:26 +0200)]
[multiple changes]
2010-10-25 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_file_time_name_attr): Use GetFileAttributesEx to get
the timestamp. A bit faster than opening/closing the file.
(__gnat_stat_to_attr): Remove kludge for Windows.
(__gnat_file_exists_attr): Likewise.
The timestamp is now retreived using GetFileAttributesEx as faster.
2010-10-25 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Derive_Interface_Subprogram): New subprogram.
(Derive_Subprograms): For abstract private types transfer to the full
view entities of uncovered interface primitives. Required because if
the interface primitives are left in the private part of the package
they will be decorated as hidden when the analysis of the enclosing
package completes (and hence the interface primitive is not visible
for dispatching calls).
2010-10-25 Matthew Heaney <heaney@adacore.com>
* Makefile.rtl, impunit.adb: Added bounded set and bounded map
containers.
* a-crbltr.ads: Added declaration of generic package for bounded tree
types.
* a-rbtgbo.ads, a-rbtgbo.adb, a-rbtgbk.ads, a-rbtgbk.adb, a-btgbso.ads,
a-btgbso.adb, a-cborse.ads, a-cborse.adb, a-cborma.ads, a-cborma.adb:
New.
2010-10-25 Thomas Quinot <quinot@adacore.com>
* sem_util.adb: Minor reformatting.
* usage.adb: Fix usage line for -gnatwh.
2010-10-25 Thomas Quinot <quinot@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): For an
instantiation in an RCI spec, omit package body if instantiation comes
from source, even as a nested
package.
* exp_dist.adb (Add_Calling_Stubs_To_Declarations,
*_Support.Add_Receiving_Stubs_To_Declarations): Handle the case of
nested packages, package instantiations and subprogram instantiations.
Arnaud Charlet [Mon, 25 Oct 2010 14:44:20 +0000 (16:44 +0200)]
[multiple changes]
2010-10-25 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb (Expand_Predicated_Loop): Remove code for loop through
non-static predicate, since we agree not to allow this.
(Expand_Predicated_Loop): Properlay handle false predicate (null
list in Static_Predicate field.
* sem_ch13.adb (Build_Static_Predicate): Extensive changes to clean up
handling of more general predicate forms.
2010-10-25 Robert Dewar <dewar@adacore.com>
* sem_ch4.adb, sem_util.adb: Minor reformatting.
* sem_ch8.adb (Find_Selected_Component): Allow selection from instance
of type in predicate or invariant expression.
2010-10-25 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_stat_to_attr): Can set the timestamp on Windows now.
(f2t): New routine.
(__gnat_stat): Rewrite Win32 version.
Arnaud Charlet [Mon, 25 Oct 2010 14:39:59 +0000 (16:39 +0200)]
[multiple changes]
2010-10-25 Robert Dewar <dewar@adacore.com>
* sem_warn.adb, einfo.ads, exp_ch4.adb: Minor comment fix
* sem_case.adb: Comment clarification for loops through false
predicates.
* sem_util.adb: Minor reformatting
(Check_Order_Dependence): Fix bad double blank in error message
2010-10-25 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Membership_Op): in Ada_2012 a membership
operation can have a single alternative that is a value of the type.
Rewrite operation as an equality test.
Arnaud Charlet [Mon, 25 Oct 2010 13:50:29 +0000 (15:50 +0200)]
[multiple changes]
2010-10-25 Matthew Heaney <heaney@adacore.com>
* Makefile.rtl, impunit.adb: Added a-cobove (bounded vector container)
to lists.
* a-contai.ads: Added declaration of Capacity_Error exception.
* a-cobove.ads, a-cobove.adb: New files.
2010-10-25 Thomas Quinot <quinot@adacore.com>
* uname.adb: Revert previous change, no longer needed after change
in par-ch10.adb.
2010-10-25 Thomas Quinot <quinot@adacore.com>
* scos.ads: Minor comment fix.
2010-10-25 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Assignment_Statement): Check dangerous order
dependence.
* sem_ch6.adb (Analyze_Procedure_Call_Statement): Ditto.
* sem_res.adb (Analyze_Actuals): Add actual to list of actuals for
current construct, for subsequent order dependence checking.
(Resolve): Check order dependence on expressions that are not
subexpressions.
* sem_util.adb (Check_Order_Dependence): Code cleanup, to correspond
to latest version of AI05-144-2.
* sem_warn.adb (Warn_On_Overlapping_Actuals): Code cleanup.
2010-10-25 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Build_Static_Predicate): Moved out of
Build_Predicate_Function.
(Build_Static_Predicate): Complet rewrite for more general predicates
2010-10-25 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/forward_list.h (_Fwd_list_node_base::swap): Remove.
(_Fwd_list_base<>::_Fwd_list_base(_Fwd_list_base&&),
_Fwd_list_base<>::_Fwd_list_base(_Fwd_list_base&&, const _Alloc&)):
Don't use swap.
(forward_list<>::swap): Just use std::swap.
* include/bits/forward_list.h (_Fwd_list_base<>::_Fwd_list_base(),
_Fwd_list_base(const _Alloc&)): Don't zero again _M_next.
Eric Botcazou [Mon, 25 Oct 2010 10:35:07 +0000 (10:35 +0000)]
decl.c (gnat_to_gnu_entity, [...]): Allow In Out/Out parameters for functions.
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Function): Allow
In Out/Out parameters for functions.
* gcc-interface/trans.c (gnu_return_var_stack): New variable.
(create_init_temporary): New static function.
(Subprogram_Body_to_gnu): Handle In Out/Out parameters for functions.
(call_to_gnu): Likewise. Use create_init_temporary in order to create
temporaries for unaligned parameters and return value. If there is an
unaligned In Out or Out parameter passed by reference, push a binding
level if not already done. If a binding level has been pushed and the
call is returning a value, create the call statement.
(gnat_to_gnu) <N_Return_Statement>: Handle In Out/Out parameters for
functions.
Eric Botcazou [Sun, 24 Oct 2010 20:50:20 +0000 (20:50 +0000)]
reg-stack.c (convert_regs_1): Return boolean value, true if the CFG has been modified.
* reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
has been modified.
(convert_regs_2): Likewise. Adjust calls to convert_regs_1.
(convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
it has been modified.
François Dumont [Sun, 24 Oct 2010 10:39:11 +0000 (12:39 +0200)]
debug.cc: Fix parameter indexes in __msg_valid_range2 message.
2010-10-24 François Dumont <francois.cppdevs@free.fr>
* src/debug.cc: Fix parameter indexes in __msg_valid_range2 message.
Replace 'before begin' decription in 'before-begin' for consistency
with 'paste-the-end'.
Eric Botcazou [Sun, 24 Oct 2010 07:45:26 +0000 (07:45 +0000)]
cfglayout.c (fixup_reorder_chain): When ensuring that there is at least one insn with a locus corresponding to an...
* cfglayout.c (fixup_reorder_chain): When ensuring that there is at
least one insn with a locus corresponding to an edge's goto_locus,
disregard non-fallthru edges to the exit block and merge the blocks
created for the same goto_locus.
Nicola Pero [Sun, 24 Oct 2010 02:44:03 +0000 (02:44 +0000)]
In gcc/cp/: 2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/cp/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
Removed Objective-C++ specific replacement of cxx_printable_name.
* cp-objcp-common.h: Added LANG_HOOKS_DECL_PRINTABLE_NAME, set
to cxx_printable_name for both C++ and Objective-C++.
* cp-lang.h: Removed LANG_HOOKS_DECL_PRINTABLE_NAME.
* error.c (dump_decl): For Objective-C++, call
objc_maybe_printable_name here ...
* tree.c (cxx_printable_name_internal): ... instead of here.
In gcc/objcp/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objcp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Do not define.
In gcc/objc/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_keyword_decl): Updated comments. Do not
emit a warning that method parameter attributes are unimplemented.
Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
(start_method_def): Copy attributes from each KEYWORD_DECL into
the corresponding PARM_DECL.
(objc_warn_deprecated_use): Removed.
(build_objc_method_call): Call warn_deprecated_use, not
objc_warn_deprecated_use.
(objc_maybe_printable_name): Do not try to get the identifier name
of DECLs that we don't recognize. Immediately return NULL for them.
(objc_printable_name): Removed C++-specific case, which is no
longer used. Updated comments.
In gcc/testsuite/:
2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/attributes/method-attribute-2.m: Updated test. Method
parameter attributes are now supported.
* obj-c++.dg/attributes/method-attribute-2.m: Same change.
* objc.dg/attributes/parameter-attribute-1.m: New test.
* objc.dg/attributes/parameter-attribute-2.m: New test.
* obj-c++.dg/attributes/parameter-attribute-1.m: New test.
* obj-c++.dg/attributes/parameter-attribute-2.m: New test.
Joseph Myers [Sat, 23 Oct 2010 22:26:08 +0000 (23:26 +0100)]
gcc.c (n_switches_alloc_debug_check): New.
* gcc.c (n_switches_alloc_debug_check): New.
(set_option_handlers): New.
(process_command): Use set_option_handlers.
(do_self_spec): Pass spec-generated options through option
handlers.
(main): Also save and restore n_switches_alloc when swapping
switch arrays.
Nicola Pero [Sat, 23 Oct 2010 18:40:39 +0000 (18:40 +0000)]
In gcc/cp/: 2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/cp/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
* tree.c (cxx_printable_name_internal): In Objective-C++, call
objc_maybe_printable_name.
In gcc/objc/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
(objc_demangle): Return NULL if demangling can not be done because
the string to demangle is not an Objective-C mangled method name.
Be smarter in demangling method names so that at least for methods
with no arguments we are able to almost always demangle '_' correctly.
Updated comments.
(objc_maybe_printable_name): New.
(objc_printable_name): Call objc_maybe_printable_name. If it
returns NULL, call cxx_printable_name in Objective-C++.
In gcc/testsuite/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/demangle-1.m: New test.
* obj-c++.dg/demangle-1.mm: New test.
* obj-c++.dg/demangle-2.mm: New test.
* obj-c++.dg/demangle-3.mm: New test.
In gcc/c-family/:
2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
Ian Lance Taylor [Sat, 23 Oct 2010 16:18:32 +0000 (16:18 +0000)]
tree-vrp.c (extract_range_from_binary_expr): If flag_non_call_exceptions don't eliminate division by zero.
gcc/:
* tree-vrp.c (extract_range_from_binary_expr): If
flag_non_call_exceptions don't eliminate division by zero.
* simplify-rtx.c (simplify_binary_operation_1): Likewise.
gcc/testsuite/:
* gcc.c-torture/execute/20101011-1.c: New test.
* gcc.c-torture/execute/20101011-1.x: New test driver.
Joseph Myers [Sat, 23 Oct 2010 11:07:09 +0000 (12:07 +0100)]
march-generic.c: Skip for -march in multilib options.
* gcc.dg/march-generic.c: Skip for -march in multilib options.
* gcc.target/i386/isa-9.c: Skip for -march other than
-march=amdfam10 in multilib options.
* gcc.target/i386/pr42589.c: Skip for -march other than
-march=i486 in multilib options.
* gcc.target/i386/sse-19.c: Add -march=x86-64 option and skip for
other -march in multilib options.
Jie Zhang [Sat, 23 Oct 2010 00:38:13 +0000 (00:38 +0000)]
re PR rtl-optimization/37360 (ICE in haifa-sched.c when compiling __popcountsi2 from libgcc)
PR rtl-optimization/37360
* config/mips/mips.c (cached_can_issue_more): New local variable.
(mips_sched_reorder_1): New.
(mips_sched_reorder): Use mips_sched_reorder_1.
(mips_sched_reorder2): New.
(mips_variable_issue): Set cached_can_issue_more.
(TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
instead of mips_sched_reorder.
Revert
2008-09-09 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/37360
* haifa-sched.c (max_issue): Do not assert that we never issue more
insns than issue_rate. Add comment.
testsuite/
PR rtl-optimization/37360
* gcc.dg/pr37360.c: New test.
* gimple.h (gimple_register_canonical_type): Declare.
* gimple.c (gimple_canonical_types): New global hashtable.
(struct gimple_type_leader_entry_s): New type.
(gimple_type_leader): New global cache.
(gimple_lookup_type_leader): New function.
(gtc_visit): Query the proper cache.
(gimple_types_compatible_p): Likewise.
(gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
(gimple_canonical_type_eq): New function.
(gimple_register_canonical_type): Likewise.
(print_gimple_types_stats): Adjust for gimple_canonical_types.
(free_gimple_type_tables): Likewise. Free gimple_type_leader.
* tree-ssa.c (useless_type_conversion_p): Do not dispatch to
gimple_types_compatible_p for LTO.
lto/
* lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
the new gimple_register_canonical_type.