charlet [Mon, 20 Jan 2014 15:36:52 +0000 (15:36 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* exp_ch7.adb: Minor reformatting.
* opt.ads: Minor comment updates.
* sem.adb: Minor name change Is_Main_Unit =>
Is_Main_Unit_Or_Main_Unit_Spec.
* sem_ch6.adb: Minor reformatting and code reorganization.
2014-01-20 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Update gnatpp switches.
2014-01-20 Thomas Quinot <quinot@adacore.com>
* exp_ch9.adb: Minor comment edit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206827
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:35:11 +0000 (15:35 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document that Allow_Integer_Address is permitted
only if System.Address is a private type.
* opt.ads (Allow_Integer_Address): No longer set by -gnates.
* sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
Allowed only if type System.Address is private, since otherwise
it makes no sense.
* sem_res.adb: Fix failure to properly Analyze unchecked
conversions that were introduced by Allow_Integer_Address.
* switch-c.adb: Remove -gnates switch.
* usage.adb: Remove -gnates switch.
* gnat_ugn.texi: Remove documentation of -gnates flag.
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Expression_Function): Pre-analyze and
resolve expression to perform proper name capture.
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* sem.adb (Semantics): When saving/restoring configuration
switches, the spec of a pre- defined unit that is the main unit
must be treated as a predefined unit as well.
2014-01-20 Thomas Quinot <quinot@adacore.com>
* exp_ch7.adb (Wrap_Transient_Expression): For a Boolean
expression, insert an extra conditional expression when saving
the value of the expression, for the benefit of control flow
graph based coverage analysis.
* exp_ch3.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206826
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:31:59 +0000 (15:31 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb: Set Allow_Integer_Address in relaxed semantics mode.
* gnat_rm.texi: Document pragma Allow_Integer_Address.
* gnat_ugn.texi: Document pragma Allow_Integer_Address, -gnates.
* opt.ads: New flag Allow_Integer_Address.
* par-prag.adb: Dummy entry for pragma Allow_Integer_Address.
* sem_ch5.adb: Minor reformatting.
* sem_prag.adb: Implement pragma Allow_Integer_Address.
* sem_res.adb (Resolve): Allow integer address value if
switch set.
* sem_util.adb: Minor reformatting.
* snames.ads-tmpl: Add entry for pragma Allow_Integer_Address.
* switch-c.adb: Recognize flag -gnates.
* usage.adb: Document flag -gnates.
2014-01-20 Thomas Quinot <quinot@adacore.com>
* s-tadeca.adb: Fix minor typos in comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206825
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:29:06 +0000 (15:29 +0000)]
2014-01-20 Pascal Obry <obry@adacore.com>
* s-win32.ads (FreeLibrary): New import.
2014-01-20 Robert Dewar <dewar@adacore.com>
* sem_res.adb, sem_cat.adb: Minor reformatting.
* sem_ch11.adb (Analyze_Raise_Statement): Only give warning about
assigning to OUT parameters for the current subprogram scope.
* exp_ch4.adb: Minor reformatting.
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Process_Transient_Object,
Find_Enclosing_Contexts): If the top-level if-expression that
generated the transient object is an actual in a call, the proper
Hook_Context is a construct enclosing the call.
* einfo.ads: Indicate that Related_Expression is used to link a
loop variable to the container expression over which the loop
takes place.
(Analyze_Iterator_Specification): Set the Related_Expression of
the loop variable in a container element iterator.
(Note_Possible_Modification): If the variable is the loop
variable in a container element iterator, indicate that the
enclosing container is also modified.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb (Move_Or_Merge_Aspects): Reimplemented.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206824
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:25:44 +0000 (15:25 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads:
Minor reformatting and code clean up.
2014-01-20 Arnaud Charlet <charlet@adacore.com>
* sem_cat.adb (Validate_Object_Declaration): Relax semantics
of objects of private type if Relaxed_RM_Semantics.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206823
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:23:37 +0000 (15:23 +0000)]
2014-01-20 Claire Dross <dross@adacore.com>
* a-cofove.ads (Vector): Capacity discriminant
should be in range of the index.
2014-01-20 Thomas Quinot <quinot@adacore.com>
* a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue):
Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for
possible difference between epoch of Ada.Calendar clock and Ada
real-time/tasking clock.
* s-taprop-posix.adb: Minor comment fix.
2014-01-20 Doug Rupp <rupp@adacore.com>
* sysdep.c [vxworks]: Remove Vxworks version noise for RTP.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference): Generate validity
checks on the prefix of attribute 'Old.
* sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the
generation of validity checks on a range that belongs to the
iteration scheme of a quantified expression.
* sem_ch5.adb (One_Bound): Suppress the generation of validity
checks on a bound that belongs to the iteration scheme of a
quantified expression, generate the check in all other cases.
2014-01-20 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Enable --pp-new by default. Minor reorganization.
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve): When compiling a predefined unit, ignore
interpretations that do not come from other predefined units,
to prevent spurious ambiguities in the presence of user-defined
operators in the context of (an instance of) a predefined unit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206822
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:21:18 +0000 (15:21 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document that Loop_Variant is included in
Statement_Assertions.
* sem_prag.adb (Check_Kind): Add Loop_Variant to
Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant
to Statement_Assertions.
2014-01-20 Doug Rupp <rupp@adacore.com>
* sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case
for errno ENOENT from RTP on NFS mounted file system.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206821
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:19:15 +0000 (15:19 +0000)]
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Check_Function_Writable_Actuals): 1) Do not
examine code that does not come from source. The check does not
apply to code generated for constraint checks, and such code may
generate spurious error messages when compiled with expansion
disabled (as in a generic unit) because side effects may not
have been removed.
2) Make error messages more explicit: indicate the component
of the construct whose value is indeterminate because of a
call to a function with in-out parameter in another component,
when there is no mandated order of execution between the two
components (actuals, aggregate components, alternatives).
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Minor cleanup.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206820
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:17:29 +0000 (15:17 +0000)]
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result
can now apply to a refined postcondition.
* sem_ch6.adb (Analyze_Subprogram_Contract): Remove local
variable Result_Seen. Add variables Case_Prag, Post_Prag,
Seen_In_Case and Seen_In_Post. Update the mechanism that detects
whether postconditions and/or constract-cases mention attribute
'Result and introduce a post-state when applied to functions.
(Check_Result_And_Post_State): Removed.
* sem_prag.adb (Analyze_Pragma): Add local variable
Result_Seen. Verify that the expression of pragma Refined_Post
mentions attribute 'Result and introduces a post-state.
* sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Is_Subprogram_Call): New routine.
(Process_Transient_Objects): Make variable Must_Hook global with
respect to all locally declared subprograms. Search the context
for at least one subprogram call.
(Requires_Hooking): Removed.
2014-01-20 Claire Dross <dross@adacore.com>
* a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads
* a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove,
External_Axiomatization);
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206819
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:15:34 +0000 (15:15 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow
Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas.
* sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume):
Allow Loop_Entry to be used in these pragmas if they appear in
an appropriate context.
(Placement_Error): Specialize error
message for pragma Assert[_And_Cut] or pragma Assume containing
Loop_Entry attribute.
* a-exexpr-gcc.adb, sinput.adb: Minor reformatting.
* s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting
and code clean ups.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206818
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 15:13:01 +0000 (15:13 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb: Minor comment update.
2014-01-20 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused
variables, comment out unused code.
* a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads
* s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb
* s-excmac-arm.ads: New file.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_N_Slice): Remove constant D and variables
Drange and Index_Typ. Remove the circuitry which creates a
range check to compare the index type of the array against the
discrete_range.
* sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update
the circuitry which creates a range check to handle a
discrete_range denoted by a subtype indication.
2014-01-20 Pierre-Marie Derodat <derodat@adacore.com>
* sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original
nodes to get the original sloc range.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the
entity of a [library level] package.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206817
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 14:00:29 +0000 (14:00 +0000)]
2014-01-20 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (exception_class_eq): New function.
(is_handled_by): Use it to compare exception classes.
(PERSONALITY_STORAGE): Define. (continue_unwind): New function to
be called to return URC_CONTINUE_UNWIND.
(personality_body): New function, extracted from PERSONALITY_ROUTINE.
(PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder.
2014-01-20 Robert Dewar <dewar@adacore.com>
* opt.ads: Minor comment update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206815
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:59:08 +0000 (13:59 +0000)]
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_N_Slice): Relocate some variables and
constants to the "Local variables" area. Add new constant D. Add
new variables Drange and Index_Typ. Rename Pfx to Rep and Ptp
to Pref_Typ and update all occurrences. Add circuitry to extract
the discrete_range and the index type and build a range check.
2014-01-20 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Enable
Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics
is set.
2014-01-20 Thomas Quinot <quinot@adacore.com>
* sem_ch5.adb, sem_ch4.adb: Minor reformatting.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications):
When aspect SPARK_Mode appears on a package body, insert the
generated pragma at the top of the body declarations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206814
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:57:30 +0000 (13:57 +0000)]
2014-01-20 Robert Dewar <dewar@adacore.com>
* sem_aggr.adb, exp_prag.adb, sem_aux.adb, sinfo.ads, sem_ch10.adb,
checks.adb, sem_prag.adb, sem_ch12.adb, freeze.adb, g-arrspl.adb,
expander.adb, gnat1drv.adb, exp_ch4.adb, sem_ch6.adb,
sem_ch8.adb, exp_dist.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206813
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:54:43 +0000 (13:54 +0000)]
2014-01-20 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove
mode.
2014-01-20 Pascal Obry <obry@adacore.com>
* g-arrspl.ads (Slice_Set): New definition (will use a copy on
write scheme).
* g-arrspl.adb: Adapt all routine to this new implementation.
(Set): Copy the Slice_Set definition before reusing it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206812
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:53:22 +0000 (13:53 +0000)]
2014-01-20 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Process_Import_Or_Interface): In
Relaxed_RM_Semantics, support old Ada 83 style of pragma Import.
(Analyze_Pragma): Ditto for pragma Export.
* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma
Import style.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206810
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:52:19 +0000 (13:52 +0000)]
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.ads: E_Abstract_State is now part of the entities that
can be overloaded. Update type Overloadable_Kind to reflect the
inclusion of abstract states.
* sem_ch6.adb (New_Overloaded_Entity): A function can now
overload an abstract state.
* sem_prag.adb (Analyze_Constituent): Handle the overloading
of states by functions. Use Entity_Of to obtain the entity of
a constituent. (Analyze_Global_Item): Handle the overloading of
states by functions.
(Analyze_Initialization_Item): Handle the
overloading of states by functions. Use Entity_Of to obtain the
entity of an item.
(Analyze_Input_Item): Handle the overloading
of states by functions. Use Entity_Of to obtain the entity of an item.
(Analyze_Input_Output): Handle the overloading of states by functions.
(Analyze_Refinement_Clause): Handle the overloading
of states by functions. Use Entity_Of to obtain the entity of an item.
(Appears_In): Use Entity_Of to obtain the entity of an element.
(Check_Usage): Use Entity_Of to obtain the entity of
an item. Add a guard to prevent a crash due to a previous error.
(Resolve_State): New routine.
2014-01-20 Yannick Moy <moy@adacore.com>
* spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads,
opt.ads: Minor comments updates.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206809
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:50:15 +0000 (13:50 +0000)]
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb (Non_Limited_View): Applies to abstract states.
(Set_From_Limited_With): Applies to abstract states.
(Set_Non_Limited_View): Applies to abstract states.
(Write_Field17): Output the non-limited view of an abstract state.
* einfo.ads: Update the comment on usage and occurrences in
nodes for attributes From_Limited_With and Non_Limited_View.
* sem_aux.adb (Available_View): This routine can now handle
abstract states.
* sem_aux.ads (Available_View): This routine can now handle
abstract states. Update the comment on usage.
* sem_ch8.adb (Find_Expanded_Name): Handle abstract views
of states and variables.
(In_Pragmas_Depends_Or_Global): New routine.
* sem_ch10.adb (Build_Limited_Views): Implement
abstract (limited) views of variables and states.
(Build_Shadow_Entity): This routine is now a procedure. Add
formal parameter Shadow. Update the comment on usage. Add
context-specific decoration for states and variables.
(Decorate_State): New routine. (Decorate_Variable): New routine.
(Find_And_Process_States): New routine.
(Process_Declarations): Renamed to Process_Declarations_And_States.
(Process_Declarations_And_States): Add formal parameters
Pack and Create_Abstract_Views. Update the comment on usage.
(Process_States): New routine.
* sem_prag.adb (Check_Dependency_Clause): Handle abstract
views of states and variables. Match the abstract view of a state
against its corresponding non-abstract view.
(Is_Matching_Input):
Handle abstract views of states and variables. Match the abstract
view of a state against its corresponding non-abstract view.
(Process_Global_Item): Handle abstract views of states and
variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206808
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:48:45 +0000 (13:48 +0000)]
2014-01-20 Bob Duff <duff@adacore.com>
* sem_ch10.adb (Expand_With_Clause): Don't
recurse on the prefix if the current with-ed name refers to a
package that renames its own parent, eg "package P.Q renames P;".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206807
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:47:41 +0000 (13:47 +0000)]
2014-01-20 Yannick Moy <moy@adacore.com>
* exp_spark.adb (Expand_SPARK_Call): Remove procedure.
* opt.adb, opt.ads (Full_Expander_Active): Remove function.
* checks.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb, sem_aggr.adb,
* sem_ch10.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb,
* sem_disp.adb, sem_res.adb Replace Full_Expander_Active by
Expander_Active.
2014-01-20 Yannick Moy <moy@adacore.com>
* sinfo.ads Update documentation of GNATprove mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206806
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Mon, 20 Jan 2014 13:44:07 +0000 (13:44 +0000)]
2014-01-20 Yannick Moy <moy@adacore.com>
* adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb,
* exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb,
* sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb,
* sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into
GNATprove_Mode.
* sem_ch13.adb: Remove blank.
* exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace
subprograms by alias for renamings, not for inherited primitive
operations.
* exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion
in GNATprove mode.
(Remove_Side_Effects): Apply the removal in
GNATprove mode, for the full analysis of expressions.
* expander.adb (Expand): Call the light SPARK expansion in GNATprove
mode.
(Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore
save/restore actions for Expander_Active flag in GNATprove mode,
similar to what is done in ASIS mode.
* frontend.adb (Frontend): Generic bodies are instantiated in
GNATprove mode.
* gnat1drv.adb (Adjust_Global_Switches): Set operating
mode to Check_Semantics in GNATprove mode, although a light
expansion is still performed.
(Gnat1drv): Set Back_End_Mode to
Declarations_Only in GNATprove mode, and later on special case
the GNATprove mode to continue analysis anyway.
* lib-writ.adb (Write_ALI): Always generate ALI files in
GNATprove mode.
* opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to
Expander_Active.
(SPARK_Mode): Renamed as GNATprove_Mode.
* sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the
tree in GNATprove_Mode.
* sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate
body in GNATprove mode.
(Need_Subprogram_Instance_Body): Always instantiate body in GNATprove
mode.
* sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
Make sure side effects are removed in GNATprove mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206805
138bc75d-0d04-0410-961f-
82ee72b054a4
belagod [Mon, 20 Jan 2014 12:34:13 +0000 (12:34 +0000)]
[AArch64] Relax CANNOT_CHANGE_MODE_CLASS
gcc/
* config/aarch64/aarch64-protos.h
(aarch64_cannot_change_mode_class_ptr): Declare.
* config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
aarch64_cannot_change_mode_class_ptr): New.
* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
backend hook aarch64_cannot_change_mode_class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206804
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 20 Jan 2014 11:32:32 +0000 (11:32 +0000)]
[AArch64] Fix behaviour of -mcpu option to match ARM.
gcc/
* common/config/aarch64/aarch64-common.c
(aarch64_handle_option): Don't handle any option order logic here.
* config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
selected_cpu, warn on architecture version mismatch.
(aarch64_override_options): Fix parsing order for option strings.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206803
138bc75d-0d04-0410-961f-
82ee72b054a4
iains [Mon, 20 Jan 2014 11:20:24 +0000 (11:20 +0000)]
gcc:
PR bootstrap/59496
* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
warning. Amend comment to reflect current functionality.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206802
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 20 Jan 2014 11:01:53 +0000 (11:01 +0000)]
2014-01-20 Richard Biener <rguenther@suse.de>
PR middle-end/59860
* builtins.c (fold_builtin_strcat): Remove case better handled
by tree-ssa-strlen.c.
* gcc.dg/pr59860.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206799
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Mon, 20 Jan 2014 10:59:26 +0000 (10:59 +0000)]
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Robustify tests
for aliased objects with an unconstrained nominal subtype.
* gcc-interface/trans.c (Call_to_gnu): Likewise.
(gnat_to_gnu) <case N_Op_Not>: Robustify test for private type.
<case N_Op_Minus>: Remove useless code.
(Exception_Handler_to_gnu_zcx): Minor tweaks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206798
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 20 Jan 2014 10:57:46 +0000 (10:57 +0000)]
[AArch64] Make -mcpu, -march and -mtune case-insensitive.
gcc/
* config/aarch64/aarch64.opt
(mcpu, march, mtune): Make case-insensitive.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206797
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Mon, 20 Jan 2014 10:51:46 +0000 (10:51 +0000)]
* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Record_Subtype>:
Tidy up. For a subtype with discriminants and variant part, if a
variant is statically selected and the fields all have a constant
position, put them in order of increasing position. Likewise if
no variant part but representation clause is present.
* gcc-interface/utils.c (make_packable_type): Robustify.
(maybe_pad_type): Use local variable and tidy up condition. If no
alignment is specified, use the original one.
(create_type_stub_decl): Minor tweak.
(convert) <case VECTOR_CST>: Fix typo.
<case CONSTRUCTOR>: Deal with padding types around the same type.
Do not punt on missing fields.
(unchecked_convert): Call finish_record_type to lay out the special
record types made for conversions from/to problematic integer types.
Bump the alignment of CONSTRUCTORs before converting them to a more
aligned type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206796
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Mon, 20 Jan 2014 10:29:09 +0000 (10:29 +0000)]
* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Component>: Remove
obsolete code for type_annotate_only mode, simplify code and slightly
improve wording of comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206794
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Mon, 20 Jan 2014 10:18:49 +0000 (10:18 +0000)]
c-family/
* c-ada-spec.h (dump_ada_specs): Revert prototype change.
* c-ada-spec.c (dump_ads): Likewise.
(cpp_check): Likewise.
(dump_ada_specs): Likewise.
cp/
* decl2.c (cpp_check): Revert prototype change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206793
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Mon, 20 Jan 2014 09:52:21 +0000 (09:52 +0000)]
PR target/59880
* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
if operands[1] is a REG or ZERO_EXTEND of a REG.
* gcc.target/i386/pr59880.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206792
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Mon, 20 Jan 2014 09:11:16 +0000 (09:11 +0000)]
* gcc.dg/pr44194-1.c: Tweak regexp.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206791
138bc75d-0d04-0410-961f-
82ee72b054a4
gerald [Mon, 20 Jan 2014 03:15:26 +0000 (03:15 +0000)]
* MAINTAINERS: Convert to UTF-8.
Properly sort Xinliang David Li's entry.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206790
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 20 Jan 2014 00:17:00 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206789
138bc75d-0d04-0410-961f-
82ee72b054a4
jvdelisle [Sun, 19 Jan 2014 23:21:10 +0000 (23:21 +0000)]
2014-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR libfortran/59771
PR libfortran/59774
PR libfortran/59836
* gfortran.dg/round_3.f08: New cases added.
* gfortran.dg/fmt_g_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206786
138bc75d-0d04-0410-961f-
82ee72b054a4
jvdelisle [Sun, 19 Jan 2014 23:17:43 +0000 (23:17 +0000)]
2014-01-19 Jerry DeLisle <jvdelisle@gcc.gnu>
Dominique d'Humieres <dominiq@lps.ens.fr>
PR libfortran/59771
PR libfortran/59774
PR libfortran/59836
* io/write_float.def (output_float): Fix wrong handling of the
Fw.0 format.
(output_float_FMT_G_): Fixes rounding issues with -m32.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206785
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sun, 19 Jan 2014 23:12:24 +0000 (23:12 +0000)]
* varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206784
138bc75d-0d04-0410-961f-
82ee72b054a4
timshen [Sun, 19 Jan 2014 21:59:20 +0000 (21:59 +0000)]
2014-01-19 Tim Shen <timshen91@gmail.com>
* include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
Fix parse error of multiple consecutive quantifiers like "a**".
* include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
Likewise.
* testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206783
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sun, 19 Jan 2014 19:21:26 +0000 (19:21 +0000)]
* g++.dg/pr49718.C: Add "-mno-explicit-relocs" for alpha*-*-* targets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206782
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Sun, 19 Jan 2014 18:09:53 +0000 (18:09 +0000)]
* config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
long non-pic millicode calls.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206779
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Sun, 19 Jan 2014 17:36:00 +0000 (17:36 +0000)]
2014-01-19 Kito Cheng <kito@0xlab.org>
* gcc/builtins.c (expand_movstr): Check movstr expand done or fail.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206777
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Sun, 19 Jan 2014 17:07:11 +0000 (17:07 +0000)]
gcc/testsuite/
* gcc.target/mips/pr54240.c: Add -ffat-lto-objects.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206776
138bc75d-0d04-0410-961f-
82ee72b054a4
jbglaw [Sun, 19 Jan 2014 15:52:20 +0000 (15:52 +0000)]
Since started, the VAX backend doesn't compile with config-list.mk
because one of VAX's macros doesn't use its argument:
g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common -DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -I../../../gcc/gcc/. -I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include -I/opt/cfarm/mpc/include -I../../../gcc/gcc/../libdecnumber -I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../../gcc/gcc/../libbacktrace -o loop-invariant.o -MT loop-invariant.o -MMD -MP -MF ./.deps/loop-invariant.TPo ../../../gcc/gcc/loop-invariant.c
../../../gcc/gcc/loop-invariant.c: In function ‘bool check_dependency(basic_block, df_ref, bitmap)’:
../../../gcc/gcc/loop-invariant.c:789:20: error: unused variable ‘regno’ [-Werror=unused-variable]
unsigned int regno = DF_REF_REGNO (use);
^
cc1plus: all warnings being treated as errors
make[2]: *** [loop-invariant.o] Error 1
This should fix it:
2014-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
[BR]: http://gcc.gnu.org/ml/gcc-patches/2014-01/msg00882.html
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206775
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sun, 19 Jan 2014 15:48:14 +0000 (15:48 +0000)]
PR target/59379
* config/i386/i386.md (*lea<mode>): Zero-extend return register
to DImode for zero-extended addresses.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206774
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Sun, 19 Jan 2014 15:30:22 +0000 (15:30 +0000)]
PR rtl-optimization/57763
* bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
on the new indirect jump_insn and increment LABEL_NUSES (label).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206773
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Sun, 19 Jan 2014 09:57:24 +0000 (09:57 +0000)]
gcc/testsuite/
* gcc.dg/vect/pr57705.c: Require vect_int.
* gcc.dg/vect/pr58508.c: Fix order of dg-require-effective-target line.
* gcc.dg/vect/vect-alias-check.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206771
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 19 Jan 2014 00:16:30 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206770
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Sat, 18 Jan 2014 20:05:25 +0000 (20:05 +0000)]
fortran/
PR fortran/58007
* module.c (MOD_VERSION): Bump.
(fp2, find_pointer2): Remove.
(mio_component_ref): Don't forcedfully set the containing derived type
symbol for loading. Remove unused argument.
(mio_ref): Update caller
(mio_symbol): Dump component list earlier.
(skip_list): New argument nest_level. Initialize level with the new
argument.
(read_module): Add forced pointer components association for derived
type symbols.
testsuite/
PR fortran/58007
* gfortran.dg/unresolved_fixup_1.f90: New test.
* gfortran.dg/unresolved_fixup_2.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206759
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Sat, 18 Jan 2014 13:25:40 +0000 (13:25 +0000)]
Update x86 --with-arch/--with-cpu= configure handling
PR bootstrap/59580
PR bootstrap/59583
* config.gcc (x86_archs): New variable.
(x86_64_archs): Likewise.
(x86_cpus): Likewise.
Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
--with-arch/--with-cpu= options.
Support --with-arch=/--with-cpu={nehalem,westmere,
sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206756
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sat, 18 Jan 2014 12:42:10 +0000 (12:42 +0000)]
* config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
* config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206753
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Sat, 18 Jan 2014 10:18:33 +0000 (10:18 +0000)]
PR target/58944
* config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
clear cpp_get_options (parse_in)->warn_unused_macros for
ix86_target_macros_internal with cpp_define.
* gcc.target/i386/pr58944.c: Drop -march=native from dg-options.
Remove dg-prune-output lines.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206750
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Sat, 18 Jan 2014 10:12:22 +0000 (10:12 +0000)]
gcc/
* jump.c (delete_related_insns): Keep (use (insn))s.
* reorg.c (redundant_insn): Check for barriers too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206749
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Sat, 18 Jan 2014 02:49:56 +0000 (02:49 +0000)]
Fix a comment typo in ix86_split_lea_for_addr
* config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment
typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206745
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Sat, 18 Jan 2014 00:35:08 +0000 (00:35 +0000)]
* config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
call to $$dyncall when TARGET_LONG_CALLS is true.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206742
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 18 Jan 2014 00:17:14 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206741
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 17 Jan 2014 22:43:03 +0000 (22:43 +0000)]
PR go/59866
runtime: Force work variable in mgc0 to be aligned on 8-byte boundary.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206738
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Fri, 17 Jan 2014 22:20:24 +0000 (22:20 +0000)]
* ree.c (combine_set_extension): Temporarily disable test for
changing number of hard registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206735
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 17 Jan 2014 21:10:42 +0000 (21:10 +0000)]
PR middle-end/58125
* ipa-inline-analysis.c (inline_free_summary):
Do not free summary of aliases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206734
138bc75d-0d04-0410-961f-
82ee72b054a4
fdumont [Fri, 17 Jan 2014 21:10:15 +0000 (21:10 +0000)]
2014-01-17 François Dumont <fdumont@gcc.gnu.org>
* include/profile/set.h (set): Implement C++11 allocator-aware
container requirements.
* include/profile/map.h (map): Likewise.
* include/profile/multiset.h (multiset): Likewise.
* include/profile/multimap.h (multimap): Likewise.
* include/profile/set.h
(set::operator=(const set&)): Define as default in C++11 mode.
(set::operator=(set&&)): Likewise.
* include/profile/map.h
(map::operator=(const map&)): Likewise.
(map::operator=(map&&)): Likewise.
* include/profile/multiset.h
(multiset::operator=(const multiset&)): Likewise.
(multiset::operator=(multiset&&)): Likewise.
* include/profile/multimap.h
(multimap::operator=(const multimap&)): Likewise.
(multimap::operator=(multimap&&)): Likewise.
* include/profile/set.h (set::operator=(std::initializer_list<>)):
Rely on the same operator from normal mode.
* include/profile/map.h (map::operator=(std::initializer_list<>)):
Likewise.
* include/profile/multiset.h
(multiset::operator=(std::initializer_list<>)): Likewise.
* include/profile/multimap.h
(multimap::operator=(std::initializer_list<>)): Likewise.
* include/profile/set.h (set::swap(set&)): Add noexcept
specification.
* include/profile/map.h (map::swap(map&)): Likewise.
* include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
* include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206733
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 17 Jan 2014 20:55:42 +0000 (20:55 +0000)]
PR middle-end/59706
* gimplify.c (gimplify_expr): Use create_tmp_var
instead of create_tmp_var_raw. If cond doesn't have
integral type, don't add the IFN_ANNOTATE builtin at all.
* gfortran.dg/pr59706.f90: New test.
* g++.dg/ext/pr59706.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206732
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Fri, 17 Jan 2014 20:25:01 +0000 (20:25 +0000)]
/cp
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59270
PR c++/58811
* init.c (build_value_init_noctor): Don't pass error_mark_node to
build_value_init.
/testsuite
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59270
PR c++/58811
* g++.dg/cpp0x/decltype-incomplete1.C: New.
* g++.dg/init/pr58811.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206731
138bc75d-0d04-0410-961f-
82ee72b054a4
jamborm [Fri, 17 Jan 2014 19:05:52 +0000 (19:05 +0000)]
2014-01-17 Martin Jambor <mjambor@suse.cz>
PR ipa/59736
* ipa-cp.c (prev_edge_clone): New variable.
(grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
Also resize prev_edge_clone vector.
(ipcp_edge_duplication_hook): Also update prev_edge_clone.
(ipcp_edge_removal_hook): New function.
(ipcp_driver): Register ipcp_edge_removal_hook.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206729
138bc75d-0d04-0410-961f-
82ee72b054a4
sje [Fri, 17 Jan 2014 18:07:18 +0000 (18:07 +0000)]
2014-01-17 Andrew Pinski <apinski@cavium.com>
Steve Ellcey <sellcey@mips.com>
PR target/59462
* config/mips/mips.c (mips_print_operand): Check operand mode instead
of operator mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206724
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Fri, 17 Jan 2014 17:50:10 +0000 (17:50 +0000)]
PR middle-end/57904
* passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
so that pass_ccp runs first.
PR middle-end/57904
* gfortran.dg/pr57904.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206723
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Fri, 17 Jan 2014 17:16:25 +0000 (17:16 +0000)]
Use TARGET_XXX and !TARGET_XXX in i386.c
* config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
(ix86_adjust_cost): Use !TARGET_XXX.
(do_reorder_for_imul): Likewise.
(swap_top_of_ready_list): Likewise.
(ix86_sched_reorder): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206720
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Fri, 17 Jan 2014 17:13:40 +0000 (17:13 +0000)]
Reorder the last ChangeLog entry
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206719
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Fri, 17 Jan 2014 15:40:13 +0000 (15:40 +0000)]
/cp
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59269
* init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
only when errorcount == 0.
/testsuite
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59269
* g++.dg/cpp0x/nsdmi-union4.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206718
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Fri, 17 Jan 2014 15:23:58 +0000 (15:23 +0000)]
Add X86_TUNE_AVOID_LEA_FOR_ADDR
ix86_split_lea_for_addr transforms a single LEA instruction into a
series of MOV and ADD instructions. For
lea 0x400(%edx, %ecx, 8), %edx
we get
mov %ecx, %edx
add %ecx, %edx
add %ecx, %edx
add %ecx, %edx
add %ecx, %edx
add %ecx, %edx
add %ecx, %edx
add %ecx, %edx
add $0x400, %edx
For -mtune=intel, we want to turn on X86_TUNE_OPT_AGU, but avoid
ix86_split_lea_for_addr to optimize for both Haswell and Silvermont.
This patch adds X86_TUNE_AVOID_LEA_FOR_ADDR and PROCESSOR_INTEL.
We keep PROCESSOR_INTEL the same as PROCESSOR_SILVERMONT, except that
X86_TUNE_AVOID_LEA_FOR_ADDR isn't turned on for PROCESSOR_INTEL.
* config/i386/i386-c.c (ix86_target_macros_internal): Handle
PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
* config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
(intel_memset): New. Duplicate slm_memset.
(intel_cost): New. Duplicate slm_cost.
(m_INTEL): New macro.
(processor_target_table): Add "intel".
(ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
with PROCESSOR_INTEL for "intel".
(ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
PROCESSOR_SILVERMONT.
(ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
instead of TARGET_OPT_AGU.
(ix86_issue_rate): Likewise.
(ix86_adjust_cost): Likewise.
(ia32_multipass_dfa_lookahead): Likewise.
(swap_top_of_ready_list): Likewise.
(ix86_sched_reorder): Likewise.
* config/i386/i386.h (TARGET_INTEL): New.
(TARGET_AVOID_LEA_FOR_ADDR): Likewise.
(processor_type): Add PROCESSOR_INTEL.
* config/i386/x86-tune.def: Support m_INTEL. Duplicate
m_SILVERMONT. Add X86_TUNE_AVOID_LEA_FOR_ADDR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206717
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Fri, 17 Jan 2014 15:23:17 +0000 (15:23 +0000)]
PR c++/59838
cp/
* cvt.c (ocp_convert): Don't segfault on non-existing
ENUM_UNDERLYING_TYPE.
testsuite/
* g++.dg/diagnostic/pr59838.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206716
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Fri, 17 Jan 2014 14:51:56 +0000 (14:51 +0000)]
PR c/58346
* gimple-fold.c (fold_array_ctor_reference): Don't fold if element
size is zero.
testsuite/
* gcc.dg/pr58346.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206715
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 17 Jan 2014 14:49:18 +0000 (14:49 +0000)]
2014-01-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/46590
* opts.c (default_options_table): Add entries for
OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
all enabled at -O1 but not for -Og.
* common.opt (fbranch-count-reg): Remove Init(1).
(fmove-loop-invariants): Likewise.
(ftree-pta): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206714
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 17 Jan 2014 14:45:34 +0000 (14:45 +0000)]
* config/i386/i386.c (ix86_data_alignment): For compatibility with
(incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
decls to at least the GCC 4.8 used alignments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206713
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 17 Jan 2014 14:43:37 +0000 (14:43 +0000)]
PR testsuite/58776
* gcc.dg/tree-ssa-gen-vect-32.c: Add -fno-vect-cost-model to
dg-options, use dg-additional-options for i?86/x86_64 to avoid
option duplication.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206712
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 17 Jan 2014 14:42:58 +0000 (14:42 +0000)]
PR fortran/59440
* tree-nested.c (convert_nonlocal_reference_stmt,
convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
of GIMPLE_BIND stmts, adjust associated decls.
* gfortran.dg/pr59440-1.f90: New test.
* gfortran.dg/pr59440-2.f90: New test.
* gfortran.dg/pr59440-3.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206711
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 17 Jan 2014 14:41:58 +0000 (14:41 +0000)]
PR testsuite/59064
* gcc.dg/vect/vect-ivdep-1.c: Replace two dg-bogus lines separately
testing for " version" and " alias" with one testing for
" version\[^\n\r]* alias".
* gcc.dg/vect/vect-ivdep-2.c: Likewise.
* gfortran.dg/vect/vect-do-concurrent-1.f90: Likewise.
* g++.dg/vect/pr33426-ivdep.cc: Likewise.
* g++.dg/vect/pr33426-ivdep-2.cc: Likewise.
* g++.dg/vect/pr33426-ivdep-3.cc: Likewise.
* g++.dg/vect/pr33426-ivdep-4.cc: Adjust comments similarly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206710
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 17 Jan 2014 14:40:11 +0000 (14:40 +0000)]
2014-01-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/46590
* vec.h (vec<>::bseach): New member function implementing
binary search according to C89 bsearch.
(vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
* tree-ssa-loop-im.c (struct mem_ref): Make stored member a
bitmap pointer again. Make accesses_in_loop a flat array.
(mem_ref_obstack): New global.
(outermost_indep_loop): Adjust for mem_ref->stored changes.
(mark_ref_stored): Likewise.
(ref_indep_loop_p_2): Likewise.
(set_ref_stored_in_loop): New helper function.
(mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
(memref_free): Adjust.
(record_mem_ref_loc): Simplify.
(gather_mem_refs_stmt): Adjust.
(sort_locs_in_loop_postorder_cmp): New function.
(analyze_memory_references): Sort accesses_in_loop after
loop postorder number.
(find_ref_loc_in_loop_cmp): New function.
(for_all_locs_in_loop): Find relevant cluster of locs in
accesses_in_loop and iterate without recursion.
(execute_sm): Avoid uninit warning.
(struct ref_always_accessed): Simplify.
(ref_always_accessed::operator ()): Likewise.
(ref_always_accessed_p): Likewise.
(tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
loop postorder numbers here.
(tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
numbers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206709
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 17 Jan 2014 14:19:55 +0000 (14:19 +0000)]
PR c++/57945
* passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
on decls for which assemble_alias has been called.
* c-c++-common/torture/pr57945.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206708
138bc75d-0d04-0410-961f-
82ee72b054a4
nickc [Fri, 17 Jan 2014 11:35:46 +0000 (11:35 +0000)]
* config/msp430/msp430.opt: (mcpu): New option.
* config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
(msp430_option_override): Parse target_cpu. If the MCU name
matches a generic string, clear target_mcu.
(msp430_attr): Allow numeric interrupt values up to 63.
(msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
* config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
option.
* config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
Add mcpu matches.
* config/msp430/msp430.md (popm): Use %J rather than %I.
(addsi3): Use msp430_nonimmediate_operand for operand 2.
(addhi_cy_i): Use immediate_operand for operand 2.
* doc/invoke.texi: Document -mcpu option.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206705
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 17 Jan 2014 10:47:59 +0000 (10:47 +0000)]
2014-01-17 Richard Biener <rguenther@suse.de>
PR rtl-optimization/38518
* df.h (df_analyze_loop): Declare.
* df-core.c: Include cfgloop.h.
(df_analyze_1): Split out main part of df_analyze.
(df_analyze): Adjust.
(loop_inverted_post_order_compute): New function.
(loop_post_order_compute): Likewise.
(df_analyze_loop): New function avoiding whole-function
postorder computes.
* loop-invariant.c (find_defs): Use df_analyze_loop.
(find_invariants): Adjust.
* loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206702
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Fri, 17 Jan 2014 07:55:49 +0000 (07:55 +0000)]
Fix ChangeLog entry for revision 206673 as was requested in review comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206700
138bc75d-0d04-0410-961f-
82ee72b054a4
zqchen [Fri, 17 Jan 2014 05:43:45 +0000 (05:43 +0000)]
ChangeLog:
2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
* config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
(thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
testsuite/ChangeLog:
2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
* gcc.target/arm/its.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206698
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Fri, 17 Jan 2014 05:36:19 +0000 (05:36 +0000)]
* ipa-ref.c (ipa_remove_stmt_references): Fix references
traversal when removing references.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206697
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 17 Jan 2014 04:35:40 +0000 (04:35 +0000)]
compiler: Use backend interface for binary expressions.
* go-gcc.cc (Gcc_backend::conditional_expression): Add btype
parameter.
(operator_to_tree_code): New static function.
(Gcc_backend::binary_expression): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206696
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 17 Jan 2014 01:04:59 +0000 (01:04 +0000)]
PR ipa/59775
* tree.c (get_binfo_at_offset): Look harder for virtual bases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206694
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 17 Jan 2014 00:16:36 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206693
138bc75d-0d04-0410-961f-
82ee72b054a4
timshen [Thu, 16 Jan 2014 23:35:21 +0000 (23:35 +0000)]
2014-01-17 Tim Shen <timshen91@gmail.com>
* include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
use std::map.
* include/bits/regex_automaton.h: Do not use std::set.
* include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
_BracketMatcher<>::_M_add_collating_element(),
_BracketMatcher<>::_M_add_equivalence_class(),
_BracketMatcher<>::_M_make_range()): Likewise.
* include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
Likewise.
* include/bits/regex_executor.h: Do not use std::queue.
* include/bits/regex_executor.tcc (_Executor<>::_M_main(),
_Executor<>::_M_dfs()): Likewise.
* include/std/regex: Remove <map>, <set> and <queue>.
2014-01-17 Tim Shen <timshen91@gmail.com>
* include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
basic_regex<>::assign()): Change __compile_nfa to accept
const _CharT* only.
* include/bits/regex_compiler.h: Change _Compiler's template
argument from <_FwdIter, _TraitsT> to <_TraitsT>.
* include/bits/regex_compiler.tcc: Likewise.
2014-01-17 Tim Shen <timshen91@gmail.com>
* include/bits/regex_compiler.h: Change _ScannerT into char-type
templated.
* include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
_ScannerBase from _Scanner; Change _Scanner's template argument from
_FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
instead.
* include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
_Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
_Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
Likewise.
* include/std/regex: Add <cstring> for using strchr.
2014-01-17 Tim Shen <timshen91@gmail.com>
* bits/regex_automaton.tcc: Indentation fix.
* bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
_RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
_BracketMatcher<>): Add bool option template parameters and
specializations to make matching more efficient and space saving.
* bits/regex_compiler.tcc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206690
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Thu, 16 Jan 2014 20:51:24 +0000 (20:51 +0000)]
014-01-16 Bernd Schmidt <bernds@codesourcery.com>
PR middle-end/56791
* reload.c (find_reloads_address_1): Do not use RELOAD_OTHER
* when
pushing a reload for an autoinc when we had previously reloaded an
inner part of the address.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206688
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 16 Jan 2014 20:14:45 +0000 (20:14 +0000)]
* tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
field.
(LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
when not giving up or versioning for alias only because of
loop->safelen.
(vect_analyze_data_ref_dependences): Set to true.
* tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
is a GIMPLE_PHI.
(vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
to the condition.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206687
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 16 Jan 2014 19:55:12 +0000 (19:55 +0000)]
PR c++/59821
* tree.c (bot_manip): Update the location of builtin_LINE and
builtin_FILE calls.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206686
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 16 Jan 2014 19:54:23 +0000 (19:54 +0000)]
PR middle-end/58344
* expr.c (expand_expr_real_1): Handle init == NULL_TREE.
* gcc.c-torture/compile/pr58344.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206685
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 16 Jan 2014 19:24:07 +0000 (19:24 +0000)]
PR target/59839
* config/i386/i386.c (ix86_expand_builtin): If target doesn't
satisfy operand 0 predicate for gathers, use a new pseudo as
subtarget.
* gcc.target/i386/pr59839.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206682
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 16 Jan 2014 19:15:46 +0000 (19:15 +0000)]
PR debug/54694
* gcc.target/i386/pr9771-1.c (main): Rename to...
(real_main): ... this. Add __asm name "main".
(ASMNAME, ASMNAME2, STRING): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206679
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 16 Jan 2014 19:14:49 +0000 (19:14 +0000)]
PR tree-optimization/59387
* gcc.c-torture/execute/pr59387.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206678
138bc75d-0d04-0410-961f-
82ee72b054a4
vmakarov [Thu, 16 Jan 2014 19:13:54 +0000 (19:13 +0000)]
2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/59609
* lra-constraints.c (process_alt_operands): Add printing debug
info. Check absence of input/output reloads for matched operands
too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206677
138bc75d-0d04-0410-961f-
82ee72b054a4
vmakarov [Thu, 16 Jan 2014 19:04:08 +0000 (19:04 +0000)]
2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/59835
* ira.c (ira_init_register_move_cost): Increase cost for
impossible modes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206676
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Thu, 16 Jan 2014 18:10:34 +0000 (18:10 +0000)]
[ARM] Make -mcpu, -march and -mtune case-insensitive
gcc/
* config/arm/arm.opt: Make -mcpu, -march, -mtune case-insensitive.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206673
138bc75d-0d04-0410-961f-
82ee72b054a4
rearnsha [Thu, 16 Jan 2014 17:35:50 +0000 (17:35 +0000)]
PR target/59780
* aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
non-register objects. Use gen_(high/low)part more consistently.
Fix assertions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206671
138bc75d-0d04-0410-961f-
82ee72b054a4
meissner [Thu, 16 Jan 2014 17:08:52 +0000 (17:08 +0000)]
2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/59844
* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
endian support, remove tests for WORDS_BIG_ENDIAN.
(p8_mfvsrd_3_<mode>): Likewise.
(reload_gpr_from_vsx<mode>): Likewise.
(reload_gpr_from_vsxsf): Likewise.
(p8_mfvsrd_4_disf): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206668
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 16 Jan 2014 13:48:51 +0000 (13:48 +0000)]
2014-01-16 Richard Biener <rguenther@suse.de>
PR rtl-optimization/46590
* lcm.c (compute_antinout_edge): Use postorder iteration.
(compute_laterin): Use inverted postorder iteration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206663
138bc75d-0d04-0410-961f-
82ee72b054a4
nickc [Thu, 16 Jan 2014 12:17:48 +0000 (12:17 +0000)]
PR middle-end/28865
* varasm.c (output_constant): Return the number of bytes actually
emitted.
(output_constructor_array_range): Update the field size with the
number of bytes emitted by output_constant.
(output_constructor_regular_field): Likewise. Also do not
complain if the total number of bytes emitted is now greater
than the expected fieldpos.
* output.h (output_constant): Update prototype and descriptive
comment.
* gcc.c-torture/compile/pr28865.c: New.
* gcc.c-torture/execute/pr28865.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206661
138bc75d-0d04-0410-961f-
82ee72b054a4