gcc.git
7 years agotrans.c (assoc_to_constructor): Make sure Corresponding_Discriminant is only called...
Eric Botcazou [Tue, 2 May 2017 09:21:19 +0000 (09:21 +0000)]
trans.c (assoc_to_constructor): Make sure Corresponding_Discriminant is only called on discriminants.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* gcc-interface/trans.c (assoc_to_constructor): Make sure
Corresponding_Discriminant is only called on discriminants.
Skip the saving of the result only for them.
(gnat_to_gnu) <N_Selected_Component>: Likewise.
<N_Unchecked_Type_Conversion>: Translate the result type first.
(gigi): Set TREE_NOTHROW on Begin_Handler.
(stmt_list_cannot_raise_p): New predicate.
(Exception_Handler_to_gnu_gcc): Emit a simple final call instead of
a cleanup if the statements of the handler cannot raise.
(process_freeze_entity): Use Is_Record_Type.
(process_type): Likewise.

From-SVN: r247484

7 years agoFix broken pr78138.c for avr
Senthil Kumar Selvaraj [Tue, 2 May 2017 09:17:59 +0000 (09:17 +0000)]
Fix broken pr78138.c for avr

The declaration for memcpy had the size parameter declared as
unsigned long. For avr, __SIZE_TYPE__ is unsigned int, and
this caused a builtin-declaration-mismatch warning, resulting
in a couple of FAILs.

Fixed by typedef'ing __SIZE_TYPE__ to size_t and using size_t as the
type for memcpy's third parameter.

From-SVN: r247483

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:17:13 +0000 (11:17 +0200)]
[multiple changes]

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* einfo.ads (Corresponding_Record_Component): New alias
for Node21 used for E_Component and E_Discriminant.
* einfo.adb (Corresponding_Record_Component): New function.
(Set_Corresponding_Record_Component): New procedure.
(Write_Field21_Name): Handle Corresponding_Record_Component.
* sem_ch3.adb (Inherit_Component): Set
Corresponding_Record_Component for every component in
the untagged case.  Clear it afterwards for non-girder
discriminants.
* gcc-interface/decl.c (gnat_to_gnu_entity)
<E_Record_Type>: For a derived untagged type with discriminants
and constraints, apply the constraints to the layout of the
parent type to deduce the layout.
(field_is_aliased): Delete.
(components_to_record): Test DECL_ALIASED_P directly.
(annotate_rep): Check that fields are present except for
an extension.
(create_field_decl_from): Add DEBUG_INFO_P
parameter and pass it in recursive and other calls.  Add guard
for the manual CSE on the size.
(is_stored_discriminant): New predicate.
(copy_and_substitute_in_layout): Consider only
stored discriminants and check that original fields are present
in the old type.  Deal with derived types.  Adjust call to
create_variant_part_from.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Call_Helper): When locating the
accessibility entity created for an access parameter, handle
properly a reference to a formal of an enclosing subprogram. if
the reference appears in an inherited class-wide condition, it
is the rewriting of the reference in the ancestor expression,
but the accessibility entity must be that of the current formal.

2017-05-02  Javier Miranda  <miranda@adacore.com>

* exp_ch4.adb (Expand_Non_Binary_Modular_Op): New subprogram.
(Expand_N_Op_Add, Expand_N_Op_Divide, Expand_N_Op_Minus,
Expand_N_Op_Multiply, Expand_N_Op_Or, Expand_N_Op_Subtract):
Call Expand_Non_Binary_Modular_Op.

From-SVN: r247482

7 years agosem_ch3.adb (Build_Derived_Private_Type): If the parent type has discriminants...
Eric Botcazou [Tue, 2 May 2017 09:08:28 +0000 (09:08 +0000)]
sem_ch3.adb (Build_Derived_Private_Type): If the parent type has discriminants...

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch3.adb (Build_Derived_Private_Type): If the parent type
has discriminants, do not override the Stored_Constraint list of
the full view of the derived type with that of the derived type.

From-SVN: r247481

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:06:41 +0000 (11:06 +0200)]
[multiple changes]

2017-05-02  Bob Duff  <duff@adacore.com>

* sem_attr.adb (Attribute_Enum_Rep): Disallow T'Enum_Rep.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

* s-os_lib.ads: Minor typo fix.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

* gnatls.adb: Merge and refactor code from Prj.Env and remove
this deprecated dependency.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_util.ads: minor comment addition.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch3.adb (Build_Derived_Record_Type): Fix a few typos and
pastos in part #3 of the head comment.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Freeze_Type): Do not generate an invariant
procedure body for a local (sub)type declaration within a
predicate function. Invariant checks do not apply to these, and
the expansion of the procedure will happen in the wrong scope,
leading to misplaced freeze nodes.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb (Insert_Library_Level_Action): Use proper scope
to analyze generated actions.  If the main unit is a body,
the required scope is that of the corresponding unit declaration.

2017-05-02  Arnaud Charlet  <charlet@adacore.com>

* einfo.adb (Declaration_Node): flip branches of
an IF statement to avoid repeated negations in its condition;
no change in semantics, only to improve readability.

From-SVN: r247480

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:04:23 +0000 (11:04 +0200)]
[multiple changes]

2017-05-02  Arnaud Charlet  <charlet@adacore.com>

* sem_case.adb: Remove extra spaces in parameter declarations.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* usage.adb: Replace space with hyphen ("run time" -> "run-time")
in usage line for new -gnatwE switch.

2017-05-02  Claire Dross  <dross@adacore.com>

* a-cofuve.ads (Remove): Remove unnecessary
conditions in precondition.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

* a-stream.ads, exp_imgv.adb, sem_ch10.adb,
sem_attr.adb, s-finmas.ads, osint.adb: Minor typo fix.

From-SVN: r247479

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:00:48 +0000 (11:00 +0200)]
[multiple changes]

2017-05-02  Justin Squirek  <squirek@adacore.com>

* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
alternative expression.
* sem_res.adb (Resolve_Case_Expression): Ditto.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_disp.adb (Set_All_DT_Position, In_Predef_Prim_DT):
Refine predicate for the case where the primitive operation
is a renaming of equality.  An overriding operation that is
a user-defined renaming of predefined equality inherits its
slot from the overridden operation. Otherwise it is treated
as a predefined op and occupies the same predefined slot as
equality. A call to it is transformed into a call to its alias,
which is the predefined equality. A dispatching call thus uses
the proper slot if operation is further inherited and called
with class-wide arguments.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* errout.adb (Set_Msg_Text): Add a case to switch the message
type when the character '[' is detected signifying a warning
about a run-time exception.
* opt.ads Add a new Warning_Mode value for new switch
* switch-b.adb (Scan_Binder_Switches): Add case for the binder
to handle new warning mode
* usage.adb (Usage): Add usage entry for -gnatwE
* warnsw.adb (Set_Warning_Switch): Add case for the new switch

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Process_Conversion): Reject an intrinsic operator
declaration that operates on some fixed point type.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* a-crbtgo.adb, s-taasde.adb: Remove unused use-type clauses.

From-SVN: r247478

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:57:44 +0000 (10:57 +0200)]
[multiple changes]

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch6.adb (Analyze_Null_Procedure): Revert previous change.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
expression (Analyze_If_Expression): Add check for valid condition
* sem_eval.adb (Eval_Case_Expression): Add check for error posted
on case-expression
* sem_res.adb (Resolve_If_Expression): Add check for valid
condition and then-expression.

From-SVN: r247477

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 2 May 2017 08:55:34 +0000 (10:55 +0200)]
Minor reformatting.

From-SVN: r247476

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:55:03 +0000 (10:55 +0200)]
[multiple changes]

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Build_Initialization_Call): Generate a null
statement if the initialization call is a null procedure, as
can happen with a controlled type with no explicit Initialize
procedure, or an array of such.
* exp_ch7.adb (Process_Object_Declaration): For a type with
controlled components that has a trivial Initialize procedure,
insert declaration for finalization counter after object
declaration itself.
(Make_Deep_Array_Body, Build_Initialize_statements): Do not create
finalization block and attendant declarations if component has
a trivial Initialize procedure.
(Make_Init_Call): Do not generate a call if controlled type has
a trivial Initialize procedure.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* g-forstr.ads (Data): Move Format component last.
* g-forstr.adb ("+"): Adjust for above change.
* g-rewdat.ads (Buffer): Move Buffer, Current, Pattern and Value last.
* g-sechas.ads (Context): Move Key last.
* g-socket.ads (Service_Entry_Type): Move Aliases last.
* s-fileio.adb (Temp_File_Record): Move Name last.
* s-regexp.adb (Regexp_Value): Move Case_Sensitive last.
* xr_tabls.ads (Project_File): Move Src_Dir and Obj_Dir last.

2017-05-02  Jerome Lambourg  <lambourg@adacore.com>

* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: Remove the -nognarl
switch introduced recently. finally not needed.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch6.adb (Analyze_Null_Procedure): Set the
Corresponding_Body link for a null procedure declaration.

From-SVN: r247475

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:49:55 +0000 (10:49 +0200)]
[multiple changes]

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* atree.h (Flag290): Add missing terminating parenthesis.
* einfo.adb (Is_Class_Wide_Clone): Use Flag290.
(Set_Is_Class_Wide_Clone): Likewise.
* einfo.ads (Is_Class_Wide_Clone): Likewise.

2017-05-02  Gary Dismukes  <dismukes@adacore.com>

