PR tree-optimization/63464
* gimple.h (gimple_seq_discard): New prototype.
* gimple.c: Include stringpool.h and tree-ssanames.h.
(gimple_seq_discard): New function.
* optabs.h (lshift_cheap_p): New prototype.
* optabs.c (lshift_cheap_p): New function, moved from...
* tree-switch-conversion.c (lshift_cheap_p): ... here.
* tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
(reassoc_branch_fixups): New variable.
(update_range_test): Add otherrangep and seq arguments.
Unshare exp. If otherrange is NULL, use for other ranges
array of pointers pointed by otherrangep instead.
Emit seq before gimplified statements for tem.
(optimize_range_tests_diff): Adjust update_range_test
caller.
(optimize_range_tests_xor): Likewise. Fix up comment.
(extract_bit_test_mask, optimize_range_tests_to_bit_test): New
functions.
(optimize_range_tests): Adjust update_range_test caller.
Call optimize_range_tests_to_bit_test.
(branch_fixup): New function.
(execute_reassoc): Call branch_fixup.
* gcc.dg/torture/pr63464.c: New test.
* gcc.dg/tree-ssa/reassoc-37.c: New test.
* gcc.dg/tree-ssa/reassoc-38.c: New test.
From-SVN: r216393
* ipa-icf.c (sem_function::merge): Local flags are set to false
to enforce equal calling convention to be used.
* opts.c (common_handle_option): Indentation fix.
From-SVN: r216386
2014-10-17 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb (Expand_N_Task_Body): Add defense against
previous errors.
* freeze.adb (Freeze_Entity): Add defense against checking null
scope for generic.
* restrict.adb (Tasking_Allowed): Add test for No_Run_Time mode.
* sem_ch13.adb (Freeze_Entity_Checks): Add defense against
previous errors.
* sem_ch9.adb (Analyze_Task_Type_Declaration): Give error if
in No_Run_Time mode.
2014-10-17 Robert Dewar <dewar@adacore.com>
* prj-makr.adb: Minor reformatting.
2014-10-17 Robert Dewar <dewar@adacore.com>
* gnatcmd.adb, make.adb, prj-part.adb, gnatlink.adb, prj-nmsc.adb,
prj-conf.adb, prj-env.adb: Use Is_Directory_Separator where possible.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* exp_prag.adb (Undo_Initialization): If Initialize_Scalars
is enabled, code will be generated for some composite types
to initialize an object after its declaration. If there is
a subsequent Import pragma for the object, that code must be
removed as specified byw the semantics of the pragma, and to
prevent out-of-order elaboration issues in the back-end.
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_N_Op_Concat): Keep concatenation operator
wrapping mechanism under debug flag -gnatd.h.
* debug.adb: Claim debug switch -gnatd.h.
From-SVN: r216384
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Add_Invariants, Replace_Type_References): Do
not perform the replacement on the expression for an inherited
class-wide invariant if in ASIS_Mode and the type reference is
already the prefix of a 'Class attribute reference: the expression
has already been preanalyzed and the replacement performed when
first encountered on the declaration of the parent type.
From-SVN: r216382
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Component_Invariant_Call): Retrieve Invariant
subprogram from base type.
* sem_ch7.adb (Analyze_Package_Specification): Build invariant
subprogram for private type, not any of its subtypes.
* sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set type
of procedure entity, because a call to it may be generated in
a client unit before the corresponding subprogram declaration
is analyzed.
2014-10-17 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Get_Directories): Do not create directories
when a project is abstract.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iterator_Specification): If the domain
of iteration is given by an expression that is not an array type,
verify that its type implements an iterator iterface.
From-SVN: r216380
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Eval_Attribute): Ensure that attribute
reference is not marked as being a static expression if the
prefix evaluation raises CE.
2014-10-17 Robert Dewar <dewar@adacore.com>
* exp_pakd.adb: Move bit packed entity tables to spec.
* exp_pakd.ads: Move bit packed entity tables here from body.
* freeze.adb (Freeze_Array_Type): Check that packed array type
is supported.
* rtsfind.adb (PRE_Id_Table): New table (Entity_Not_Defined):
Specialize messages using PRE_Id_Table.
* uintp.ads, uintp.adb (UI_Image): New functional form.
2014-10-17 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb: Add Suppress_Initialization aspect.
* einfo.ads, einfo.adb (Suppress_Initialization): Now applies to
E_Variable.
* exp_ch3.adb (Default_Initialize_Object): Handle
Suppress_Initialization.
* exp_prag.adb (Expand_Pragma_Suppress_Initialization): New
procedure (Expand_N_Pragma): Handle Suppress_Initialization
(Expand_Pragma_Import_Or_Interface): Use Undo_Initialization
(Undo_Initialization): New procedure.
* sem_prag.adb (Analyze_Pragma, case Suppress_Initialization):
This is now allowed for E_Variable case.
* gnat_rm.texi: Document new aspect Suppress_Initialization
Suppress_Initialization aspect/pragma can apply to variable.
* einfo.ads: Minor reformatting.
2014-10-17 Arnaud Charlet <charlet@adacore.com>
* spark_xrefs.ads: Add documentation pointer to Flow_Computed_Globals.
2014-10-17 Robert Dewar <dewar@adacore.com>
* cstand.adb (Create_Standard): Mark Short_Integer as
implementation defined.
* sem_util.adb (Set_Entity_With_Checks): Avoid blow up for
compiler built with assertions for No_Implementation_Identifiers test.
From-SVN: r216379
2014-10-17 Robert Dewar <dewar@adacore.com>
* aspects.ads: Documentation fix, aspect Lock_Free does have a
corresponding pragma.
* gnat_rm.texi: Document implementation defined boolean aspects
as boolean.
From-SVN: r216378
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Add_Invariants): For a class-wide type invariant,
preserve semantic information on the invariant expression
(typically a function call) because it may be inherited by a
type extension in a different unit, and it cannot be resolved
by visibility elsewhere because it may refer to local entities.
2014-10-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document that string literal can be used for
pragma Warnings when operating in Ada 83 mode.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Find_Aggregate_Component_Desig_Type): New
subsidiary function to Freeze_ Expression, used to determine
whether an aggregate for an array of access types also freezes the
designated type, when some aggregate components are allocators.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* a-strsea.adb (Find_Token): AI05-031 indicates that the
procedure must raise Index_Error when Source is not empty and
the From parameter is not within the range of the Source string.
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Is_Static_String_Expression): Allow string
literal in Ada 83 mode.
From-SVN: r216377
2014-10-17 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Get_Config_Switches): In CodePeer mode, do
not take into account any compiler command from package IDE.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Build_Function_Wrapper): The formals of the
wrapper must have the same identifiers as those of the formal
subprogram, because calls within the generic may use named
associations.
From-SVN: r216376
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, a-strsea.adb: Minor reformatting.
* par-ch6.adb (P_Subprogram): Fix bad handling of null procedures.
From-SVN: r216375
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect
specfications from original type declaration to declaration of
implicit base, because original node is rewritten as a subtype
declaration on which type aspects do not belong.
From-SVN: r216373
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb (Propagate_Default_Init_Cond_Attributes): A derived type
inherits the attributes related to pragma Default_Initial_Condition
from its parent type.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* a-strsea.adb (Index - versions with a From parameter):
According to AI05-056, the Index functions with a From parameter
return 0 if the source is an empty string.
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Disable
the consistency checks in ASIS mode.
2014-10-17 Arnaud Charlet <charlet@adacore.com>
* s-expmod.ads: Minor typo fix.
From-SVN: r216372
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_util.adb: Minor reformatting.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Build_Function_Wrapper): Build wrappers for
actuals that are defaulted subprograms of the formal subprogram
declaration.
2014-10-17 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Op_Eq): Make sure we deal with the
implementation base type.
* sinfo.ads: Add a note for N_Op_Eq and N_Op_Ne that record
operands are always expanded out into component comparisons.
2014-10-17 Robert Dewar <dewar@adacore.com>
* s-vallli.adb: Minor comment correction.
* s-valuti.ads: Minor comment reformatting.
2014-10-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document System.Atomic_Counters.
* impunit.adb: Add System.Atomic_Counters (s-atocou.ads) to the
list of user- accessible units added as children of System.
* s-atocou.ads: Update comment.
2014-10-17 Arnaud Charlet <charlet@adacore.com>
* s-expmod.ads: Add comments.
From-SVN: r216371
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation
of all attributes related to pragma Default_Initial_Condition.
(Build_Derived_Type): Propagation of all attributes related
to pragma Default_Initial_Condition.
(Process_Full_View): Account for the case where the full view derives
from another private type and propagate the attributes related
to pragma Default_Initial_Condition to the private view.
(Propagate_Default_Init_Cond_Attributes): New routine.
* sem_util.adb: Alphabetize various routines.
(Build_Default_Init_Cond_Call): Use an unchecked type conversion
when calling the default initial condition procedure of a private type.
(Build_Default_Init_Cond_Procedure_Declaration): Prevent
the generation of multiple default initial condition procedures.
From-SVN: r216370
2014-10-17 Robert Dewar <dewar@adacore.com>
* lib-writ.ads, s-valdec.ads: Minor reformatting.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb: Additional work on function wrappers.
2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
* exp_util.adb (Possible_Bit_Aligned_Component): Also recurse
on the renamed object of renamings.
2014-10-17 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer
mode, always use the native target.
From-SVN: r216368
* config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
register in a special way.
(__cpuid_count): Ditto.
* config/i386/driver-i386.h: Protect with
"#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
(host_detect_local_cpu): Mention that GCC with non-fixed %ebx
is required to compile the function.
From-SVN: r216362
This patch cures the linux kernel boot failure when compiled using
trunk gcc.
At its heart, the problem is caused by merge_decls merging from the
old decl to the new decl, then copying back to the old decl and
discarding the new. When Jan moved some fields to the symtab,
"copying back to the old decl" was lost for those fields. Really,
it would be best if merge_decls was rewritten to merge everything to
the kept decl, but here I'm just doing that for fields accessed via
decl_with_vis.symtab_node.
2014-10-17 Alan Modra <amodra@gmail.com>
gcc/c/
PR middle-end/61848
* c-decl.c (merge_decls): Don't merge section name or tls model
to newdecl symtab node, instead merge to olddecl. Override
existing olddecl section name. Set tls_model for all thread-local
vars, not just OMP thread-private ones. Remove incorrect comment.
gcc/cp/
PR middle-end/61848
* decl.c (merge_decls): Don't merge section name, comdat group or
tls model to newdecl symtab node, instead merge to olddecl.
Override existing olddecl section name. Set tls_model for all
thread-local vars, not just OMP thread-private ones. Remove
incorrect comment.
2014-10-17 Markus Trippelsdorf <markus@trippelsdorf.de>
PR middle-end/61848
* g++.dg/torture/pr61848.C: New testcase.
* gcc.c-torture/compile/pr61848.c: New testcase.
From-SVN: r216361
We want to create goroutines with a small stack, at least on
systems where split stacks are supported. We don't need to
create threads with a small stack.
From-SVN: r216353
* lto-object.c (lto_obj_begin_section): In the event that pointer
sizes aren't powers of two, choose a more suitable alignment
than (unsigned)(-1).
From-SVN: r216350
PR go/63560
compiler: Mark functions that call defer_retaddr as not inlinable.
This is to that the GCC middle-end won't split them. See
http://gcc.gnu.org/PR63560.
From-SVN: r216341
2014-10-16 Tom de Vries <tom@codesourcery.com>
* tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
with SSA_NAME_IN_FREELIST.
From-SVN: r216318