Jakub Jelinek [Mon, 21 Jun 2010 16:33:49 +0000 (18:33 +0200)]
re PR target/44575 (__builtin_va_arg overwrites into adjacent stack location)
PR target/44575
* config/i386/i386.c (ix86_gimplify_va_arg): When copying
va_arg from a set of register save slots into a temporary,
if the container is bigger than type size, do the copying
using smaller mode or using memcpy.
Jakub Jelinek [Mon, 21 Jun 2010 16:30:43 +0000 (18:30 +0200)]
dwarf2out.c (add_linkage_name): New function.
* dwarf2out.c (add_linkage_name): New function. Don't add
anything to DW_TAG_member DIEs.
(add_name_and_src_coords_attributes): Use it.
(gen_variable_die): Call it for C++ static data members if
specification is DW_TAG_member.
Jakub Jelinek [Mon, 21 Jun 2010 16:28:32 +0000 (18:28 +0200)]
Makefile.in (build/genattrtab.o): Depend on vecprim.h.
* Makefile.in (build/genattrtab.o): Depend on vecprim.h.
* genattrtab.c: Include vecprim.h.
(cached_attrs, cached_attr_count, attrs_seen_once,
attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
attrs_cached_after): New variables.
(find_attrs_to_cache): New function.
(FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
(write_test_expr): Add attrs_cached argument, return it too,
attempt to cache non-const attributes used more than once in
a single case handling.
(write_attr_get): Use find_attrs_to_cache, for caching candidates
emit cached_* variables. Adjust write_attr_set callers.
(write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
to find attributes that should be cached in this block. Adjust
write_test_expr callers.
(write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
callers.
(make_automaton_attrs): Adjust write_test_expr caller.
Jakub Jelinek [Mon, 21 Jun 2010 16:27:25 +0000 (18:27 +0200)]
Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
* Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
* genattrtab.c (check_tune_attr, find_tune_attr): New functions.
(make_automaton_attrs): If find_tune_attr returns non-NULL,
write separate internal_dfa_insn_code_* and insn_default_latency_*
functions for each attribute's value and emit init_sched_attrs
function and function pointers.
* genattr.c (const_attrs, reservations): New variables.
(gen_attr): Add const attributes to const_attrs vector.
(check_tune_attr, find_tune_attr): New functions.
(main): Add reservations to reservations vector. If find_tune_attr
returns true, add prototype for init_sched_attrs and make
internal_dfa_insn_code and insn_default_latency function pointers,
otherwise define init_sched_attrs as dummy macro.
* cfgexpand.c: Include insn-attr.h.
(gimple_expand_cfg): Call init_sched_attrs.
Arnaud Charlet [Mon, 21 Jun 2010 15:24:03 +0000 (17:24 +0200)]
[multiple changes]
2010-06-21 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Conditional_Expression): Fold if condition
known at compile time.
2010-06-21 Gary Dismukes <dismukes@adacore.com>
* atree.adb: Fix comment typo.
2010-06-21 Ed Schonberg <schonberg@adacore.com>
* sem_eval.adb (Test_Ambiguous_Operator): New procedure to check
whether a universal arithmetic expression in a conversion, which is
rewritten from a function call with an expanded name, is ambiguous.
2010-06-21 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Name_Location): New Boolean component Listed, to record
source files in specified list of sources.
(Check_Package_Naming): Remove out parameters Bodies and Specs, as they
are never used.
(Add_Source): Set the Location of the new source
(Process_Exceptions_File_Based): Call Add_Source with the Location
(Get_Sources_From_File): If an exception is found, set its Listed to
True
(Find_Sources): When Source_Files is specified, if an exception is
found, set its Listed to True. Remove any exception that is not in a
specified list of sources.
* prj.ads (Source_Data): New component Location
2010-06-21 Vincent Celier <celier@adacore.com>
* gnatbind.adb (Closure_Sources): Global table, moved from block.
Arnaud Charlet [Mon, 21 Jun 2010 14:17:34 +0000 (16:17 +0200)]
[multiple changes]
2010-06-21 Thomas Quinot <quinot@adacore.com>
* bindgen.ads: Update comments.
2010-06-21 Vincent Celier <celier@adacore.com>
* gnatbind.adb: Suppress dupicates when listing the sources in the
closure (switch -R).
2010-06-21 Emmanuel Briot <briot@adacore.com>
* s-regpat.adb (Link_Tail): Fix error when size of the pattern matcher
is too small.
2010-06-21 Emmanuel Briot <briot@adacore.com>
* g-expect.adb, g-expect.ads (First_Dead_Process, Free, Has_Process):
New subprograms.
(Expect_Internal): No longer raises an exception, so that it can set
out parameters as well. When a process has died, reset its Input_Fd
to Invalid_Fd, so that when using multiple processes we can find out
which process has died.
* sem_ch6.adb (New_Overloaded_Entity): If the new entity is a
rederivation associated with a full declaration in a private part, and
there is a partial view that derives the same parent subprogram, the
new entity does not become visible. This check must be applied to
interface operations as well.
Arnaud Charlet [Mon, 21 Jun 2010 13:35:58 +0000 (15:35 +0200)]
[multiple changes]
2010-06-21 Thomas Quinot <quinot@adacore.com>
* sem_ch9.adb, checks.adb, sem_util.adb, sem_util.ads, sem_res.adb,
sem_attr.adb (Get_E_First_Or_Last): Use attribute references on E to
extract bounds, to ensure that we get the proper captured values,
rather than an expression that may have changed value since the point
where the subtype was elaborated.
(Find_Body_Discriminal): New utility subprogram to share code between...
(Eval_Attribute): For the case of a subtype bound that references a
discriminant of the current concurrent type, insert appropriate
discriminal reference.
(Resolve_Entry.Actual_Index_Type.Actual_Discriminant_Ref): For a
requeue to an entry in a family in the current task, use corresponding
body discriminal.
(Analyze_Accept_Statement): Rely on expansion of attribute references
to insert proper discriminal references in range check for entry in
family.
2010-06-21 Emmanuel Briot <briot@adacore.com>
* s-regpat.adb (Compile): Fix handling of big patterns.
Arnaud Charlet [Mon, 21 Jun 2010 13:26:24 +0000 (15:26 +0200)]
[multiple changes]
2010-06-21 Pascal Obry <obry@adacore.com>
* prj-nmsc.adb (Search_Directories): Use the non-translated directory
path to open it.
2010-06-21 Javier Miranda <miranda@adacore.com>
* exp_cg.adb (Write_Call_Info): Fill the component sourcename using the
external name.
2010-06-21 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_Concatenate): If an object declaration is created
to hold the result, indicate that the target of the declaration does
not need an initialization, to prevent spurious errors when
Initialize_Scalars is enabled.
2010-06-21 Ed Schonberg <schonberg@adacore.com>
* a-tifiio.adb (Put): In the procedure that performs I/O on a String,
Fore is not bound by line length. The Fore parameter of the internal
procedure that performs the operation is an integer.
2010-06-21 Thomas Quinot <quinot@adacore.com>
* sem_res.adb, checks.adb: Minor reformatting.
2010-06-21 Emmanuel Briot <briot@adacore.com>
* s-regpat.adb (Next_Instruction, Get_Next_Offset): Removed, merged
into Get_Next.
(Insert_Operator_Before): New subprogram, avoids duplicated code
(Compile): Avoid doing two compilations when the pattern matcher ends
up being small.
Uros Bizjak [Sun, 20 Jun 2010 21:42:10 +0000 (23:42 +0200)]
re PR target/44546 (ICE in extract_insn, at recog.c:2103 with -ffast-math -Os (compiling graphviz))
PR target/44546
* config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
New predicate.
* config/i386/i386.md (*fp_jcc_8<mode>_387): Use
ix86_swapped_fp_comparsion_operator instead of
ix86_fp_comparison_operator.
(*fp_jcc_1_387): Rename from *fp_jcc_3_387.
(*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
(*fp_jcc_2_387): Rename from *fp_jcc_5_387.
(*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
(*fp_jcc_3_387): Rename from *fp_jcc_7_387.
(*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
testsuite/ChangeLog:
PR target/44546
* gcc.target/i386/pr44546.c: New test.
Jerry DeLisle [Sat, 19 Jun 2010 00:58:28 +0000 (00:58 +0000)]
re PR fortran/44477 (Sequential I/O with END FILE: File position should be at EoF)
2010-06-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/44477
* io/file_pos.c (st_endfile): Add check for ENDFILE when file is
already positioned after the EOF marker. Use find_or_create_unit
instead of find_unit. If unit is not connected, connect it and create
the file with default settings.
* io/transfer.c (data_transfer_init): Add check for attempted READ or
WRITE when file is already positioned after the EOF marker.
Arnaud Charlet [Fri, 18 Jun 2010 19:48:43 +0000 (21:48 +0200)]
[multiple changes]
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Build_And_Analyze_Renamed_Body): If the renaming
declaration appears in the same unit and ealier than the renamed
entity, retain generated body to prevent order-of-elaboration issues in
gigi.
Eric Botcazou [Fri, 18 Jun 2010 16:38:29 +0000 (16:38 +0000)]
re PR rtl-optimization/40900 (redundant sign extend of short function returned value)
PR rtl-optimization/40900
* expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
original expression for later reuse.
<expand_decl_rtl>: Use promote_function_mode to compute the signedness
of the promoted RTL for a SSA_NAME on the LHS of a call statement.
Javier Miranda [Fri, 18 Jun 2010 15:59:27 +0000 (15:59 +0000)]
[multiple changes]
2010-06-18 Javier Miranda <miranda@adacore.com>
* exp_cg.adb (Homonym_Suffix_Length): Minor code reorganization.
2010-06-18 Thomas Quinot <quinot@adacore.com>
* sprint.ads: Minor reformatting.
* output.ads: Update obsolete comment.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Build_And_Analyze_Renamed_Body): if the renamed entity is
an external intrinsic operation (e.g. a GCC numeric function) indicate
that the renaming entity has the same characteristics, so a call to it
is properly expanded.
Nathan Froyd [Fri, 18 Jun 2010 15:51:37 +0000 (15:51 +0000)]
function.h (types_used_by_cur_var_decl): Change type to a VEC.
gcc/
* function.h (types_used_by_cur_var_decl): Change type to a VEC.
* function.c (types_used_by_cur_var_decl): Likewise.
(used_types_insert): Adjust for new type of
types_used_by_cur_var_decl.
gcc/c-family/
* c-common.c (record_types_used_by_current_var_decl): Adjust for
new type of types_used_by_cur_var_decl.
Nathan Froyd [Fri, 18 Jun 2010 15:49:55 +0000 (15:49 +0000)]
tree.h (record_layout_info): Change type of pending_statics field to a VEC.
* tree.h (record_layout_info): Change type of pending_statics field
to a VEC.
* stor-layout.c (start_record_layout): Store NULL into
pending_statics.
(debug_rli): Call debug_vec_tree instead of debug_tree.
(place_field): Likewise.
(finish_record_layout): Likewise.
Arnaud Charlet [Fri, 18 Jun 2010 15:32:24 +0000 (17:32 +0200)]
[multiple changes]
2010-06-18 Javier Miranda <miranda@adacore.com>
* exp_cg.adb (Homonym_Suffix_Length): Minor code reorganization.
2010-06-18 Thomas Quinot <quinot@adacore.com>
* sprint.ads: Minor reformatting.
* output.ads: Update obsolete comment.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Build_And_Analyze_Renamed_Body): if the renamed entity is
an external intrinsic operation (e.g. a GCC numeric function) indicate
that the renaming entity has the same characteristics, so a call to it
is properly expanded.
Arnaud Charlet [Fri, 18 Jun 2010 14:19:10 +0000 (16:19 +0200)]
[multiple changes]
2010-06-18 Vincent Celier <celier@adacore.com>
* gnatname.adb (Scan_Args): When --and is used, make sure that the
dynamic tables in the newly allocated Argument_Data are properly
initialized.
2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
* gnat1drv.adb: Fix comment.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Inlined_Call): If the inlined subprogram is a
renaming, re-expand the call with the renamed subprogram if that one
is marked inlined as well.
Arnaud Charlet [Fri, 18 Jun 2010 13:01:07 +0000 (15:01 +0200)]
[multiple changes]
2010-06-18 Pascal Obry <obry@adacore.com>
* make.adb, prj-nmsc.adb: Fix source filenames casing in debug output.
2010-06-18 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: For gnatcheck, add -gnatec= switch for a global
configuration pragmas file and, if -U is not used, for a local one.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* sem_elim.adb (Check_Eliminated): Use full information on entity name
when it is given in the pragma by a selected component.
(Check_For_Eliminated_Subprogram): Do no emit error if within a
instance body that is itself within a generic unit.
* sem_ch12.adb (Analyze_Subprogram_Instance): If the subprogram is
eliminated, mark as well the anonymous subprogram that is its alias
and appears within the wrapper package.
Thomas Quinot [Fri, 18 Jun 2010 12:44:26 +0000 (14:44 +0200)]
sem_cat.adb (Validate_Object_Declaration): A variable declaration is not illegal per E.2.2(7) if...
2010-06-18 Thomas Quinot <quinot@adacore.com>
* sem_cat.adb (Validate_Object_Declaration): A variable declaration is
not illegal per E.2.2(7) if it occurs in the private part of a
Remote_Types unit.
Arnaud Charlet [Fri, 18 Jun 2010 10:19:44 +0000 (12:19 +0200)]
[multiple changes]
2010-06-18 Geert Bosch <bosch@adacore.com>
* i-forbla-darwin.adb: Include -lgnala and -lm in linker options for
Darwin.
2010-06-18 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Set Use_Expression_With_Actions
true for gcc.
2010-06-18 Robert Dewar <dewar@adacore.com>
* sprint.adb: Minor format change for N_Expression_With_Actions.
* repinfo.adb: Minor reformatting.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* sem_elim.adb (Check_Eliminated): If within a subunit, use
Defining_Entity to obtain the name of the entity in the proper body, to
properly handle both separate packages and subprograms.
2010-06-18 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb (Check_File): New parameter Display_Path.
Arnaud Charlet [Fri, 18 Jun 2010 10:07:36 +0000 (12:07 +0200)]
[multiple changes]
2010-06-18 Thomas Quinot <quinot@adacore.com>
* g-socket.adb, g-socket.ads (Null_Selector): New object.
2010-06-18 Pascal Obry <obry@adacore.com>
* gnat_ugn.texi: Minor clarification.
2010-06-18 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb (Find_Source_Dirs): Minor refactoring to avoid duplicate
code when using the project dir as the source dir.
(Search_Directories): use the normalized name for the source directory,
where symbolic names have potentially been resolved.
2010-06-18 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Conditional_Expression): Clear Actions field
when we create N_Expression_With_Actions node.
(Expand_Short_Circuit): Ditto.
Arnaud Charlet [Fri, 18 Jun 2010 09:53:00 +0000 (11:53 +0200)]
[multiple changes]
2010-06-18 Thomas Quinot <quinot@adacore.com>
* types.ads: Clean up obsolete comments
* tbuild.adb: Minor reformatting.
* exp_ch5.adb, sem_intr.adb, sem_ch10.adb, rtsfind.adb, s-shasto.adb,
exp_strm.adb, aa_drive.adb: Minor reformatting.
* sem_res.adb (Is_Predefined_Operator): An operator that is an imported
intrinsic with an Interface_Name denotes an imported back-end builtin,
and must be rewritten into a call, not left in the tree as an operator,
so return False in that case.
2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
* exp_util.adb (Remove_Side_Effects): Make a copy for an allocator.
2010-06-18 Robert Dewar <dewar@adacore.com>
* scos.ads: Add proposed output for case expression
2010-06-18 Jose Ruiz <ruiz@adacore.com>
* gnat_ugn.texi: Document that, when using the RTX compiler to generate
RTSS modules, we need to use the Microsoft linker.
Robert Dewar [Fri, 18 Jun 2010 09:41:49 +0000 (09:41 +0000)]
checks.adb (Safe_To_Capture_In_Parameter_Value): Deal with case expression (cannot count on a particular branch being executed).
2010-06-18 Robert Dewar <dewar@adacore.com>
* checks.adb (Safe_To_Capture_In_Parameter_Value): Deal with case
expression (cannot count on a particular branch being executed).
* exp_ch4.adb (Expand_N_Case_Expression): New procedure.
* exp_ch4.ads (Expand_N_Case_Expression): New procedure.
* exp_util.adb (Insert_Actions): Deal with proper insertion of actions
within case expression.
* expander.adb (Expand): Add call to Expand_N_Case_Expression
* par-ch4.adb Add calls to P_Case_Expression at appropriate points
(P_Case_Expression): New procedure
(P_Case_Expression_Alternative): New procedure
* par.adb (P_Case_Expression): New procedure
* par_sco.adb (Process_Decisions): Add dummy place holder entry for
N_Case_Expression.
* sem.adb (Analyze): Add call to Analyze_Case_Expression
* sem_case.ads (Analyze_Choices): Also used for case expressions now,
this is a documentation change only.
* sem_ch4.ads, sem_ch4.adb (Analyze_Case_Expression): New procedure.
* sem_ch6.adb (Fully_Conformant_Expressions): Add handling of case
expressions.
* sem_eval.ads, sem_eval.adb (Eval_Case_Expression): New procedure.
* sem_res.adb (Resolve_Case_Expression): New procedure.
* sem_scil.adb (Find_SCIL_Node): Add processing for
N_Case_Expression_Alternative.
* sinfo.ads, sinfo.adb (N_Case_Expression): New node.
(N_Case_Expression_Alternative): New node.
* sprint.adb (Sprint_Node_Actual): Add processing for new nodes
N_Case_Expression and N_Case_Expression_Alternative.
Arnaud Charlet [Fri, 18 Jun 2010 09:28:45 +0000 (11:28 +0200)]
[multiple changes]
2010-06-18 Thomas Quinot <quinot@adacore.com>
* sem_eval.adb (Test_In_Range): New subprogram, factoring duplicated
code between...
(Is_In_Range, Is_Out_Of_Range): Reimplement in terms of call to
Test_In_Range.
2010-06-18 Robert Dewar <dewar@adacore.com>
* sprint.adb: Minor change in output format for expression wi actions.
* par-ch3.adb: Minor code reorganization. Minor reformatting.
* sem_ch5.adb: Minor comment fix.
2010-06-18 Robert Dewar <dewar@adacore.com>
* debug.adb: New debug flag -gnatd.L to control
Back_End_Handles_Limited_Types.
* exp_ch4.adb (Expand_N_Conditional_Expression): Let back end handle
limited case if Back_End_Handles_Limited_Types is True.
(Expand_N_Conditional_Expression): Use N_Expression_With_Actions to
simplify expansion if Use_Expression_With_Actions is True.
* gnat1drv.adb (Adjust_Global_Switches): Set
Back_End_Handles_Limited_Types.
* opt.ads (Back_End_Handles_Limited_Types): New flag.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Rewrite_Operator_As_Call): Do not rewrite user-defined
intrinsic operator if expansion is not enabled, because in an
instantiation the original operator must be present to verify the
legality of the operation.
Arnaud Charlet [Fri, 18 Jun 2010 09:05:37 +0000 (11:05 +0200)]
[multiple changes]
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb (Make_Subtype_From_Expr): If the unconstrained type is
the class-wide type for a private extension, and the completion is a
subtype, set the type of the class-wide type to the base type of the
full view.
2010-06-18 Robert Dewar <dewar@adacore.com>
* g-socket.ads, sem_aggr.adb, einfo.ads, sem_elim.adb,
sem_intr.adb, sem_eval.adb: Minor reformatting
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* sem_type.adb (Is_Ancestor): If either type is private, examine full
view.
Arnaud Charlet [Fri, 18 Jun 2010 08:49:38 +0000 (10:49 +0200)]
[multiple changes]
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb: Add extra guard.
2010-06-18 Gary Dismukes <dismukes@adacore.com>
* sem_util.adb (Object_Access_Level): For Ada 2005, determine the
accessibility level of a function call from the level of the innermost
enclosing dynamic scope.
(Innermost_Master_Scope_Depth): New function to find the depth of the
nearest dynamic scope enclosing a node.
2010-06-18 Tristan Gingold <gingold@adacore.com>
* adaint.c: Make ATTR_UNSET static as it is not used outside this file.
Arnaud Charlet [Fri, 18 Jun 2010 08:25:27 +0000 (10:25 +0200)]
[multiple changes]
2010-06-18 Vincent Celier <celier@adacore.com>
* make.adb (Must_Compile): New Boolean global variable
(Main_On_Command_Line): New Boolean global variable
(Collect_Arguments_And_Compile): Do compile if Must_Compile is True,
even when the project is externally built.
(Start_Compile_If_Possible): Compile in -aL directories if
Check_Readonly_Files is True. Do compile if Must_Compile is True, even
when the project is externally built.
(Gnatmake): Set Must_Compile and Check_Readonly_Files to True when
invoked with -f -u and one or several mains on the command line.
(Scan_Make_Arg): Set Main_On_Command_Line to True when at least one main
is specified on the command line.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Build_Body_For_Inline): Handle extended_return_statements
* exp_ch6.adb (Expand_Inlined_Call): when possible, inline a body
containing extented_return statements.
* exp_util.adb (Make_CW_Equivalent_Type): If the root type is already
constrained, do not build subtype declaration.
Robert Dewar [Fri, 18 Jun 2010 08:17:48 +0000 (08:17 +0000)]
sem_res.adb (Analyze_Indexed_Component, [...]): Warn on assigning to packed atomic component.
2010-06-18 Robert Dewar <dewar@adacore.com>
* sem_res.adb (Analyze_Indexed_Component, Analyze_Selected_Component):
Warn on assigning to packed atomic component.
2010-06-18 Robert Dewar <dewar@adacore.com>
* sem_util.ads: Minor reformatting
* einfo.ads, einfo.adb: Minor doc clarification (scope of decls in
Expression_With_Actions).
* snames.ads-tmpl: Minor comment fix
2010-06-18 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Diagnose_Multiple_Pragmas): New procedure
(Set_Imported): Use Import_Interface_Present to control message output
* sinfo.ads, sinfo.adb (Import_Interface_Present): New flag
* gnat_rm.texi: Document that we can have pragma Import and pragma
Interface for the same subprogram.
2010-06-18 Robert Dewar <dewar@adacore.com>
* lib-xref.adb (Generate_Reference): Fix bad reference to
Has_Pragma_Unreferenced (clients should always use Has_Unreferenced).
Eric Botcazou [Thu, 17 Jun 2010 22:22:51 +0000 (22:22 +0000)]
trans.c (set_gnu_expr_location_from_node): New static function.
* gcc-interface/trans.c (set_gnu_expr_location_from_node): New static
function.
(gnat_to_gnu) <N_Expression_With_Actions>: New case.
Use set_gnu_expr_location_from_node to set location information on the
result.
Bernd Schmidt [Thu, 17 Jun 2010 21:51:55 +0000 (21:51 +0000)]
re PR rtl-optimization/39871 (Code size increase on ARM due to poor register allocation)
PR rtl-optimization/39871
* reload1.c (init_eliminable_invariants): For flag_pic, disable
equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
(function_invariant_p): Rule out a plus of frame or arg pointer with
a SYMBOL_REF.
* ira.c (find_reg_equiv_invariant_const): Likewise.
gcc/cp/
* name-lookup.c (struct arg_lookup): Convert namespaces and
classes fields to VEC.
(arg_assoc_namespace): Adjust for new type of namespaces.
(arg_assoc_class): Adjust for new type of classes.
(lookup_arg_dependent): Use make_tree_vector and
release_tree_vector.
* typeck2.c (build_x_arrow): Use vec_member.