* checks.ads (Null_Exclusion_Static_Checks): Add Boolean
parameter Array_Comp to indicate the case of an array object
with null-excluding components.
* checks.adb (Null_Exclusion_Static_Checks):
Call Compile_Time_Constraint_Error instead of
Apply_Compile_Time_Constraint_Error in the component case. Also
call that when Array_Comp is True, with an appropriate warning for
the array component case. Only create an explicit initialization
by null in the case of an object of a null-excluding access type
(and no longer do that in the component case).
* sem_ch3.adb (Check_Component): Add a Boolean parameter
Array_Comp defaulted to False. Pass Empty for the Comp
actual when calling Null_Exclusion_Static_Checks in the case
where Comp_Decl matches Object_Decl, because we don't have a
component in that case. In the case of an object or component
of an array type, pass True for Array_Comp on the recursive call
to Check_Component.

From-SVN: r247474

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:47:29 +0000 (10:47 +0200)]
[multiple changes]

2017-05-02  Bob Duff  <duff@adacore.com>

* s-taprop-linux.adb (Prio_To_Linux_Prio): New function to correctly
compute the linux priority from the Ada priority. Call this everywhere
required. In particular, the previous version was not doing this
computation when setting the ceiling priority in various places. It
was just converting to C.int, which results in a ceiling that is off
by 1.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb: Comment predicate inheritance.

From-SVN: r247473

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:44:41 +0000 (10:44 +0200)]
[multiple changes]

2017-05-02  Tristan Gingold  <gingold@adacore.com>

* s-trasym.ads: Add comment.

2017-05-02  Bob Duff  <duff@adacore.com>

* sem_elab.adb, sem_elab.ads: Minor comment fixes.
* sem_ch4.adb: Minor reformatting.
* s-taprop-linux.adb, s-taspri-posix.ads: Code refactoring.
* s-taspri-posix-noaltstack.ads: Minor refactoring.
* sinput.ads: Minor typo fix.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch9.adb (Discriminated_Size): Moved to sem_util.
* sem_util.ads, sem_util.adb (Discriminated_Size): Predicate moved
here from exp_ch9, to recognize objects whose creation requires
dynamic allocation, so that the proper warning can be emitted
when restriction No_Implicit_Heap_Allocation is in effect.
* sem_ch3.adb (Analyze_Object_Declaration): Use Discriminated_Size
to emit proper warning when an object that requires dynamic
allocation is declared.

From-SVN: r247472

7 years ago* s-trasym.ads, s-trasym.adb (Enable_Cache): New.
Tristan Gingold [Tue, 2 May 2017 08:40:12 +0000 (08:40 +0000)]
* s-trasym.ads, s-trasym.adb (Enable_Cache): New.

From-SVN: r247471

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:39:29 +0000 (10:39 +0200)]
[multiple changes]

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Find_Equality_Types, Try_One_Interp): The same relaxed
visibility rules for equality operators that apply within an
instantiation apply within an inlined body.
* sem_type.adb (Add_One_Interp): ditto.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Pragma): Forbid pragma Contract_Cases on null
procedures.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* snames.ads-tmpl
(Name_Assume, Name_Attribute_Definition, Name_Loop_Optimize,
Name_No_Tagged_Streams): Move to regular pragmas.  Add
placeholders for Default_Scalar_Storage_Order, Dispatching_Domain,
and Secondary_Stack_Size.
(Pragma_Id): Move Pragma_Assume,
Pragma_Attribute_Definition, Pragma_Loop_Optimize and
Pragma_No_Tagged_Streams to second part.

From-SVN: r247470

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:32:34 +0000 (10:32 +0200)]
[multiple changes]

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb: Minor reformatting.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Selected_Component): Improve error
detection for illegal references to private components or
operations of a protected type in the body of the type.

From-SVN: r247469

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:31:12 +0000 (10:31 +0200)]
[multiple changes]

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* opt.ads: Add missing GNAT markers in comments.
* opt.adb (Set_Opt_Config_Switches): Do not override earlier
settings of Optimize_Alignment at the end.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Apply_Constraint_Check): Do not apply
a discriminant check when the associated type is a constrained
subtype created for an unconstrained nominal type.
* exp_attr.adb: Minor reformatting.

2017-05-02  Bob Duff  <duff@adacore.com>

* sem_ch3.adb (OK_For_Limited_Init_In_05): Handle correctly
the N_Raise_Expression case.
* sem_ch6.adb (Check_Limited_Return): Minor: clarify comment,
and add assertions.

2017-05-02  Yannick Moy  <moy@adacore.com>

* exp_ch4.adb (Expand_N_Op_Ne): Do not bump parenthese level and
optimize length comparison in GNATprove mode.
* exp_spark.adb (Expand_SPARK_Op_Ne): New function to rewrite
operator /= into negation of operator = when needed.
(Expand_SPARK): Call new
function to expand operator /=.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_fixd.adb (Expand_Divide_Fixed_By_Fixed_Giving_Fixed):
Simplify the expression for a fixed-fixed division to remove
divisions by constants whenever possible, as an optimization
for restricted targets.

From-SVN: r247468

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 2 May 2017 08:28:16 +0000 (10:28 +0200)]
Minor reformatting.

From-SVN: r247467

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:28:03 +0000 (10:28 +0200)]
[multiple changes]

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb, sem_ch3.adb, sem_ch6.adb: Minor reformatting.

2017-05-02  Bob Duff  <duff@adacore.com>

* exp_attr.adb (Callable, Identity, Terminated): Use Find_Prim_Op
to find primitive ops, instead of using an Identifier that will
later be looked up. This is necessary because these ops are not
necessarily visible at all places where we need to call them.
* exp_util.ads: Minor comment fix.

From-SVN: r247466

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:26:12 +0000 (10:26 +0200)]
[multiple changes]

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Fully_Conformant_Expressions): Two entity
references are fully conformant if they are both expansions
of the discriminant of a protected type, within one of the
protected operations. One occurrence may be expanded into a
constant declaration while the other is an input parameter to
the corresponding generated subprogram.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb (Check_For_Null_Excluding_Components): Created for
recursivly searching composite-types for null-excluding access
types and verifying them.
(Analyze_Object_Declaration): Add a
call to Check_Null_Excluding_Components for static verification
of non-initialized objects.
* checks.adb, checks.ads (Null_Exclusion_Static_Checks): Added
a parameter for a composite-type's component and an extra case
for printing component information.

2017-05-02  Yannick Moy  <moy@adacore.com>

* sem_ch10.adb (Analyze_Subunit): Take
configuration pragma into account when restoring appropriate
pragma for analysis of subunit.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* s-tasren.adb, s-tasini.adb, s-taprop-linux.adb,
s-mudido-affinity.adb,, a-exetim-posix.adb, a-direio.adb,
g-socket.adb, s-taenca.adb, s-fileio.adb: Remove unused use-type
clauses from the runtime.

From-SVN: r247465

7 years agox86: vpermil2p{s,d} have no commutative operands
Jan Beulich [Tue, 2 May 2017 08:19:26 +0000 (08:19 +0000)]
x86: vpermil2p{s,d} have no commutative operands

While either of the last two operands can be in memory, they can't be
swapped.

gcc/
2017-05-01  Jan Beulich  <jbeulich@suse.com>

* config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
swapping, add (x,x,m,x,n) alternative.

From-SVN: r247464

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 2 May 2017 08:18:39 +0000 (10:18 +0200)]
Minor reformatting.

From-SVN: r247463

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:18:17 +0000 (10:18 +0200)]
[multiple changes]

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* freeze.adb (Check_Component_Storage_Order): Do not treat bit-packed
array components specially.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (Premature_Usage): If the premature usage of
an entity is as the expression in its own object decaration,
rewrite the reference as Any_Id to prevent cascaded errors or
compiler loops when such an entity is used in an address clause.

From-SVN: r247462

7 years agoDaily bump.
GCC Administrator [Tue, 2 May 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247459

7 years agod-demangle.c (dlang_hexdigit): New function.
Iain Buclaw [Mon, 1 May 2017 23:38:50 +0000 (23:38 +0000)]
d-demangle.c (dlang_hexdigit): New function.

libiberty/ChangeLog:

* d-demangle.c (dlang_hexdigit): New function.
(ascii2hex): Remove function.
(dlang_parse_string): Update to call dlang_hexdigit.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247455

7 years agod-demangle.c (strtol): Remove declaration.
Iain Buclaw [Mon, 1 May 2017 23:31:24 +0000 (23:31 +0000)]
d-demangle.c (strtol): Remove declaration.

libiberty/ChangeLog:

* d-demangle.c (strtol): Remove declaration.
Updated all callers to use dlang_number.
(dlang_number): New function.
(dlang_value): Moved check for ISDIGIT into dlang_parse_integer.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247453

7 years agocalls.c (combine_pending_stack_adjustment_and_call): Remove unnecessary unadjusted_al...
Nathan Sidwell [Mon, 1 May 2017 23:22:30 +0000 (23:22 +0000)]
calls.c (combine_pending_stack_adjustment_and_call): Remove unnecessary unadjusted_alignment check.

* calls.c (combine_pending_stack_adjustment_and_call): Remove
unnecessary unadjusted_alignment check.

From-SVN: r247452

7 years agod-demangle.c (dlang_parse_symbol): Remove function.
Iain Buclaw [Mon, 1 May 2017 22:51:04 +0000 (22:51 +0000)]
d-demangle.c (dlang_parse_symbol): Remove function.

libiberty/ChangeLog:

* d-demangle.c (dlang_parse_symbol): Remove function.
(dlang_parse_qualified): New function.
(dlang_parse_mangle): New function.
(dlang_type): Update to call dlang_parse_qualified.
(dlang_identifier): Update to call either dlang_parse_qualified or
dlang_parse_mangle.
(dlang_type_modifier_p): Remove function.
(dlang_call_convention_p): Don't allow type modifiers in mangle.
(dlang_template_args): Update to call dlang_identifier.
(dlang_demangle): Update to call dlang_parse_mangle.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247450

7 years agoRegenerate .pot files.
Joseph Myers [Mon, 1 May 2017 22:28:02 +0000 (23:28 +0100)]
Regenerate .pot files.

gcc/po:
* gcc.pot: Regenerate.

libcpp/po:
* cpplib.pot: Regenerate.

From-SVN: r247447

7 years agore PR c++/80038 (Random segfault using local vectors in Cilk function)
Xi Ruoyao [Mon, 1 May 2017 22:26:02 +0000 (22:26 +0000)]
re PR c++/80038 (Random segfault using local vectors in Cilk function)

2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>

        PR c++/80038
* cilk_common.c (expand_builtin_cilk_detach): Move pedigree
operations here.
* gimplify.c (gimplify_cilk_detach): New function.
(gimplify_call_expr, gimplify_modify_expr): Call it as needed.
* tree-core.h: Document EXPR_CILK_SPAWN.
* tree.h (EXPR_CILK_SPAWN): Define.

        PR c++/80038
* c-common.h (cilk_gimplify_call_params_in_spawned_fn): Remove
prototype.
(cilk_install_body_pedigree_operations): Likewise.
* cilk.c (cilk_set_spawn_marker): Mark functions that should be
detatched.
(cilk_gimplify_call_params_in_spawned_fn): Remove.
(cilk_install_body_pedigree_operations): Likewise.
(gimplify_cilk_spawn): Add EXPR_STMT and CLEANUP_POINT_EXPR
unwrapping.

        PR c++/80038
* c-gimplify.c (c_gimplify_expr): Remove calls to
cilk_gimplifY_call_params_in_spawned_fn.

        PR c++/80038
* cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Don't
add pedigree operation and detach call here.
* cp-gimplify.c (cp_gimplify_expr): Remove the calls to
cilk_cp_gimplify_call_params_in_spawned_fn.
(cilk_cp_gimplify_call_params_in_spawned_fn): Remove function.
* semantics.c (simplify_aggr_init_expr): Copy EXPR_CILK_SPAWN.

        PR c++/80038
* lto-lang.c (lto_init): Set in_lto_p earlier.

PR c++/80038
* g++.dg/cilk-plus/CK/pr80038.cc: New test.

From-SVN: r247446

7 years agoEliminate fixit_hint class hierarchy
David Malcolm [Mon, 1 May 2017 19:15:36 +0000 (19:15 +0000)]
Eliminate fixit_hint class hierarchy

The original implementation of fix-it hints (r230674) had an abstract
base class "fixit_hint" and three subclasses, representing
each of insertions, replacements, and deletions.

Having multiple classes for fix-it hints was a nuisance, as it required
per-class logic everywhere that the hints were handled.

In r239632 I eliminated the deletion subclass in favor of replacement
with the empty string (two subclasses are easier than three).

This patch eliminates the class hierarchy altogether by implementing
insertion in terms of replacement, by representing replacements via
a half-open interval (so that for an insertion, start == next location,
and we're effectively replacing an empty range at the insertion point
with the new string).

This greatly simplifies the code for handling fix-it hints; for example
it allows removal of a parallel class hierarchy of line_event within
edit-context.c.

It also improves consolidation of hints: we can now consolidate
insertions at the same location, affecting a couple of tests
(selftest::test_one_liner_many_fixits and
gcc.dg/Wmissing-braces-fixits.c).

gcc/ChangeLog:
* diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
to use new fixit_hint representation, using the "replace" logic.
(get_line_span_for_fixit_hint): Likewise.
(layout::print_any_fixits): Likewise.
(selftest::test_one_liner_many_fixits): Rename to...
(selftest::test_one_liner_many_fixits_1): ...this, and update
comment and expected output to reflect that the multiple fix-it
hints are now consolidated into one insertion.
(selftest::test_one_liner_many_fixits_2): New test.
(selftest::test_diagnostic_show_locus_one_liner): Update for
above.
(selftest::test_fixit_consolidation): Update for fix-it API
change.
* diagnostic.c (print_parseable_fixits): Likewise.
* edit-context.c (edited_line::m_line_events): Convert from
auto_vec <line_event *> to auto_vec <line_event>.
(class line_event): Convert from abstract base class to a concrete
class, taking over the role of replace_event.
(class insert_event): Delete.
(class replace_event): Rename to class line_event.  Convert to
half-open range.
(edit_context::add_fixits): Reimplement.
(edit_context::apply_insert): Delete.
(edit_context::apply_replace): Rename to...
(edit_context::apply_fixit): ...this.  Convert to half-open range.
(edited_file::apply_insert): Delete.
(edited_file::apply_replace): Rename to...
(edited_file::apply_fixit): ...this.
(edited_line::~edited_line): Drop deletion of events.
(edited_line::apply_insert): Delete.
(edited_line::apply_replace): Rename to...
(edited_line::apply_fixit): ...this.  Convert to half-open range.
Update for change to type of m_line_events.
* edit-context.h (edit_context::apply_insert): Delete.
(edit_context::apply_replace): Rename to...
(edit_context::apply_fixit): ...this.

gcc/testsuite/ChangeLog:
* gcc.dg/Wmissing-braces-fixits.c: Update expected output to
reflect insertion fix-it hints at the same location now being
consolidated.

libcpp/ChangeLog:
* include/line-map.h (source_range::intersects_line_p): Delete.
(rich_location::add_fixit): Delete.
(rich_location::maybe_add_fixit): New method.
(class fixit_hint): Reimplement in terms of...
(class fixit_replace): ...this.
(class fixit_insert): Delete.
* line-map.c (linemap_position_for_loc_and_offset): Drop overzealous
linemap_assert_fails.
(source_range::intersects_line_p): Rename to...
(fixit_hint::affects_line_p): New function.
(rich_location::add_fixit_insert_before): Reimplement in terms of
maybe_add_fixit, moving validation there.
(rich_location::add_fixit_insert_after): Likewise.
(column_before_p): Delete.
(rich_location::add_fixit_replace): Reimplement in terms of
maybe_add_fixit, moving validation there.  Convert closed input range
to half-open range.
(rich_location::add_fixit): Delete.
(rich_location::maybe_add_fixit): New function.
(fixit_insert::fixit_insert): Delete.
(fixit_insert::~fixit_insert): Delete.
(fixit_insert::affects_line_p): Delete.
(fixit_insert::maybe_append_replace): Delete.
(fixit_replace::fixit_replace): Rename to...
(fixit_hint::fixit_hint): ...this, rewriting as necessary.
(fixit_replace::~fixit_replace): Delete.
(fixit_replace::affects_line_p): Delete.
(fixit_replace::maybe_append_replace): Rename to...
(fixit_hint::maybe_append): ...this, rewriting as necessary.

From-SVN: r247445

7 years agogimple-ssa-sprintf.c (format_integer): Set knownrange when it's known.
Martin Sebor [Mon, 1 May 2017 18:45:46 +0000 (18:45 +0000)]
gimple-ssa-sprintf.c (format_integer): Set knownrange when it's known.

gcc/ChangeLog:
* gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
known.

gcc/testsuite/ChangeLog:
* tree-ssa/builtin-sprintf-warn-18.c: Adjust to avoid failures
on ILP32 targets.

From-SVN: r247444

7 years agoRequire linker plugin for pr78768.c
Tom de Vries [Mon, 1 May 2017 18:31:07 +0000 (18:31 +0000)]
Require linker plugin for pr78768.c

The test-case has an xfail-ed line.  For linkers without plugin support, that
line happens to xpass.  Require linker with plugin support, such that the line
is no longer xpass-ing, but unsupported.

2017-05-01  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/pr78768.c: Require linker plugin.

From-SVN: r247443

7 years agore PR fortran/37131 (inline matmul for small matrix sizes)
Thomas Koenig [Mon, 1 May 2017 17:45:52 +0000 (17:45 +0000)]
re PR fortran/37131 (inline matmul for small matrix sizes)

2017-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* frontend-passes.c (inline_matmul_assign): Also check bounds
for allocatable lhs and matrix-vector-multiplication.

2017-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* gfortran.dg/matmul_bounds_11.f90:  New test.

From-SVN: r247441

7 years agore PR tree-optimization/79715 (hand-rolled strdup with unused result not eliminated)
Martin Sebor [Mon, 1 May 2017 16:46:49 +0000 (16:46 +0000)]
re PR tree-optimization/79715 (hand-rolled strdup with unused result not eliminated)

gcc/testsuite/ChangeLog:
PR tree-optimization/79715
* gcc.dg/pr79715.c: New test.

From-SVN: r247440

7 years agore PR target/68491 (libgcc calls __get_cpuid with 0 level breaks on early 486)
Uros Bizjak [Mon, 1 May 2017 15:38:14 +0000 (17:38 +0200)]
re PR target/68491 (libgcc calls __get_cpuid with 0 level breaks on early 486)

PR target/68491
* config/i386/cpuid.h (__get_cpuid): Always return 0 when
__get_cpuid_max returns 0.
(__get_cpuid_count): Ditto.

From-SVN: r247439

7 years agoAdd and use effective target rdrand
Tom de Vries [Mon, 1 May 2017 14:15:33 +0000 (14:15 +0000)]
Add and use effective target rdrand

2017-05-01  Tom de Vries  <tom@codesourcery.com>

PR testsuite/65941
* lib/target-supports.exp (check_effective_target_rdrand): New proc.
* g++.dg/other/pr59492.C: Require effective target rdrand.

From-SVN: r247438

7 years agod-demangle.c (dlang_value): Add comment explaining why cases for digits are required.
Iain Buclaw [Mon, 1 May 2017 11:01:02 +0000 (11:01 +0000)]
d-demangle.c (dlang_value): Add comment explaining why cases for digits are required.

libiberty/ChangeLog:

* d-demangle.c (dlang_value): Add comment explaining why cases for
digits are required.
* testsuite/d-demangle-expected: Update integer value tests.

From-SVN: r247436

7 years agod-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.
Iain Buclaw [Mon, 1 May 2017 10:50:58 +0000 (10:50 +0000)]
d-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.

libiberty/ChangeLog:

* d-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247434

7 years agod-demangle.c (dlang_identifier): Handle template constraint symbols.
Iain Buclaw [Mon, 1 May 2017 10:45:35 +0000 (10:45 +0000)]
d-demangle.c (dlang_identifier): Handle template constraint symbols.

libiberty/ChangeLog:

* d-demangle.c (dlang_identifier): Handle template constraint symbols.
(dlang_parse_template): Only advance if template symbol prefix is
followed by a digit.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247433

7 years agod-demangle.c (dlang_attributes): Handle scope attributes.
Iain Buclaw [Mon, 1 May 2017 10:39:52 +0000 (10:39 +0000)]
d-demangle.c (dlang_attributes): Handle scope attributes.

libiberty/ChangeLog:

* d-demangle.c (dlang_attributes): Handle scope attributes.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247432

7 years agotree.c (substitute_in_expr): Also inline a call if the replacement expression is...
Eric Botcazou [Mon, 1 May 2017 10:18:18 +0000 (10:18 +0000)]
tree.c (substitute_in_expr): Also inline a call if the replacement expression is another instance of one of...

* tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
replacement expression is another instance of one of its arguments.

From-SVN: r247431

7 years agore PR target/79430 (action of statement incorrectly optimised away)
Jakub Jelinek [Mon, 1 May 2017 09:50:59 +0000 (11:50 +0200)]
re PR target/79430 (action of statement incorrectly optimised away)

PR target/79430
* rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
check for stack push/pop autoinc.
* config/i386/i386.c (ix86_agi_dependent): Return false
if the only reason why modified_in_p returned true is that
addr is SP based and set_insn is a push or pop.

From-SVN: r247429

7 years agoAdd missing entry
Eric Botcazou [Mon, 1 May 2017 08:28:05 +0000 (08:28 +0000)]
Add missing entry

From-SVN: r247428

7 years ago* gcc-interface/decl.c (components_to_record): Add missing guard.
Eric Botcazou [Mon, 1 May 2017 08:24:40 +0000 (08:24 +0000)]
* gcc-interface/decl.c (components_to_record): Add missing guard.

From-SVN: r247427

7 years agodecl.c (components_to_record): Add more comments.
Eric Botcazou [Mon, 1 May 2017 08:12:31 +0000 (08:12 +0000)]
decl.c (components_to_record): Add more comments.

* gcc-interface/decl.c (components_to_record): Add more comments.
Put back pending fields onto the regular list if the misalignment
happens to cancel itself.

From-SVN: r247426

7 years agoDaily bump.
GCC Administrator [Mon, 1 May 2017 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247425

7 years ago* fr.po: Update.
Joseph Myers [Sun, 30 Apr 2017 23:20:45 +0000 (00:20 +0100)]
* fr.po: Update.

From-SVN: r247420

7 years ago* fr.po: Update.
Joseph Myers [Sun, 30 Apr 2017 23:16:03 +0000 (00:16 +0100)]
* fr.po: Update.

From-SVN: r247418

7 years agore PR tree-optimization/79224 (Large C-Ray slowdown)
Jan Hubicka [Sun, 30 Apr 2017 15:02:11 +0000 (17:02 +0200)]
re PR tree-optimization/79224 (Large C-Ray slowdown)

PR ipa/79224
* ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
(account_size_time): Use two predicates - exec_pred and
nonconst_pred_ptr.
(evaluate_conditions_for_known_args): Compute both clause and
nonspec_clause.
(evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
(inline_summary_t::duplicate): Update.
(estimate_function_body_sizes): Caluculate exec and nonconst predicates
separately.
(compute_inline_parameters): Likewise.
(estimate_edge_size_and_time): Update caluclation of time.
(estimate_node_size_and_time): Compute both time and nonspecialized
time.
(estimate_ipcp_clone_size_and_time): Update.
(inline_merge_summary): Update.
(do_estimate_edge_time): Update.
(do_estimate_edge_size): Update.
(do_estimate_edge_hints): Update.
(inline_read_section, inline_write_summary): Stream both new predicates.
* ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
as argument.
(compute_inlined_call_time): Cleanup.
(big_speedup_p): Update.
(edge_badness): Update.
* ipa-inline.h (INLINE_TIME_SCALE): Remove.
(size_time_entry): Replace predicate by exec_predicate and
nonconst_predicate.
(edge_growth_cache_entry): Cache both time nad nonspecialized time.
(estimate_edge_time): Return also nonspec_time.
(reset_edge_growth_cache): Update.

From-SVN: r247417

7 years agoDaily bump.
GCC Administrator [Sun, 30 Apr 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247416

7 years agoparser.c (cp_parser_member_declaration): Add fix-it hints for stray comma and missing...
Volker Reichelt [Sat, 29 Apr 2017 22:27:13 +0000 (22:27 +0000)]
parser.c (cp_parser_member_declaration): Add fix-it hints for stray comma and missing semicolon at end of member declaration.

        * parser.c (cp_parser_member_declaration): Add fix-it hints for
        stray comma and missing semicolon at end of member declaration.

        * g++.dg/diagnostic/member-decl-1.C: New test.

From-SVN: r247412

7 years ago48362.cc: Replace a regexp-test by a note-test.
François Dumont [Sat, 29 Apr 2017 19:35:28 +0000 (19:35 +0000)]
48362.cc: Replace a regexp-test by a note-test.

2017-04-29  François Dumont  <fdumont@gcc.gnu.org>

* testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
by a note-test.

From-SVN: r247411

7 years agore PR rtl-optimization/80491 (Compiler regression for long-add case.)
Jakub Jelinek [Sat, 29 Apr 2017 16:18:11 +0000 (18:18 +0200)]
re PR rtl-optimization/80491 (Compiler regression for long-add case.)

PR rtl-optimization/80491
* ifcvt.c (noce_process_if_block): When looking for x setter
with missing else_bb, don't check only the insn right before
cond_earliest, but look for the last insn that x is modified in
within the same bb.

From-SVN: r247410

7 years agore PR rtl-optimization/80491 (Compiler regression for long-add case.)
Jakub Jelinek [Sat, 29 Apr 2017 16:17:13 +0000 (18:17 +0200)]
re PR rtl-optimization/80491 (Compiler regression for long-add case.)

PR rtl-optimization/80491
* alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.

From-SVN: r247409

7 years agoAdd st[pr]ncpy to stmt_kills_ref_p
Marc Glisse [Sat, 29 Apr 2017 14:39:25 +0000 (16:39 +0200)]
Add st[pr]ncpy to stmt_kills_ref_p

2017-04-29  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/80487
gcc/
* tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.

gcc/testsuite/
* gcc.dg/tree-ssa/strncpy-1.c: New file.

From-SVN: r247408

7 years agore PR tree-optimization/79697 (unused realloc(0, n) not eliminated)
Prathamesh Kulkarni [Sat, 29 Apr 2017 10:05:13 +0000 (10:05 +0000)]
re PR tree-optimization/79697 (unused realloc(0, n) not eliminated)

2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR tree-optimization/79697
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
(propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
BUILT_IN_STRNDUP.
* gimple-fold.c (gimple_fold_builtin_realloc): New function.
(gimple_fold_builtin): Call gimple_fold_builtin_realloc.

testsuite/
* gcc.dg/tree-ssa/pr79697.c: New test.

From-SVN: r247407

7 years agoRequire effective target avx512f for tree-prof/pr66295.c
Tom de Vries [Sat, 29 Apr 2017 08:39:40 +0000 (08:39 +0000)]
Require effective target avx512f for tree-prof/pr66295.c

2017-04-29  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/tree-prof/pr66295.c: Require effective target avx512f.

From-SVN: r247406

7 years agoDaily bump.
GCC Administrator [Sat, 29 Apr 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247405

7 years agoPR tree-optimization/80523 - -Wformat-overflow doesn't consider -fexec-charset
Martin Sebor [Fri, 28 Apr 2017 22:29:40 +0000 (22:29 +0000)]
PR tree-optimization/80523 -  -Wformat-overflow doesn't consider -fexec-charset

gcc/ChangeLog:

PR tree-optimization/80523
* gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
(init_target_to_host_charmap, target_to_host, target_strtol10): New
functions.
(maybe_warn, format_directive, parse_directive): Use new functions.
(pass_sprintf_length::execute): Call init_target_to_host_charmap.

gcc/testsuite/ChangeLog:

PR tree-optimization/80523
* gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: New test.

From-SVN: r247401

7 years agoReplace absolute linenrs in gfortran.dg
Tom de Vries [Fri, 28 Apr 2017 21:52:16 +0000 (21:52 +0000)]
Replace absolute linenrs in gfortran.dg

2017-04-28  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* gfortran.dg/gomp/appendix-a/a.24.1.f90: Replace absolute linenrs.
* gfortran.dg/gomp/appendix-a/a.31.3.f90: Same.

From-SVN: r247400

7 years agoReplace absolute linenrs in objc.dg,obj-c++.dg
Tom de Vries [Fri, 28 Apr 2017 21:24:00 +0000 (21:24 +0000)]
Replace absolute linenrs in objc.dg,obj-c++.dg

2017-04-28  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* obj-c++.dg/bitfield-1.mm: Replace absolute linenrs.
* obj-c++.dg/bitfield-4.mm: Same.
* obj-c++.dg/bitfield-5.mm: Same.
* obj-c++.dg/exceptions-3.mm: Same.
* obj-c++.dg/exceptions-5.mm: Same.
* obj-c++.dg/method-1.mm: Same.
* obj-c++.dg/method-12.mm: Same.
* obj-c++.dg/method-13.mm: Same.
* obj-c++.dg/method-15.mm: Same.
* obj-c++.dg/method-16.mm: Same.
* obj-c++.dg/property/at-property-18.mm: Same.
* obj-c++.dg/property/at-property-25.mm: Same.
* obj-c++.dg/property/at-property-5.mm: Same.
* obj-c++.dg/property/dynamic-2.mm: Same.
* obj-c++.dg/property/property-neg-3.mm: Same.
* obj-c++.dg/protocol-inheritance-1.mm: Same.
* obj-c++.dg/protocol-inheritance-2.mm: Same.
* obj-c++.dg/syntax-error-1.mm: Same.
* obj-c++.dg/try-catch-13.mm: Same.
* objc.dg/bitfield-4.m: Same.
* objc.dg/class-1.m: Same.
* objc.dg/method-11.m: Same.
* objc.dg/method-6.m: Same.
* objc.dg/method-7.m: Same.
* objc.dg/method-9.m: Same.
* objc.dg/missing-proto-3.m: Same.
* objc.dg/naming-2.m: Same.
* objc.dg/property/at-property-16.m: Same.
* objc.dg/property/at-property-18.m: Same.
* objc.dg/property/at-property-25.m: Same.
* objc.dg/property/at-property-5.m: Same.
* objc.dg/property/dynamic-2.m: Same.
* objc.dg/property/property-neg-3.m: Same.
* objc.dg/protocol-inheritance-1.m: Same.
* objc.dg/protocol-inheritance-2.m: Same.

From-SVN: r247399

7 years agoDrop Z from X + Z < Y + Z
Marc Glisse [Fri, 28 Apr 2017 20:51:05 +0000 (22:51 +0200)]
Drop Z from X + Z < Y + Z

2017-04-28  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/cmpexactdiv-2.c: Update for X-Z OP Y-Z.

From-SVN: r247398

7 years agoconfigure.ac (SYSTEM_HEADER_DIR, [...]): Set correctly.
Bernd Edlinger [Fri, 28 Apr 2017 20:15:00 +0000 (20:15 +0000)]
configure.ac (SYSTEM_HEADER_DIR, [...]): Set correctly.

2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
        target_header_dir): Set correctly.
        * configure: Regenerated.
        * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
        (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
        instead of SYSTEM_HEADER_DIR.

From-SVN: r247397

7 years agoRemove blank line
Eric Botcazou [Fri, 28 Apr 2017 17:10:02 +0000 (17:10 +0000)]
Remove blank line

From-SVN: r247395

7 years agoUpdate .po files.
Joseph Myers [Fri, 28 Apr 2017 16:16:03 +0000 (17:16 +0100)]
Update .po files.

* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.

From-SVN: r247394

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:48:59 +0000 (15:48 +0200)]
[multiple changes]

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Complete_Object_Operation): When rewriting the
controlling actual in a prefixed call, preserve the original node
information if the prefix itself has been rewritten, for ASIS use.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb (Insert_Post_Call_Actions):
Code clean up. Insert the post-call actions after an enclosing
procedure call when N denotes a function call and appears as an
actual parameter in the procedure call.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* freeze.adb (Check_Component_Storage_Order): If there is a clause
for the component, also reject the attribute if the component
doesn't end on a byte boundary and its scalar storage order is
different from that of the enclosing record type.

From-SVN: r247391

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:47:23 +0000 (15:47 +0200)]
[multiple changes]

2017-04-28  Javier Miranda  <miranda@adacore.com>

* atree.ads (Info_Messages): Removed.
(Warning_Info_Messages): New counter.
(Report_Info_Messages): New counter.
* err_vars.ads Update documentation.
* errout.adb (Delete_Warning_And_Continuations): Update
Info_Message occurrences.
(Error_Msg_Internal): Update Info_Message occurrences.
(Delete_Warning): Update Info_Message occurrences.
(Write_Error_Summary): Update Info_Message occurrences.
(Output_Messages): Update Info_Message occurrences.
(To_Be_Removed): Update Info_Message occurrences.
(Reset_Warnings): Update Info_Message occurrences.
* errutil.adb (Error_Msg): Update Info_Message occurrences.
(Finalize): Update Info_Message occurrences.
(Initialize): Update Info_Message occurrences.
* erroutc.adb (Delete_Msg): Update Info_Message occurrences.
(Compilation_Errors): Update Info_Message_Occurences.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_ch3.adb (Build_Init_Statements): Likewise on Nam.
        * freeze.adb (Check_Component_Storage_Order): And on Comp_Byte_Aligned.
        * sem_aggr.adb (Resolve_Record_Aggregate): Initialize Box_Node.
        * sem_attr.adb (Loop_Entry): Initialize Encl_Loop.
        * sem_ch12.adb (Build_Operator_Wrapper): Add pragma Warnings on Expr.
        * sem_ch13.adb (Validate_Address_Clauses): Initialize Y_Alignment and
        Y_Size.
        * sem_eval.adb (Why_Not_Static): Initialize Typ.
        * sem_prag.adb (Analyze_Pragma): Add pragma Warnings on Str.

From-SVN: r247390

7 years agoRemove superfluous "" in dg-(error|warning|message|bogus)
Tom de Vries [Fri, 28 Apr 2017 13:41:35 +0000 (13:41 +0000)]
Remove superfluous "" in dg-(error|warning|message|bogus)

find $(find -type d -name testsuite) -type f \
     | xargs sed -ri 's#(dg-(error|warning|message|bogus).*)" "" \}#\1" }#'

2017-04-28  Tom de Vries  <tom@codesourcery.com>

* g++.dg/abi/bitfield3.C: Remove superfluous "" in
dg-(error|warning|message|bogus).
* g++.dg/conversion/dr195-1.C: Same.
* g++.dg/conversion/dr195.C: Same.
* g++.dg/cpp0x/constexpr-reinterpret1.C: Same.
* g++.dg/cpp0x/gen-attrs-14.C: Same.
* g++.dg/cpp0x/inline-ns7.C: Same.
* g++.dg/cpp0x/variadic105.C: Same.
* g++.dg/cpp0x/variadic65.C: Same.
* g++.dg/expr/call2.C: Same.
* g++.dg/expr/member-of-incomplete-type-1.C: Same.
* g++.dg/expr/pmf-1.C: Same.
* g++.dg/ext/altivec-types-1.C: Same.
* g++.dg/ext/altivec-types-2.C: Same.
* g++.dg/ext/altivec-types-3.C: Same.
* g++.dg/ext/attrib14.C: Same.
* g++.dg/ext/complit1.C: Same.
* g++.dg/ext/forscope2.C: Same.
* g++.dg/ext/gnu-inline-global-reject.C: Same.
* g++.dg/ext/label13.C: Same.
* g++.dg/ext/member-attr.C: Same.
* g++.dg/ext/visibility/anon7.C: Same.
* g++.dg/ext/visibility/visibility-7.C: Same.
* g++.dg/ext/vla2.C: Same.
* g++.dg/inherit/access2.C: Same.
* g++.dg/inherit/covariant12.C: Same.
* g++.dg/inherit/covariant14.C: Same.
* g++.dg/inherit/namespace-as-base.C: Same.
* g++.dg/inherit/template-as-base.C: Same.
* g++.dg/lookup/ambig1.C: Same.
* g++.dg/lookup/ambig2.C: Same.
* g++.dg/lookup/ambig3.C: Same.
* g++.dg/lookup/class-member-1.C: Same.
* g++.dg/lookup/conv-1.C: Same.
* g++.dg/lookup/decl1.C: Same.
* g++.dg/lookup/koenig1.C: Same.
* g++.dg/lookup/scoped1.C: Same.
* g++.dg/lookup/scoped2.C: Same.
* g++.dg/lookup/two-stage4.C: Same.
* g++.dg/lookup/used-before-declaration.C: Same.
* g++.dg/lookup/using.C: Same.
* g++.dg/lookup/using17.C: Same.
* g++.dg/lookup/using2.C: Same.
* g++.dg/other/abstract2.C: Same.
* g++.dg/other/classkey1.C: Same.
* g++.dg/other/component1.C: Same.
* g++.dg/other/const1.C: Same.
* g++.dg/other/const2.C: Same.
* g++.dg/other/conversion1.C: Same.
* g++.dg/other/do1.C: Same.
* g++.dg/other/error1.C: Same.
* g++.dg/other/error10.C: Same.
* g++.dg/other/error3.C: Same.
* g++.dg/other/error4.C: Same.
* g++.dg/other/error5.C: Same.
* g++.dg/other/error8.C: Same.
* g++.dg/other/error9.C: Same.
* g++.dg/other/field1.C: Same.
* g++.dg/other/init1.C: Same.
* g++.dg/other/ptrmem2.C: Same.
* g++.dg/other/return1.C: Same.
* g++.dg/overload/builtin3.C: Same.
* g++.dg/overload/error1.C: Same.
* g++.dg/overload/error2.C: Same.
* g++.dg/overload/koenig2.C: Same.
* g++.dg/overload/pmf1.C: Same.
* g++.dg/parse/args1.C: Same.
* g++.dg/parse/attr3.C: Same.
* g++.dg/parse/constant4.C: Same.
* g++.dg/parse/crash10.C: Same.
* g++.dg/parse/crash18.C: Same.
* g++.dg/parse/crash19.C: Same.
* g++.dg/parse/crash20.C: Same.
* g++.dg/parse/crash21.C: Same.
* g++.dg/parse/crash22.C: Same.
* g++.dg/parse/crash32.C: Same.
* g++.dg/parse/decl-specifier-1.C: Same.
* g++.dg/parse/error58.C: Same.
* g++.dg/parse/local-class1.C: Same.
* g++.dg/parse/non-dependent2.C: Same.
* g++.dg/parse/parameter-declaration-1.C: Same.
* g++.dg/parse/ptrmem2.C: Same.
* g++.dg/parse/ptrmem3.C: Same.
* g++.dg/parse/saved1.C: Same.
* g++.dg/tc1/dr101.C: Same.
* g++.dg/tc1/dr142.C: Same.
* g++.dg/tc1/dr176.C: Same.
* g++.dg/template/conv4.C: Same.
* g++.dg/template/crash56.C: Same.
* g++.dg/template/dependent-expr2.C: Same.
* g++.dg/template/error1.C: Same.
* g++.dg/template/error2.C: Same.
* g++.dg/template/explicit6.C: Same.
* g++.dg/template/init-list.C: Same.
* g++.dg/template/local1.C: Same.
* g++.dg/template/lookup2.C: Same.
* g++.dg/template/meminit2.C: Same.
* g++.dg/template/nontype25.C: Same.
* g++.dg/template/ptrmem2.C: Same.
* g++.dg/template/qualttp19.C: Same.
* g++.dg/template/qualttp20.C: Same.
* g++.dg/template/ttp3.C: Same.
* g++.dg/template/unify4.C: Same.
* g++.dg/template/unify6.C: Same.
* g++.dg/template/unify7.C: Same.
* g++.dg/template/warn1.C: Same.
* g++.dg/tree-ssa/dom-invalid.C: Same.
* g++.dg/ubsan/shift-1.C: Same.
* g++.dg/warn/Wunused-2.C: Same.
* g++.dg/warn/Wunused-4.C: Same.
* g++.dg/warn/Wunused-6.C: Same.
* g++.dg/warn/deprecated-6.C: Same.
* g++.dg/warn/deprecated.C: Same.
* g++.dg/warn/effc1.C: Same.
* g++.dg/warn/effc3.C: Same.
* g++.dg/warn/incomplete1.C: Same.
* g++.dg/warn/inline1.C: Same.
* g++.dg/warn/noeffect2.C: Same.
* g++.dg/warn/noeffect4.C: Same.
* g++.dg/warn/oldcast1.C: Same.
* g++.dg/warn/sentinel.C: Same.
* g++.dg/warn/unit-1.C: Same.
* g++.old-deja/g++.pt/inherit2.C: Same.
* g++.old-deja/g++.pt/overload8.C: Same.
* gcc.dg/20000926-1.c: Same.
* gcc.dg/20040223-1.c: Same.
* gcc.dg/Warray-bounds-7.c: Same.
* gcc.dg/alias-1.c: Same.
* gcc.dg/alias-12.c: Same.
* gcc.dg/alias-13.c: Same.
* gcc.dg/alias-2.c: Same.
* gcc.dg/array-13.c: Same.
* gcc.dg/array-4.c: Same.
* gcc.dg/attr-ifunc-2.c: Same.
* gcc.dg/attr-invalid.c: Same.
* gcc.dg/attr-noinline.c: Same.
* gcc.dg/bitfld-2.c: Same.
* gcc.dg/c90-const-expr-7.c: Same.
* gcc.dg/c99-const-expr-7.c: Same.
* gcc.dg/cpp/20000625-1.c: Same.
* gcc.dg/cpp/charconst-4.c: Same.
* gcc.dg/cpp/include2.c: Same.
* gcc.dg/cpp/include2a.c: Same.
* gcc.dg/decl-4.c: Same.
* gcc.dg/deprecated-4.c: Same.
* gcc.dg/deprecated.c: Same.
* gcc.dg/dfp/altivec-types.c: Same.
* gcc.dg/float-range-1.c: Same.
* gcc.dg/pack-test-3.c: Same.
* gcc.dg/pr11492.c: Same.
* gcc.dg/pr15360-1.c: Same.
* gcc.dg/pr37908.c: Same.
* gcc.dg/pr53265.c: Same.
* gcc.dg/pr57287-2.c: Same.
* gcc.dg/pr57287.c: Same.
* gcc.dg/redecl-1.c: Same.
* gcc.dg/sync-3.c: Same.
* gcc.dg/two-types-1.c: Same.
* gcc.dg/two-types-2.c: Same.
* gcc.dg/two-types-4.c: Same.
* gcc.dg/two-types-5.c: Same.
* gcc.dg/two-types-6.c: Same.
* gcc.dg/two-types-7.c: Same.
* gcc.dg/two-types-8.c: Same.
* gcc.dg/two-types-9.c: Same.
* gcc.dg/uninit-I.c: Same.
* gcc.dg/uninit-pr19430.c: Same.
* gcc.dg/visibility-7.c: Same.
* gcc.dg/winline-10.c: Same.
* gcc.dg/winline-2.c: Same.
* gcc.dg/winline-3.c: Same.
* gcc.dg/winline-9.c: Same.
* gcc.target/i386/attr-returns_twice-1.c: Same.
* gcc.target/i386/chkp-const-check-2.c: Same.
* gcc.target/i386/chkp-label-address.c: Same.
* gcc.target/i386/chkp-remove-bndint-2.c: Same.
* gcc.target/i386/pr39162.c: Same.
* gcc.target/i386/sse-5.c: Same.
* gcc.target/powerpc/altivec-types-1.c: Same.
* gcc.target/powerpc/altivec-types-2.c: Same.
* gcc.target/powerpc/altivec-types-3.c: Same.
* gcc.target/powerpc/float128-mix.c: Same.
* gcc.target/powerpc/no-r11-3.c: Same.
* gcc.target/spu/Wmain.c: Same.
* gcc.target/spu/ea/errors2.c: Same.
* gfortran.dg/assignment_1.f90: Same.
* gfortran.dg/common_3.f90: Same.
* gfortran.dg/der_io_1.f90: Same.
* gfortran.dg/g77/20030326-1.f: Same.
* gfortran.dg/g77/9263.f: Same.
* gfortran.dg/g77/960317-1.f: Same.
* gfortran.dg/g77/970625-2.f: Same.
* gfortran.dg/g77/980615-0.f: Same.
* gfortran.dg/g77/check0.f: Same.
* gfortran.dg/g77/dnrm2.f: Same.
* gfortran.dg/g77/pr9258.f: Same.
* gfortran.dg/ichar_1.f90: Same.
* gfortran.dg/interface_1.f90: Same.
* gfortran.dg/namelist_1.f90: Same.
* gfortran.dg/namelist_2.f90: Same.
* gfortran.dg/namelist_3.f90: Same.
* gfortran.dg/namelist_print_2.f: Same.
* gfortran.dg/oldstyle_1.f90: Same.
* gfortran.dg/runtime_warning_1.f90: Same.
* gfortran.dg/underflow.f90: Same.
* gnat.dg/specs/integer_value.ads: Same.
* obj-c++.dg/fsf-package-0.m: Same.
* objc.dg/two-types-1.m: Same.

From-SVN: r247389

7 years agoMinor reformatting.
Arnaud Charlet [Fri, 28 Apr 2017 13:38:19 +0000 (15:38 +0200)]
Minor reformatting.

From-SVN: r247388

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:37:44 +0000 (15:37 +0200)]
[multiple changes]

2017-04-28  Bob Duff  <duff@adacore.com>

* sem_util.ads, sem_util.adb (Might_Raise): New function
that replaces Is_Exception_Safe, but has the opposite
sense. Is_Exception_Safe was missing various cases -- calls inside
a pragma Debug, calls inside an 'if' or assignment statement,
etc. Might_Raise now walks the entire subtree looking for things
that can raise.
* exp_ch9.adb (Is_Exception_Safe): Remove.
(Build_Protected_Subprogram_Body): Replace call to
Is_Exception_Safe with "not Might_Raise". Misc cleanup (use
constants where possible).
* exp_ch7.adb: Rename Is_Protected_Body -->
Is_Protected_Subp_Body. A protected_body is something different
in the grammar.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* inline.adb (Expand_Inlined_Call): Initialize Targ1 variable.
* par-ch3.adb (P_Component_Items): Initialize Decl_Node variable.
(P_Discrete_Choice_List): Initialize Expr_Node variable.
* par-ch9.adb (P_Task): Initialize Aspect_Sloc variable.
(P_Protected): Likewise.
* sem_case.adb (Check_Duplicates):
Add pragma Warnings on variable.
* sem_ch12.adb (Preanalyze_Actuals): Initialize Vis variable.
* sem_ch4.adb (List_Operand_Interps):  Add pragma Warnings on variable.
* sem_ch5.adb (Analyze_Assignment): Initialize Save_Full_Analysis.
(Analyze_Exit_Statement): Initialize Scope_Id variable.
(Analyze_Iterator_Specification): Initialize Bas variable.
* sem_ch9.adb (Allows_Lock_Free_Implementation): Initialize
Error_Count (Satisfies_Lock_Free_Requirements): Likewise.
(Analyze_Accept_Statement): Initialize Task_Nam.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Install_Primitive_Elaboration_Check):
Do not generate an elaboration check if all checks have been
suppressed.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications, case
Interrupt_Handler and Attach_Handler): Generate reference
to protected operation to prevent spurious warnings about
unreferenced entities. Previous scheme failed with style checks
enabled.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Relocate_Pragmas_To_Body): A pragma Warnings
that follows an expression function must not be relocated to
the generated body, because it applies to the code that follows.

From-SVN: r247387

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:34:44 +0000 (15:34 +0200)]
[multiple changes]

2017-04-28  Gary Dismukes  <dismukes@adacore.com>

* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
Relaxed_RM_Semantics to avoid having CodePeer issue errors on
code that might violate the more stringent checking for 'Access
introduced in Ada 2005.

2017-04-28  Arnaud Charlet  <charlet@adacore.com>

* a-cforse.adb: minor style fix in comment.

From-SVN: r247386

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:33:16 +0000 (15:33 +0200)]
[multiple changes]

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Also
initialize Block_Decls variable.
(Expand_Entry_Barrier): Add pragma Warnings on Func_Body variable.
(Build_Dispatching_Requeue): Add pragma Warnings on Op variable.
* exp_disp.adb (Expand_Interface_Actuals): Initialize
Formal_DDT and Actual_DDT variables.
(Expand_Interface_Thunk): Initialize Iface_Formal.
(Make_DT): Initialize Size_Comp.
(Make_Select_Specific_Data_Table): Initialize Decls.
* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies):
Also initialize more RPC_Receiver_* variables.
(Build_To_Any_Function): Initialize Cstr_Formal.
* exp_prag.adb (Expand_Pragma_Contract_Cases): Initialize Msg_Str.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Freeze_Type_Refs): For an interface conversion
node between access types, freeze the designated type as well,
so that dispatch table pointers are created in the proper scope,
and not in the constructed body of the expression function.

2017-04-28  Bob Duff  <duff@adacore.com>

* alloc.ads (Nodes_Initial): Go back to previous value. The large
value makes large compilations faster, but small compilations slower.

2017-04-28  Arnaud Charlet  <charlet@adacore.com>

* sem_util.adb: minor typos in Is_Child_Or_Sibling.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* erroutc.adb (Compilation_Errors): Do not consider info messages
as suitable warnings when warnings must be treated as errors.
* sem_ch7.adb (Analyze_Package_Specification): Do not consider
internally-generated packages when outputting completion
information.
* errout.adb (Output_Messages): Do not consider info messages as
suitable warnings when warnings must be treated as errors.
* errutil.adb (Finalize): Do not consider info messages as
suitable warnings when warnings must be treated as errors.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* warnsw.ads: Minor fix for incorrect wording in comment.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (In_Instance_Code): New predicate in
Valid_Conversion, to determine whether a type conversion appears
as (or within) an actual for a formal object.  Type conversions
in instances are not rechecked in Valid_Conversion because
visibility changes between generic location andi instance may
lead to spurious errors, but conversions within an actual must be
fully checked, and they are not fully resolved when pre-analyzing
the actuals.

From-SVN: r247385

7 years agoexp_ch6.adb (Expand_N_Extended_Return_Statement): Use New_Copy_Tree instead of Reloca...
Hristian Kirtchev [Fri, 28 Apr 2017 13:29:34 +0000 (13:29 +0000)]
exp_ch6.adb (Expand_N_Extended_Return_Statement): Use New_Copy_Tree instead of Relocate_Node as any subsequent copies of the...

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb (Expand_N_Extended_Return_Statement): Use
New_Copy_Tree instead of Relocate_Node as any subsequent copies
of the relocated node will have mangled Parent pointers.
* sem_util.adb (Build_NCT_Hash_Tables): Reset both hash
tables used in conjunction with entity and itype replication.
(Visit_Entity): Rewrite the restriction on which entities
require duplication.  The restriction now includes all types.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* a-cofuse.ads, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfinve.adb,
a-cfinve.ads, a-cforma.adb, a-cforma.ads, a-cofuma.adb, a-cofuma.ads,
a-cfhama.adb, a-cfhama.ads, a-cforse.adb: Minor reformatting and code
cleanups.

From-SVN: r247384

7 years agoexp_util.adb, [...]: Minor reformatting.
Hristian Kirtchev [Fri, 28 Apr 2017 13:26:33 +0000 (13:26 +0000)]
exp_util.adb, [...]: Minor reformatting.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb, g-dyntab.adb, par-ch4.adb, sem_util.adb, sem_attr.adb,
gnat1drv.adb, exp_disp.adb, namet.adb, alloc.ads: Minor reformatting.

From-SVN: r247383

7 years agoFix date.
Arnaud Charlet [Fri, 28 Apr 2017 13:25:26 +0000 (15:25 +0200)]
Fix date.

From-SVN: r247382

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:25:02 +0000 (15:25 +0200)]
[multiple changes]

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* exp_util.adb: Minor reformatting.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb: Fix copy/pasto.

From-SVN: r247381

7 years agoipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
Jan Hubicka [Fri, 28 Apr 2017 13:04:48 +0000 (15:04 +0200)]
ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.

* ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
(estimate_local_effects): Likewise.
* ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
* ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
do_estimate_edge_time, estimate_edge_time): Likewise.
* ipa-inline-analysis.c (estimate_node_size_and_time,
estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
(estimate_time_after_inlining): Remove.

From-SVN: r247380

7 years agoPR libstdc++/80553 don't allow destroying non-destructible types
Jonathan Wakely [Fri, 28 Apr 2017 12:56:53 +0000 (13:56 +0100)]
PR libstdc++/80553 don't allow destroying non-destructible types

PR libstdc++/80553
* include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
assertions to ensure type is destructible.
(destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
* include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
Move to stl_construct.h.
* testsuite/20_util/specialized_algorithms/memory_management_tools/
destroy_neg.cc: New test.
* testsuite/23_containers/vector/cons/destructible_neg.cc: New test.

From-SVN: r247379

7 years agoRemove superfluous "" in dg-error.
Jonathan Wakely [Fri, 28 Apr 2017 12:56:38 +0000 (13:56 +0100)]
Remove superfluous "" in dg-error.

* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
superfluous "" in dg-error.

From-SVN: r247378

7 years agoEnhance documentation of gcov.
Martin Liska [Fri, 28 Apr 2017 12:51:57 +0000 (14:51 +0200)]
Enhance documentation of gcov.

2017-04-28  Martin Liska  <mliska@suse.cz>

* doc/gcov.texi: Enhance documentation of gcov.

From-SVN: r247377

7 years agoSort options of gcov, gcov-dump and gcov-tool both in --help and documentation
Martin Liska [Fri, 28 Apr 2017 12:51:40 +0000 (14:51 +0200)]
Sort options of gcov, gcov-dump and gcov-tool both in --help and documentation

2017-04-28  Martin Liska  <mliska@suse.cz>

* doc/gcov.texi: Sort options in alphabetic order.
* doc/gcov-dump.texi: Likewise.
* doc/gcov-tool.texi: Likewise.
* gcov.c (print_usage): Likewise.
* gcov-dump.c (print_usage): Likewise.
* gcov-tool.c (print_merge_usage_message): Likewise.
(print_rewrite_usage_message): Likewise.
(print_overlap_usage_message): Likewise.

From-SVN: r247376

7 years agoFix format_gcov to not print misleading values (PR gcov-profile/53915)
Martin Liska [Fri, 28 Apr 2017 12:51:22 +0000 (14:51 +0200)]
Fix format_gcov to not print misleading values (PR gcov-profile/53915)

2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/53915
* gcov.c (format_gcov): Print 'NAN %' when top > bottom.

From-SVN: r247375

7 years agoMake gcno more precise about BBs really belonging to a line (PR gcov-profile/79891).
Martin Liska [Fri, 28 Apr 2017 12:51:05 +0000 (14:51 +0200)]
Make gcno more precise about BBs really belonging to a line (PR gcov-profile/79891).

2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/79891
* gcov.c (add_line_counts): Assign BBs to lines just if the BB
is marked by compiler as living on a line.
(get_cycles_count): Remove usage of the union.
(output_intermediate_file): Likewise.
(find_source): Fix GNU coding style.
(accumulate_line_counts): Remove old non-all block mode.
(output_lines): Remove usage of the union.
* profile.c (output_location): Include all BBs, even if
belonging to a same line (and file) as a previous BB.
2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/79891
* gcc.misc-tests/gcov-17.c: New test.
* gcc.misc-tests/gcov-18.c: New test.

From-SVN: r247374

7 years agoIntroduce new option -w which shows verbose informations.
Martin Liska [Fri, 28 Apr 2017 12:50:47 +0000 (14:50 +0200)]
Introduce new option -w which shows verbose informations.

2017-04-28  Martin Liska  <mliska@suse.cz>

* gcov.c (process_args): Handle new argument 'w'.
(read_graph_file): Assign ID to BBs.
(output_branch_count): Display BB # if verbose flag is set.
(output_lines): Likewise for arcs.
(print_usage): Add '--verbose' option help.
* doc/gcov.texi: Document --verbose (-w) option.

From-SVN: r247373

7 years agoSimplify representation of locations of a block.
Martin Liska [Fri, 28 Apr 2017 12:50:29 +0000 (14:50 +0200)]
Simplify representation of locations of a block.

2017-04-28  Martin Liska  <mliska@suse.cz>

* gcov.c (struct block_location_info): New struct.
(process_file): Fill up the new structure.
(read_graph_file): Replace usage of encoding by the newly added
struct.
(add_line_counts): Likewise.
(accumulate_line_counts): Remove usage of the union.
(function_info::function_info): New function.
(function_info::~function_info): Likewise.
(process_file): Call delete instead of release_function.
(release_function): Release the function.
(release_structures): Call delete instead of release_function.
(solve_flow_graph): Replace usage of num_blocks.
(find_exception_blocks): Likewise.
(output_lines): Fix GNU coding style.

From-SVN: r247372

7 years agoRemove .gcno file when compilation does not success (PR driver/56469).
Martin Liska [Fri, 28 Apr 2017 12:50:08 +0000 (14:50 +0200)]
Remove .gcno file when compilation does not success (PR driver/56469).

2017-04-28  Martin Liska  <mliska@suse.cz>

PR driver/56469
* coverage.c (coverage_remove_note_file): New function.
* coverage.h: Declare the function.
* toplev.c (finalize): Clean if an error has been seen.

From-SVN: r247371

7 years agogcno file: do not stream block flags (PR gcov-profile/80031).
Martin Liska [Fri, 28 Apr 2017 12:49:26 +0000 (14:49 +0200)]
gcno file: do not stream block flags (PR gcov-profile/80031).

2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/80031
* gcov-dump.c (tag_blocks): Just print number of basic blocks.
* gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
* gcov.c (read_graph_file): Read just number of blocks.
* profile.c (branch_prob): Do not stream 0 flags per a basic
block.

From-SVN: r247370

7 years agoFix indentation of gcov-dump.
Martin Liska [Fri, 28 Apr 2017 12:48:44 +0000 (14:48 +0200)]
Fix indentation of gcov-dump.

2017-04-28  Martin Liska  <mliska@suse.cz>

* gcov-dump.c (tag_*): Add new argument to declarations.
(dump_gcov_file): Likewise.
(tag_blocks): Add and use new argument depth.
(tag_arcs): Likewise.
(tag_lines): Likewise.
(tag_counters): Likewise.
(tag_summary): Likewise.
(dump_working_sets): Use depth to do a proper indentation.

From-SVN: r247369

7 years agore PR bootstrap/80531 (RC1 bootstrap comparison failure)
Jakub Jelinek [Fri, 28 Apr 2017 11:15:55 +0000 (13:15 +0200)]
re PR bootstrap/80531 (RC1 bootstrap comparison failure)

PR bootstrap/80531
* cgraph.h (symtab_node::debug_symtab): No longer inline.
* symtab.c (symtab_node::debug_symtab): Move definition here.

From-SVN: r247367

7 years agolto-streamer.h (LTO_major_version): Bump to 7.
Richard Biener [Fri, 28 Apr 2017 08:42:56 +0000 (08:42 +0000)]
lto-streamer.h (LTO_major_version): Bump to 7.

2017-04-28  Richard Biener  <rguenther@suse.de>

* lto-streamer.h (LTO_major_version): Bump to 7.

From-SVN: r247365

7 years agoRemove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus)
Tom de Vries [Fri, 28 Apr 2017 07:26:32 +0000 (07:26 +0000)]
Remove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus)

find $(find -type d -name testsuite) -type f \
     | xargs sed -ri \
       's#(dg-(error|warning|message|bogus).*) \{ target \*-\*-\* \} \}#\1 }#'

2017-04-28  Tom de Vries  <tom@codesourcery.com>

* g++.dg/parse/error2.C: Remove superfluous '{ target *-*-* }' in
dg-(error|warning|message|bogus).
* g++.dg/parse/parameter-declaration-1.C: Same.
* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Same.
* gcc.dg/Wpointer-sign-Wall.c: Same.
* gcc.dg/Wpointer-sign-pedantic.c: Same.
* gcc.dg/cpp/19990413-1.c: Same.
* gcc.dg/dg-test-1.c: Same.
* gcc.dg/empty-source-2.c: Same.
* gcc.dg/empty-source-3.c: Same.
* gcc.dg/format/c99-printf-1.c: Same.
* gcc.dg/format/c99-scanf-1.c: Same.
* gcc.dg/label-decl-2.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/uninit-pr20644-O0.c: Same.
* gfortran.dg/pr70006.f90: Same.
* obj-c++.dg/fsf-package-0.m: Same.

* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).

From-SVN: r247364

7 years agoRemove superfluous ' . ' in dg-(error|warning|message|bogus)
Tom de Vries [Fri, 28 Apr 2017 07:26:18 +0000 (07:26 +0000)]
Remove superfluous ' . ' in dg-(error|warning|message|bogus)

find $(find -type d -name testsuite) -type f \
     | xargs sed -ri 's#(dg-(error|warning|message|bogus).*) \. \}#\1 }#'

2017-04-28  Tom de Vries  <tom@codesourcery.com>

* c-c++-common/Wimplicit-fallthrough-6.c: Remove superfluous ' . ' in
dg-(error|warning|message|bogus).
* c-c++-common/Wimplicit-fallthrough-7.c: Same.
* c-c++-common/cilk-plus/AN/pr61963.c: Same.
* c-c++-common/cilk-plus/CK/no_args_error.c: Same.
* c-c++-common/pr20000.c: Same.
* c-c++-common/pr49706.c: Same.
* g++.dg/ext/utf16-4.C: Same.
* g++.dg/parse/error2.C: Same.
* g++.dg/warn/Wtype-limits-Wextra.C: Same.
* g++.dg/warn/Wtype-limits.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* gcc.dg/Wpointer-sign-Wall.c: Same.
* gcc.dg/Wpointer-sign-pedantic.c: Same.
* gcc.dg/Wtype-limits-Wextra.c: Same.
* gcc.dg/Wtype-limits.c: Same.
* gcc.dg/cpp/19990413-1.c: Same.
* gcc.dg/dg-test-1.c: Same.
* gcc.dg/empty-source-2.c: Same.
* gcc.dg/empty-source-3.c: Same.
* gcc.dg/label-decl-2.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/uninit-pr19430-O0.c: Same.
* gcc.dg/uninit-pr19430.c: Same.
* gcc.dg/uninit-pr20644-O0.c: Same.
* gcc.dg/utf16-4.c: Same.
* gfortran.dg/pr70006.f90: Same.
* obj-c++.dg/fsf-package-0.m: Same.

From-SVN: r247363

7 years agotree-vrp.c (assert_info): New struct.
Richard Biener [Fri, 28 Apr 2017 06:42:20 +0000 (06:42 +0000)]
tree-vrp.c (assert_info): New struct.

2017-04-28  Richard Biener  <rguenther@suse.de>

* tree-vrp.c (assert_info): New struct.
(add_assert_info): New helper.
(register_edge_assert_for_2): Refactor to add asserts to a vector
of assert_info.
(register_edge_assert_for_1): Likewise.
(register_edge_assert_for): Likewise.
(finish_register_edge_assert_for): New helper actually registering
asserts where live on edge.
(find_conditional_asserts): Adjust.
(find_switch_asserts): Likewise.
(evrp_dom_walker::try_find_new_range): Generalize.
(evrp_dom_walker::before_dom_children): Use register_edge_assert_for.

* gcc.dg/tree-ssa/evrp7.c: New testcase.
* gcc.dg/tree-ssa/evrp8.c: Likewise.
* gcc.dg/tree-ssa/evrp9.c: Likewise.
* gcc.dg/tree-ssa/vrp35.c: Disable EVRP.
* gcc.dg/tree-ssa/vrp36.c: Likewise.
* gcc.dg/tree-ssa/pr49039.c: Likewise.

From-SVN: r247362

7 years agoDaily bump.
GCC Administrator [Fri, 28 Apr 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247361

7 years agore PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expres...
Marek Polacek [Thu, 27 Apr 2017 21:12:29 +0000 (21:12 +0000)]
re PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expression" message)

PR sanitizer/80349
* fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
arg10 and arg11 to itype.

* c-c++-common/ubsan/pr80349.c: New test.

From-SVN: r247352

7 years agore PR bootstrap/80531 (RC1 bootstrap comparison failure)
Jakub Jelinek [Thu, 27 Apr 2017 20:03:01 +0000 (22:03 +0200)]
re PR bootstrap/80531 (RC1 bootstrap comparison failure)

PR bootstrap/80531
* configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
bootstrap compare failures.

From-SVN: r247350

7 years ago* doc/extend.texi (Object Size Checking): Improve grammar.
Jonathan Wakely [Thu, 27 Apr 2017 18:44:25 +0000 (19:44 +0100)]
* doc/extend.texi (Object Size Checking): Improve grammar.

From-SVN: r247349

7 years agoparser.c (cp_parser_cast_expression): Add target type of cast to diagnostic.
Volker Reichelt [Thu, 27 Apr 2017 16:10:54 +0000 (16:10 +0000)]
parser.c (cp_parser_cast_expression): Add target type of cast to diagnostic.

        * parser.c (cp_parser_cast_expression): Add target type of cast to
        diagnostic.
        * error.c (type_to_string): Add '{enum}' suffix to enumeration types.

        * g++.dg/cpp1z/direct-enum-init1.C: Adjust for more verbose enum
        diagnostics.
        * g++.dg/warn/pr12242.C: Likewise.

From-SVN: r247347

7 years agoRemove reundant const-qualification from cast targets
Jonathan Wakely [Thu, 27 Apr 2017 15:17:05 +0000 (16:17 +0100)]
Remove reundant const-qualification from cast targets

* include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
(PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
* testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
Likewise.

From-SVN: r247346