gcc.git
8 years agore PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash)
David B. Robins [Mon, 20 Jun 2016 20:02:03 +0000 (20:02 +0000)]
re PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash)

PR target/71571
* g++.dg/torture/pr71571.C: New test.

From-SVN: r237616

8 years agore PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash)
Hans-Peter Nilsson [Mon, 20 Jun 2016 20:01:20 +0000 (20:01 +0000)]
re PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash)

PR target/71571
* config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
space for PIC with non-v32 and the common non-PIC "jump".

From-SVN: r237615

8 years agore PR target/71559 (ICE in ix86_fp_cmp_code_to_pcmp_immediate, at config/i386/i386...
Jakub Jelinek [Mon, 20 Jun 2016 19:17:12 +0000 (21:17 +0200)]
re PR target/71559 (ICE in ix86_fp_cmp_code_to_pcmp_immediate, at config/i386/i386.c:23042 (KNL/AVX512))

PR target/71559
* config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
returned values and add UN*/LTGT/*ORDERED cases with values matching
D operand modifier on vcmp for AVX.

* gcc.target/i386/sse2-pr71559.c: New test.
* gcc.target/i386/avx-pr71559.c: New test.
* gcc.target/i386/avx512f-pr71559.c: New test.

From-SVN: r237614

8 years agore PR fortran/71194 (ICE on compilation with fcheck=all ; -fcheck=bounds)
Tobias Burnus [Mon, 20 Jun 2016 18:46:43 +0000 (20:46 +0200)]
re PR fortran/71194 (ICE on compilation with fcheck=all ; -fcheck=bounds)

2016-06-20  Tobias Burnus  <burnus@net-b.de>

        fortran/71194
        * trans-expr.c (gfc_trans_pointer_assignment): Correctly handle
        RHS pointer functions.

2016-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/71194
        * gfortran.dg/pointer_remapping_10.f90: New.

From-SVN: r237612

8 years agoC++ FE: Show both locations in string literal concatenation error
David Malcolm [Mon, 20 Jun 2016 16:37:28 +0000 (16:37 +0000)]
C++ FE: Show both locations in string literal concatenation error

gcc/cp/ChangeLog:
* parser.c (cp_parser_string_literal): Convert non-standard
concatenation error to directly use a rich_location, and
use that to add the location of the first literal to the
diagnostic.

gcc/testsuite/ChangeLog:
* g++.dg/diagnostic/string-literal-concat.C: New test case.

From-SVN: r237608

8 years agoThis patch cleans up the -mpc-relative-loads option processing.
Wilco Dijkstra [Mon, 20 Jun 2016 16:20:31 +0000 (16:20 +0000)]
This patch cleans up the -mpc-relative-loads option processing.

This patch cleans up the -mpc-relative-loads option processing.  Rename to avoid
the confusing nopcrelative_literal_loads names.  Fix the option processing code
to correctly support -mno-pc-relative-loads rather than ignore it.

    gcc/
* config/aarch64/aarch64.opt
(mpc-relative-literal-loads): Rename internal option name.
* config/aarch64/aarch64.c
(aarch64_nopcrelative_literal_loads): Rename to
aarch64_pcrelative_literal_loads.
(aarch64_expand_mov_immediate): Likewise.
(aarch64_secondary_reload): Likewise.
(aarch64_can_use_per_function_literal_pools_p): Likewise.
(aarch64_override_options_after_change_1): Rename and simplify logic.
(aarch64_classify_symbol): Merge large model checks into switch,
remove pc-relative load check.

From-SVN: r237607

8 years agoPR c/69507 - bogus warning: ISO C does not allow __alignof__ (expression)
Martin Sebor [Mon, 20 Jun 2016 15:46:09 +0000 (15:46 +0000)]
PR c/69507 - bogus warning: ISO C does not allow __alignof__ (expression)

gcc/testsuite/ChangeLog:
* gnu89-const-expr-1.c: Avoid diagnosing __alignof__ as not conforming.
* gnu90-const-expr-1.c: Same.
* gnu99-const-expr-1.c: Same.
* gnu99-static-1.c: Same.

From-SVN: r237606

8 years ago[PATCH]Fix scan-tree-dump-times syntax errors in gcc.dg/tree-ssa/attr-hotcold-2.c
Renlin Li [Mon, 20 Jun 2016 14:27:16 +0000 (14:27 +0000)]
[PATCH]Fix scan-tree-dump-times syntax errors in gcc.dg/tree-ssa/attr-hotcold-2.c

gcc/testsuite/

2016-06-20  Renlin Li  <renlin.li@arm.com>

* gcc.dg/tree-ssa/attr-hotcold-2.c: Fix syntax errors.

From-SVN: r237605

8 years ago[AArch64] Give some new costs for Cortex-A53 floating-point operations
James Greenhalgh [Mon, 20 Jun 2016 14:01:04 +0000 (14:01 +0000)]
[AArch64] Give some new costs for Cortex-A53 floating-point operations

gcc/

* config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
costs relative to the cost of a register move.

From-SVN: r237604

8 years ago[Patch AArch64] Add some more missing intrinsics
James Greenhalgh [Mon, 20 Jun 2016 13:42:30 +0000 (13:42 +0000)]
[Patch AArch64] Add some more missing intrinsics

gcc/ChangeLog

2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>

* config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
(vcvt_n_f64_u64): Likewise.
(vcvt_n_s64_f64): Likewise.
(vcvt_n_u64_f64): Likewise.
(vcvt_f64_s64): Likewise.
(vrecpe_f64): Likewise.
(vcvt_f64_u64): Likewise.
(vrecps_f64): Likewise.

gcc/testsuite/ChangeLog

2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>

* gcc.target/aarch64/vcvt_f64_1.c: New.
* gcc.target/aarch64/vcvt_n_f64_1.c: New.
* gcc.target/aarch64/vrecp_f64_1.c: New.

From-SVN: r237603

8 years ago[Patch AArch64] Fixup to fcvt patterns added in r237200
James Greenhalgh [Mon, 20 Jun 2016 13:40:07 +0000 (13:40 +0000)]
[Patch AArch64] Fixup to fcvt patterns added in r237200

gcc/

* config/aarch64/aarch64.md
(<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
iterators.
(<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
attributes.
* config/aarch64/aarch64-builtins.c
(aarch64_types_binop_uss_qualifiers): Delete.
(TYPES_BINOP_USS): Likewise.
(aarch64_types_binop_sus_qualifiers): Likewise.
(TYPES_BINOP_SUS): Likewise.
(aarch64_types_fcvt_from_unsigned_qualifiers): New.
(TYPES_FCVTIMM_SUS): Likewise.
* config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
rather than BINOP.
(ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
(fcvtzs): Use SHIFTIMM rather than BINOP.
(fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.

From-SVN: r237602

8 years ago[AArch64] Give some new costs for Cortex-A57 floating-point operations
James Greenhalgh [Mon, 20 Jun 2016 13:32:01 +0000 (13:32 +0000)]
[AArch64] Give some new costs for Cortex-A57 floating-point operations

gcc/

* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
costs relative to the cost of a register move.

From-SVN: r237601

8 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Jun 2016 12:31:47 +0000 (14:31 +0200)]
[multiple changes]

2016-06-20  Hristian Kirtchev  <kirtchev@adacore.com>

* make.adb, gnatbind.adb, g-socket.adb, sem_ch13.adb: Minor
reformatting.
* lib.ads, sem_util.adb: Minor typo in comment.

2016-06-20  Yannick Moy  <moy@adacore.com>

* sem_prag.adb, sem_prag.ads (Build_Pragma_Check_Equivalent):
Add parameter Keep_Pragma_Id to optionally keep
the identifier of the pragma instead of converting
to pragma Check. Also set type of new function call
appropriately. (Collect_Inherited_Class_Wide_Conditions):
Call Build_Pragma_Check_Equivalent with the new parameter
Keep_Pragma_Id set to True to keep the identifier of the copied
pragma.
* sinfo.ads: Add comment.

2016-06-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch7.adb (Build_Invariant_Procedure_Body):
Always install the scope of the invariant procedure
in order to produce better error messages. Do not
insert the body when the context is a generic unit.
(Build_Invariant_Procedure_Declaration): Perform minimal
decoration of the invariant procedure and its formal parameter
in case they are not analyzed. Do not insert the declaration
when the context is a generic unit.

From-SVN: r237600

8 years agosem_ch13.adb (Visible_Component): New procedure...
Ed Schonberg [Mon, 20 Jun 2016 12:27:05 +0000 (12:27 +0000)]
sem_ch13.adb (Visible_Component): New procedure...

2016-06-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Visible_Component): New procedure, subsidiary
of Replace_Type_References_ Generic, to determine whether an
identifier in a predicate or invariant expression is a visible
component of the type to which the predicate or invariant
applies. Implements the visibility rule stated in RM 13.1.1
(12/3).

From-SVN: r237599

8 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Jun 2016 12:25:44 +0000 (14:25 +0200)]
[multiple changes]

2016-06-20  Hristian Kirtchev  <kirtchev@adacore.com>

* s-regpat.adb, sem_prag.adb, pprint.adb, sem_ch13.adb: Minor
reformatting.

2016-06-20  Tristan Gingold  <gingold@adacore.com>

* make.adb (Check_Standard_Library): Consider system.ads
if s-stalib.adb is not available.
* gnatbind.adb (Add_Artificial_ALI_File): New procedure extracted from
gnatbind.

2016-06-20  Thomas Quinot  <quinot@adacore.com>

* g-socket.adb (Is_IP_Address): A string consisting in digits only is
not a dotted quad.

2016-06-20  Arnaud Charlet  <charlet@adacore.com>

* exp_ch7.adb (Build_Invariant_Procedure_Body):
decorate invariant procedure body with typical properties of
procedure entityes.

2016-06-20  Arnaud Charlet  <charlet@adacore.com>

* a-exetim-darwin.adb: New file.

From-SVN: r237598

8 years agoImprove modes_tieable by returning true in more cases...
Wilco Dijkstra [Mon, 20 Jun 2016 12:24:48 +0000 (12:24 +0000)]
Improve modes_tieable by returning true in more cases...

Improve modes_tieable by returning true in more cases: allow scalar access
within vectors without requiring an extra move.  Removing these moves helps
the register allocator in deciding whether to use integer or FP registers on
operations that can be done on both.  This saves about 100 instructions in the
gcc.target/aarch64 tests.

A typical example:

orr     v1.8b, v0.8b, v1.8b
fmov    x0, d0
fmov    x1, d1
add     x0, x1, x0
ins     v0.d[0], x0
orr     v0.8b, v1.8b, v0.8b

after:

orr     v1.8b, v0.8b, v1.8b
add     d0, d1, d0
orr     v0.8b, v1.8b, v0.8b

    gcc/
* config/aarch64/aarch64.c (aarch64_modes_tieable_p):
Allow scalar/single vector modes to be tieable.

From-SVN: r237597

8 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Jun 2016 12:22:09 +0000 (14:22 +0200)]
[multiple changes]

2016-06-16  Hristian Kirtchev  <kirtchev@adacore.com>

* atree.ads, atree.adb (Elist29): New routine.
(Set_Elist29): New routine.
* atree.h New definition for Elist29.
* einfo.adb Subprograms_For_Type is now an Elist rather than
a node. Has_Invariants is now a synthesized attribute
and does not require a flag. Has_Own_Invariants
is now Flag232. Has_Inherited_Invariants is
Flag291. Is_Partial_Invariant_Procedure is Flag292.
(Default_Init_Cond_Procedure): Reimplemented.
(Has_Inherited_Invariants): New routine.
(Has_Invariants): Reimplemented.
(Has_Own_Invariants): New routine.
(Invariant_Procedure): Reimplemented.
(Is_Partial_Invariant_Procedure): New routine.
(Partial_Invariant_Procedure): Reimplemented.
(Predicate_Function): Reimplemented.
(Predicate_Function_M): Reimplemented.
(Set_Default_Init_Cond_Procedure): Reimplemented.
(Set_Has_Inherited_Invariants): New routine.
(Set_Has_Invariants): Removed.
(Set_Has_Own_Invariants): New routine.
(Set_Invariant_Procedure): Reimplemented.
(Set_Is_Partial_Invariant_Procedure): New routine.
(Set_Partial_Invariant_Procedure): Reimplemented.
(Set_Predicate_Function): Reimplemented.
(Set_Predicate_Function_M): Reimplemented.
(Set_Subprograms_For_Type): Reimplemented.
(Subprograms_For_Type): Reimplemented.
(Write_Entity_Flags): Output Flag232 and Flag291.
* einfo.ads Add new attributes Has_Inherited_Invariants
Has_Own_Invariants Is_Partial_Invariant_Procedure
Partial_Invariant_Procedure Change the documentation
of attributes Has_Inheritable_Invariants Has_Invariants
Invariant_Procedure Is_Invariant_Procedure Subprograms_For_Type
(Has_Inherited_Invariants): New routine along with pragma Inline.
(Has_Own_Invariants): New routine along with pragma Inline.
(Is_Partial_Invariant_Procedure): New routine along with pragma Inline.
(Partial_Invariant_Procedure): New routine.
(Set_Has_Inherited_Invariants): New routine along with pragma Inline.
(Set_Has_Invariants): Removed along with pragma Inline.
(Set_Has_Own_Invariants): New routine along with pragma Inline.
(Set_Is_Partial_Invariant_Procedure): New routine
along with pragma Inline.
(Set_Partial_Invariant_Procedure): New routine.
(Set_Subprograms_For_Type): Update the signature.
(Subprograms_For_Type): Update the signature.
* exp_ch3.adb Remove with and use clauses for Sem_Ch13.
(Build_Array_Invariant_Proc): Removed.
(Build_Record_Invariant_Proc): Removed.
(Freeze_Type): Build the body of the invariant procedure.
(Insert_Component_Invariant_Checks): Removed.
* exp_ch7.adb Add with and use clauses for Sem_Ch6, Sem_Ch13,
and Stringt.
(Build_Invariant_Procedure_Body): New routine.
(Build_Invariant_Procedure_Declaration): New routine.
* exp_ch7.ads (Build_Invariant_Procedure_Body): New routine.
(Build_Invariant_Procedure_Declaration): New routine.
* exp_ch9.adb (Build_Corresponding_Record): Do not propagate
attributes related to invariants to the corresponding record
when building the corresponding record. This is done by
Build_Invariant_Procedure_Declaration.
* exp_util.adb (Make_Invariant_Call): Reimplemented.
* freeze.adb (Freeze_Array_Type): An array type requires an
invariant procedure when its component type has invariants.
(Freeze_Record_Type): A record type requires an invariant
procedure when at least one of its components has an invariant.
* sem_ch3.adb (Analyze_Private_Extension_Declaration): Inherit
invariant-related attributes.
(Analyze_Subtype_Declaration):
Inherit invariant-related attributes.
(Build_Derived_Record_Type): Inherit invariant-related attributes.
(Check_Duplicate_Aspects): Reimplemented.
(Get_Partial_View_Aspect): New routine.
(Process_Full_View): Inherit invariant-related attributes. Reimplement
the check on hidden inheritance of class-wide invariants.
(Remove_Default_Init_Cond_Procedure): Reimplemented.
* sem_ch6.adb (Analyze_Subprogram_Specification): Do not modify
the controlling type for an invariant procedure declaration
or body.
(Is_Invariant_Procedure_Or_Body): New routine.
* sem_ch7.adb (Analyze_Package_Specification): Build the partial
invariant body in order to preanalyze and resolve all invariants
of a private type at the end of the visible declarations. Build
the full invariant body in order to preanalyze and resolve
all invariants of a private type's full view at the end of
the private declarations.
(Preserve_Full_Attributes): Inherit invariant-related attributes.
* sem_ch9.adb (Analyze_Protected_Type_Declaration): Ensure that
aspects are analyzed with the proper view when the protected type
is a completion of a private type. Inherit invariant-related attributes.
(Analyze_Task_Type_Declaration): Ensure that
aspects are analyzed with the proper view when the task type
is a completion of a private type. Inherit invariant-related
attributes.
* sem_ch13.adb Remove with and use clauses for Stringt.
(Build_Invariant_Procedure_Declaration): Removed.
(Build_Invariant_Procedure): Removed.
(Freeze_Entity_Checks): Do not build the body of the invariant
procedure here.
The body is built when the type is frozen in Freeze_Type.
(Inherit_Aspects_At_Freeze_Point): Do not inherit any attributes
related to invariants here because this leads to erroneous
inheritance.
(Replace_Node): Rename to Replace_Type_Ref.
* sem_ch13.ads (Build_Invariant_Procedure_Declaration): Removed.
(Build_Invariant_Procedure): Removed.
* sem_prag.adb Add with and use clauses for Exp_Ch7.
(Analyze_Pragma): Reimplement the analysis of pragma Invariant.
* sem_res.adb (Resolve_Actuals): Emit a specialized error when
the context is an invariant.
* sem_util.adb (Get_Views): New routine.
(Incomplete_Or_Partial_View): Consider generic packages when
examining declarations.
(Inspect_Decls): Consider full type
declarations because they may denote a derivation from a
private type.
(Propagate_Invariant_Attributes): New routine.
* sem_util.ads (Get_Views): New routine.
(Propagate_Invariant_Attributes): New routine.

2016-06-16  Arnaud Charlet  <charlet@adacore.com>

* pprint.adb (Expression_Image): Add better handling of UCs,
we don't want to strip them all for clarity.

From-SVN: r237596

8 years agoThe Cortex-A57 scheduler is missing fcsel, so add it.
Wilco Dijkstra [Mon, 20 Jun 2016 12:15:19 +0000 (12:15 +0000)]
The Cortex-A57 scheduler is missing fcsel, so add it.

    gcc/
* config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.

From-SVN: r237595

8 years ago[typo] alignement -> alignment
Kyrylo Tkachov [Mon, 20 Jun 2016 11:12:07 +0000 (11:12 +0000)]
[typo] alignement -> alignment

2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

    * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
    "alignement".
    * tree.h (TYPE_ALIGN): Likewise.

2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

    * exp_util.adb (Safe_Unchecked_Type_Conversion): Use "alignment"
    instead of "alignement".

2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

    * gfortran.dg/common_align_2.f90: Use "alignment" instead of
    "alignement".

From-SVN: r237590

8 years agore PR target/71103 (avr-gcc crashes with unrecognizable insn error)
Georg-Johann Lay [Mon, 20 Jun 2016 11:01:13 +0000 (11:01 +0000)]
re PR target/71103 (avr-gcc crashes with unrecognizable insn error)

gcc/
PR target/71103
* config/avr/avr.md (movqi): Handle loading subreg:qi (const).

gcc/testsuite/
PR target/71103
* gcc.target/avr/torture/pr71103-2.c: New test.

From-SVN: r237589

8 years agoavr.c (avr_print_operand): Fix "format not a string literal" build warnings.
Georg-Johann Lay [Mon, 20 Jun 2016 10:50:53 +0000 (10:50 +0000)]
avr.c (avr_print_operand): Fix "format not a string literal" build warnings.

* config/avr/avr.c (avr_print_operand): Fix "format not a string
literal" build warnings.
(avr_print_operand_address): Dito.

From-SVN: r237588

8 years agore PR target/71375 (Failure on startup on rs6000-ibm-aix{4.3|5.1.0})
David Edelsohn [Mon, 20 Jun 2016 02:25:50 +0000 (22:25 -0400)]
re PR target/71375 (Failure on startup on rs6000-ibm-aix{4.3|5.1.0})

        PR target/71375
        * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
        * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.

From-SVN: r237587

8 years agoDaily bump.
GCC Administrator [Mon, 20 Jun 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237586

8 years agoPR c/69507 - bogus warning: ISO C does not allow ‘__alignof__ (expression)’
Martin Sebor [Sun, 19 Jun 2016 16:11:40 +0000 (10:11 -0600)]
PR c/69507 - bogus warning: ISO C does not allow ‘__alignof__ (expression)’

From-SVN: r237582

8 years agoPR c/69507 - bogus warning: ISO C does not allow ‘__alignof__ (expression)’
Martin Sebor [Sun, 19 Jun 2016 16:10:04 +0000 (16:10 +0000)]
PR c/69507 - bogus warning: ISO C does not allow ‘__alignof__ (expression)’

gcc/testsuite/ChangeLog:

PR c/69507
* gcc.dg/alignof.c: New test.

gcc/c/ChangeLog:

PR c/69507
* c-parser.c (c_parser_alignof_expression): Avoid diagnosing
__alignof__ (expression).

From-SVN: r237581

8 years agoUse gfc_add_*_component defines where appropriate
Bernhard Reutner-Fischer [Sun, 19 Jun 2016 10:38:16 +0000 (12:38 +0200)]
Use gfc_add_*_component defines where appropriate

A couple of places used gfc_add_component_ref(expr, "string") instead of
the defines from gfortran.h

From-SVN: r237580

8 years agoDaily bump.
GCC Administrator [Sun, 19 Jun 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237579

8 years agotrans-types.c: Commentary typo fix.
Bernhard Reutner-Fischer [Sat, 18 Jun 2016 20:06:23 +0000 (22:06 +0200)]
trans-types.c: Commentary typo fix.

From-SVN: r237575

8 years agofptr.c (__canonicalize_funcptr_for_compare): Don't set least-significant bit in funct...
John David Anglin [Sat, 18 Jun 2016 17:49:58 +0000 (17:49 +0000)]
fptr.c (__canonicalize_funcptr_for_compare): Don't set least-significant bit in function pointer for fixup.

* config/pa/fptr.c (__canonicalize_funcptr_for_compare): Don't set
least-significant bit in function pointer for fixup.

From-SVN: r237574

8 years agopa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
John David Anglin [Sat, 18 Jun 2016 17:26:38 +0000 (17:26 +0000)]
pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.

* config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.

From-SVN: r237573

8 years agoMAINTAINERS (Write After Approval): Add myself.
Senthil Kumar Selvaraj [Sat, 18 Jun 2016 13:26:36 +0000 (13:26 +0000)]
MAINTAINERS (Write After Approval): Add myself.

2016-06-18  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r237572

8 years agore PR bootstrap/71435 (sparc bootstrap failure since r235625)
Eric Botcazou [Sat, 18 Jun 2016 11:10:10 +0000 (11:10 +0000)]
re PR bootstrap/71435 (sparc bootstrap failure since r235625)

PR bootstrap/71435
* reload1.c (reload): Pass 0 to finish_spills when called because
update_eliminables_and_spill returns true and remove did_spill.
(finish_spills): Adjust comment and document GLOBAL parameter.

From-SVN: r237571

8 years agoDaily bump.
GCC Administrator [Sat, 18 Jun 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237570

8 years agore PR target/71338 ([RL78] mulu instruction not used on G10)
DJ Delorie [Fri, 17 Jun 2016 22:24:17 +0000 (18:24 -0400)]
re PR target/71338 ([RL78] mulu instruction not used on G10)

PR target/71338
* config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
* config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
(umulqihi3_virt): Likewise.
* config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
(umulqihi3_real): Likewise.

From-SVN: r237566

8 years agoopenmp.c (match_acc): New generic function to parse OpenACC directives.
Cesar Philippidis [Fri, 17 Jun 2016 20:32:03 +0000 (13:32 -0700)]
openmp.c (match_acc): New generic function to parse OpenACC directives.

gcc/fortran/
* openmp.c (match_acc): New generic function to parse OpenACC
directives.
(gfc_match_oacc_parallel_loop): Use it.
(gfc_match_oacc_parallel): Likewise.
(gfc_match_oacc_kernels_loop): Likewise.
(gfc_match_oacc_kernels): Likewise.
(gfc_match_oacc_data): Likewise.
(gfc_match_oacc_host_data): Likewise.
(gfc_match_oacc_loop): Likewise.
(gfc_match_oacc_enter_data): Likewise.
(gfc_match_oacc_exit_data): Likewise.

From-SVN: r237565

8 years agodecl.c (validate_constexpr_redeclaration): Change pair of errors to error + inform.
Paolo Carlini [Fri, 17 Jun 2016 20:01:46 +0000 (20:01 +0000)]
decl.c (validate_constexpr_redeclaration): Change pair of errors to error + inform.

/cp
2016-06-17  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (validate_constexpr_redeclaration): Change pair of errors
to error + inform.
* error.c (dump_function_decl): Save the constexpr specifier too.

/testsuite
2016-06-17  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/constexpr-specialization.C: Adjust for dg-message
vs dg-error; test constexpr specifier too.

From-SVN: r237564

8 years agotree.c (builtin_valid_in_constant_expr_p): Test for DECL_BUILT_IN_CLASS equal to...
Jakub Jelinek [Fri, 17 Jun 2016 19:49:49 +0000 (21:49 +0200)]
tree.c (builtin_valid_in_constant_expr_p): Test for DECL_BUILT_IN_CLASS equal to BUILT_IN_NORMAL instead of just DECL_BUILT_IN.

* tree.c (builtin_valid_in_constant_expr_p): Test for
DECL_BUILT_IN_CLASS equal to BUILT_IN_NORMAL instead of just
DECL_BUILT_IN.
(bot_manip): Likewise.
* call.c (magic_varargs_p): Likewise.

From-SVN: r237563

8 years agodecl.c (grokfndecl): Change pair of errors to error + inform.
Paolo Carlini [Fri, 17 Jun 2016 19:10:35 +0000 (19:10 +0000)]
decl.c (grokfndecl): Change pair of errors to error + inform.

/cp
2016-06-17  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grokfndecl): Change pair of errors to error + inform.

/testsuite
2016-06-17  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/defaulted31.C: Adjust for dg-message vs dg-error.

From-SVN: r237562

8 years agolibstdc++/71545 fix debug checks in binary search algorithms
Jonathan Wakely [Fri, 17 Jun 2016 18:28:34 +0000 (19:28 +0100)]
libstdc++/71545 fix debug checks in binary search algorithms

PR libstdc++/71545
* include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
Remove irreflexive checks.
* include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
binary_search): Likewise.
* testsuite/25_algorithms/equal_range/partitioned.cc: New test.
* testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
* testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
* testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
* testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
Add constructor from array.

From-SVN: r237560

8 years agoFix memory leak in tree-ssa-reassoc.c
Martin Liska [Fri, 17 Jun 2016 18:05:56 +0000 (20:05 +0200)]
Fix memory leak in tree-ssa-reassoc.c

* tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.

From-SVN: r237559

8 years agoPR c++/71209 - wrong error with dependent base
Jason Merrill [Fri, 17 Jun 2016 16:35:33 +0000 (12:35 -0400)]
PR c++/71209 - wrong error with dependent base

* typeck.c (finish_class_member_access_expr): Avoid "not a base"
warning when there are dependent bases.

From-SVN: r237558

8 years ago[ARM][testsuite] Make arm_neon_fp16 depend on arm_neon_ok
Christophe Lyon [Fri, 17 Jun 2016 14:59:04 +0000 (14:59 +0000)]
[ARM][testsuite] Make arm_neon_fp16 depend on arm_neon_ok

2016-06-17  Christophe Lyon  <christophe.lyon@linaro.org>

* lib/target-supports.exp
(check_effective_target_arm_neon_fp16_ok_nocache): Call
arm_neon_ok and merge flags.  Fix temporary test name.
(check_effective_target_arm_neonv2_ok_nocache): Call arm_neon_ok
and merge flags.

From-SVN: r237557

8 years agoChange PRED_LOOP_EXIT from 92 to 85.
Martin Liska [Fri, 17 Jun 2016 14:28:57 +0000 (16:28 +0200)]
Change PRED_LOOP_EXIT from 92 to 85.

* analyze_brprob.py: Fix columns of script output.
* predict.def: PRED_LOOP_EXIT from 92 to 85.
* gcc.dg/predict-9.c: Fix dump scanning.

From-SVN: r237556

8 years agore PR tree-optimization/71354 (gcc.dg/vect/vect-23.c FAILs)
Bin Cheng [Fri, 17 Jun 2016 13:55:06 +0000 (13:55 +0000)]
re PR tree-optimization/71354 (gcc.dg/vect/vect-23.c FAILs)

PR tree-optimization/71354
* gcc.dg/vect/vect-23.c: Use vect_condition instead of vect_cond.

From-SVN: r237555

8 years agosemantics.c (handle_omp_array_sections_1): Don't ICE when processing_template_decl...
Jakub Jelinek [Fri, 17 Jun 2016 13:35:42 +0000 (15:35 +0200)]
semantics.c (handle_omp_array_sections_1): Don't ICE when processing_template_decl when checking for bitfields and unions.

* semantics.c (handle_omp_array_sections_1): Don't ICE when
processing_template_decl when checking for bitfields and unions.
Look through REFERENCE_REF_P as base of COMPONENT_REF.
(finish_omp_clauses): Look through REFERENCE_REF_P even for
array sections with COMPONENT_REF bases.

* testsuite/libgomp.c++/target-21.C: New test.

From-SVN: r237554

8 years ago[Patch ARM arm_neon.h] s/__FAST_MATH/__FAST_MATH__/g
James Greenhalgh [Fri, 17 Jun 2016 10:28:34 +0000 (10:28 +0000)]
[Patch ARM arm_neon.h] s/__FAST_MATH/__FAST_MATH__/g

gcc/

* config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
__FAST_MATH__.
(vaddq_f32): Likewise.
(vmul_f32): Likewise.
(vmulq_f32): Likewise.
(vsub_f32): Likewise.
(vsubq_f32): Likewise.

From-SVN: r237553

8 years agore PR tree-optimization/71347 (Performance drop after r235513 on x86-64 in 32-bit...
Bin Cheng [Fri, 17 Jun 2016 09:26:05 +0000 (09:26 +0000)]
re PR tree-optimization/71347 (Performance drop after r235513 on x86-64 in 32-bit mode.)

PR tree-optimization/71347
* tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
cost for all uses in group.

PR tree-optimization/71347
* gcc.dg/tree-ssa/pr71347.c: New test.

From-SVN: r237552

8 years agore PR tree-optimization/71354 (gcc.dg/vect/vect-23.c FAILs)
Bin Cheng [Fri, 17 Jun 2016 09:21:12 +0000 (09:21 +0000)]
re PR tree-optimization/71354 (gcc.dg/vect/vect-23.c FAILs)

PR tree-optimization/71354
* gcc.dg/vect/vect-23.c: Add VECT_COND requirement.

From-SVN: r237551

8 years agotree-vect-loop.c (vect_create_epilog_for_reduction): Only insert gimple seq if it...
Bin Cheng [Fri, 17 Jun 2016 09:17:39 +0000 (09:17 +0000)]
tree-vect-loop.c (vect_create_epilog_for_reduction): Only insert gimple seq if it's not empty.

* tree-vect-loop.c (vect_create_epilog_for_reduction): Only
insert gimple seq if it's not empty.

From-SVN: r237550

8 years agotree-vectorizer.h (struct dr_with_seg_len): Remove class member OFFSET.
Bin Cheng [Fri, 17 Jun 2016 09:05:05 +0000 (09:05 +0000)]
tree-vectorizer.h (struct dr_with_seg_len): Remove class member OFFSET.

* tree-vectorizer.h (struct dr_with_seg_len): Remove class
member OFFSET.
* tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
rather than OFFSET.
(comp_dr_with_seg_len_pair): Ditto.
(vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
struct dr_with_seg_len_pair against DR_OFFSET.
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
DR_OFFSET directly.

* gcc.dg/vect/vect-alias-check-1.c: New test.

From-SVN: r237549

8 years ago[AArch64] Handle iterator definitions with conditionals in geniterator.sh
Szabolcs Nagy [Fri, 17 Jun 2016 08:27:35 +0000 (08:27 +0000)]
[AArch64] Handle iterator definitions with conditionals in geniterator.sh

gcc/
2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>

* config/aarch64/geniterators.sh: Handle parenthesised conditions.

From-SVN: r237548

8 years agoDaily bump.
GCC Administrator [Fri, 17 Jun 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237547

8 years agopa.c (pa_output_pic_pcrel_sequence): New.
John David Anglin [Thu, 16 Jun 2016 21:44:55 +0000 (21:44 +0000)]
pa.c (pa_output_pic_pcrel_sequence): New.

* config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
(pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
(pa_output_millicode_call): Likewise.
(pa_output_call): Likewise.
(pa_output_indirect_call): Likewise.
(pa_asm_output_mi_thunk): Likewise.

From-SVN: r237543

8 years agoAdd Michael Collison with Write After Approval
Michael Collison [Thu, 16 Jun 2016 20:49:12 +0000 (20:49 +0000)]
Add Michael Collison with Write After Approval

From-SVN: r237542

8 years ago2016-06-16 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Thu, 16 Jun 2016 20:34:08 +0000 (20:34 +0000)]
2016-06-16  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/debug.h
(__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
(__glibcxx_requires_subscript): Move...
* include/debug/assertions.h: ...here and add __builtin_expect.
(_GLIBCXX_DEBUG_ONLY): Remove ; value.
* include/bits/stl_deque.h
(std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
(std::deque<>::front()): Add __glibcxx_requires_nonempty check.
(std::deque<>::back()): Likewise.
(std::deque<>::pop_front()): Likewise.
(std::deque<>::pop_back()): Likewise.
(std::deque<>::swap(deque&)): Add allocator check.
* include/bits/stl_vector.h
(std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
(std::vector<>::front()): Add __glibcxx_requires_nonempty check.
(std::vector<>::back()): Likewise.
(std::vector<>::pop_back()): Likewise.
(std::vector<>::swap(vector&)): Add allocator check.

From-SVN: r237541

8 years agodoc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo
Bernhard Reutner-Fischer [Thu, 16 Jun 2016 19:50:19 +0000 (21:50 +0200)]
doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo

From-SVN: r237540

8 years agoFix finding of a first match predictor
Martin Liska [Thu, 16 Jun 2016 19:25:56 +0000 (21:25 +0200)]
Fix finding of a first match predictor

* predict.c (combine_predictions_for_insn): When we find a first
match predictor, we should consider just predictors with
PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
DS theory predictor.
(combine_predictions_for_bb): Likewise.

From-SVN: r237539

8 years agogimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs with base of reference...
Jakub Jelinek [Thu, 16 Jun 2016 19:03:05 +0000 (21:03 +0200)]
gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs with base of reference to struct.

* gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
with base of reference to struct.

* parser.c (cp_parser_omp_var_list_no_open): Call
convert_from_reference before cp_parser_postfix_dot_deref_expression.
* semantics.c (finish_omp_clauses): Don't ICE when
processing_template_decl when checking for bitfields and unions.
Look through REFERENCE_REF_P as base of COMPONENT_REF.

* testsuite/libgomp.c++/target-20.C: New test.

From-SVN: r237538

8 years agoinvoke.texi (x86 Options): Document -m80387 and -mhard-float.
Uros Bizjak [Thu, 16 Jun 2016 17:56:45 +0000 (19:56 +0200)]
invoke.texi (x86 Options): Document -m80387 and -mhard-float.

* doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.

From-SVN: r237537

8 years agoavr.c (avr_asm_init_sections): Remove setup of progmem_swtable_section.
Senthil Kumar Selvaraj [Thu, 16 Jun 2016 16:50:40 +0000 (16:50 +0000)]
avr.c (avr_asm_init_sections): Remove setup of progmem_swtable_section.

gcc/ChangeLog:
        * config/avr/avr.c (avr_asm_init_sections): Remove setup of
progmem_swtable_section.
        (progmem_swtable_section): Remove.
        (avr_asm_function_rodata_section): Remove.
        (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
        * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.

gcc/testsuite/ChangeLog:
        * gcc.target/avr/pr71151-1.c: New test.
        * gcc.target/avr/pr71151-2.c: New test.
        * gcc.target/avr/pr71151-3.c: New test.
        * gcc.target/avr/pr71151-4.c: New test.
        * gcc.target/avr/pr71151-5.c: New test.
        * gcc.target/avr/pr71151-6.c: New test.
        * gcc.target/avr/pr71151-7.c: New test.
        * gcc.target/avr/pr71151-8.c: New test.
        * gcc.target/avr/pr71151-common.h: New test.

From-SVN: r237536

8 years agodriver-i386.c (host_detect_local_cpu): Set PROCESSOR_K8 for signature_CENTAUR_ebx...
Jocelyn Mayer [Thu, 16 Jun 2016 16:09:30 +0000 (18:09 +0200)]
driver-i386.c (host_detect_local_cpu): Set PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.

* config/i386/driver-i386.c (host_detect_local_cpu): Set
PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
<case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
signature_CENTAUR_ebx.
* config/i386/i386.c (ix86_option_override_internal): Add
definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
* doc/invoke.texi: Document new VIA -march entries.

From-SVN: r237534

8 years agoIntroduce fortran loop preheader
Martin Liska [Thu, 16 Jun 2016 16:05:25 +0000 (18:05 +0200)]
Introduce fortran loop preheader

* predict.def: Add fortran loop preheader predictor.
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
fold IFN_BUILTIN_EXPECT with a known constant argument.
* trans-stmt.c (gfc_trans_simple_do): Predict the edge.
* gfortran.dg/predict-1.f90: New test.

From-SVN: r237533

8 years agoAdd 'Fortran' to display text of all PRED_FORTRAN_*
Martin Liska [Thu, 16 Jun 2016 16:01:54 +0000 (18:01 +0200)]
Add 'Fortran' to display text of all PRED_FORTRAN_*

* predict.def: Add 'Fortran' to display text of all
PRED_FORTRAN_* predictors.

From-SVN: r237532

8 years agoProvide swappable traits (p0185r1)
Daniel Kruegler [Thu, 16 Jun 2016 15:07:19 +0000 (15:07 +0000)]
Provide swappable traits (p0185r1)

2016-06-16  Daniel Kruegler  <daniel.kruegler@gmail.com>

Provide swappable traits (p0185r1)
* include/std/type_traits (is_swappable, is_nothrow_swappable,
is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
is_nothrow_swappable_v, is_swappable_with_v,
is_nothrow_swappable_with_v): New.
* include/bits/stl_pair.h: Use it as per p0185r1.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* include/std/tuple: Likewise.
* include/std/array: Likewise. Fix zero-size member swap.
* include/bits/hashtable.h: Use __and_.
* testsuite/20_util/is_nothrow_swappable/requirements/
explicit_instantiation.cc: Change test options to std=gnu++17.
* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
* testsuite/20_util/is_swappable/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_swappable/value.cc: Likewise.
* testsuite/20_util/is_nothrow_swappable/requirements/
explicit_instantiation_ext.cc: New.
* testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
New.
* testsuite/20_util/is_nothrow_swappable/value.h: New.
* testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
* testsuite/20_util/is_nothrow_swappable_with/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
New.
* testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
* testsuite/20_util/is_swappable/requirements/
explicit_instantiation_ext.cc: New.
* testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
* testsuite/20_util/is_swappable/value.h: New.
* testsuite/20_util/is_swappable/value_ext.cc: New.
* testsuite/20_util/is_swappable_with/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
* testsuite/20_util/is_swappable_with/value.cc: New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r237531

8 years agore PR target/71242 ([ia64] Missing built-in functions for float128 NaNs)
Uros Bizjak [Thu, 16 Jun 2016 14:32:40 +0000 (16:32 +0200)]
re PR target/71242 ([ia64] Missing built-in functions for float128 NaNs)

PR target/71242
* config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
[IA64_BUILTIN_NANSQ]: Ditto.
(ia64_fold_builtin): New function.
(TARGET_FOLD_BUILTIN): New define.
(ia64_init_builtins) Declare const_string_type node.
Add __builtin_nanq and __builtin_nansq builtin functions.
(ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.

testsuite/ChangeLog:

PR target/71242
* testsuite/gcc.dg/torture/float128-nan.c: Also run on ia64-*-*.

From-SVN: r237530

8 years agomsp430-opts.h (msp430_hwmult_types): Add MSP430_HWMULT_ prefix to enum values.
Nick Clifton [Thu, 16 Jun 2016 14:27:59 +0000 (14:27 +0000)]
msp430-opts.h (msp430_hwmult_types): Add MSP430_HWMULT_ prefix to enum values.

* config/msp430/msp430-opts.h (msp430_hwmult_types): Add
MSP430_HWMULT_ prefix to enum values.
(msp430_regions): Add MSP430_REGION_ prefix to enum values.
* config/msp430/msp430.c: Update use of enum values.
* config/msp430/msp430.md: Likewise.
* config/msp430/msp430.opt: Likewise.

From-SVN: r237529

8 years agoRemove trailing whitespace from libstdc++ headers
Jonathan Wakely [Thu, 16 Jun 2016 13:47:35 +0000 (14:47 +0100)]
Remove trailing whitespace from libstdc++ headers

* include/std/array: Remove trailing whitespace.
* include/std/atomic: Likewise.
* include/std/bitset: Likewise.
* include/std/chrono: Likewise.
* include/std/complex: Likewise.
* include/std/condition_variable: Likewise.
* include/std/fstream: Likewise.
* include/std/functional: Likewise.
* include/std/future: Likewise.
* include/std/iomanip: Likewise.
* include/std/iosfwd: Likewise.
* include/std/istream: Likewise.
* include/std/limits: Likewise.
* include/std/ratio: Likewise.
* include/std/scoped_allocator: Likewise.
* include/std/sstream: Likewise.
* include/std/stdexcept: Likewise.
* include/std/string: Likewise.
* include/std/system_error: Likewise.
* include/std/thread: Likewise.
* include/std/tuple: Likewise.
* include/std/type_traits: Likewise.
* include/std/utility: Likewise.
* include/std/valarray: Likewise.
* include/std/vector: Likewise.

From-SVN: r237528

8 years agopr36648.cc: Disable cunrolli
Jan Hubicka [Thu, 16 Jun 2016 12:54:31 +0000 (14:54 +0200)]
pr36648.cc: Disable cunrolli

* g++.dg/vect/pr36648.cc: Disable cunrolli
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
of comparsions in the last iteration.

From-SVN: r237527

8 years agoOptimize inserting value_type into std::vector
Jonathan Wakely [Thu, 16 Jun 2016 12:42:21 +0000 (13:42 +0100)]
Optimize inserting value_type into std::vector

* include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
new overloaded functions.
* include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
to avoid creating a redundant temporary.
* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
test.

From-SVN: r237526

8 years ago[ARC] Use GOTOFFPC relocation for pc-relative accesses.
Claudiu Zissulescu [Thu, 16 Jun 2016 12:29:29 +0000 (14:29 +0200)]
[ARC] Use GOTOFFPC relocation for pc-relative accesses.

gcc/
2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
    Joern Rennecke  <joern.rennecke@embecosm.com>

* config/arc/arc.c (arc_print_operand_address): Handle pc-relative
addresses.
(arc_needs_pcl_p): Add GOTOFFPC.
(arc_legitimate_pic_addr_p): Likewise.
(arc_output_pic_addr_const): Likewise.
(arc_legitimize_pic_address): Generate a pc-relative address using
GOTOFFPC.
(arc_output_libcall): Use @pcl syntax.
(arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
* config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
(*movsi_insn): Use @pcl syntax.
(doloop_begin_i): Likewise.

Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com>
From-SVN: r237525

8 years agoFix code emission for FAIL_ALLOC predictor
Martin Liska [Thu, 16 Jun 2016 12:21:55 +0000 (14:21 +0200)]
Fix code emission for FAIL_ALLOC predictor

* predict.def: Define a new predictor.
* trans-array.c (gfc_array_allocate): Do not generate expect
stmt.
* trans.c (gfc_allocate_using_malloc): Properly set FAIL_ALLOC
predictor for malloc return value.
(gfc_allocate_allocatable): Use REALLOC predictor instead of
FAIL_ALLOC.
(gfc_deallocate_with_status): Likewise.

From-SVN: r237524

8 years ago[multiple changes]
Arnaud Charlet [Thu, 16 Jun 2016 10:39:14 +0000 (12:39 +0200)]
[multiple changes]

2016-06-16  Gary Dismukes  <dismukes@adacore.com>

* sem_util.adb: Minor typo fix.

2016-06-16  Emmanuel Briot  <briot@adacore.com>

* s-regpat.adb: Further fix for invalid index in GNAT.Regexp.

2016-06-16  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch13.adb (Validate_Address_Clauses): Use the same logic to
issue the warning on the offset for the size as for the alignment
and tweak the wording for the sake of consistency.

2016-06-16  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Check_Class_Wide_COndition): New procedure,
subsidiary of Analyze_Pre_Post_ Condition_In_Decl_Part, to
check legality rules that follow from the revised semantics of
class-wide pre/postconditions described in AI12-0113.
(Build_Pragma_Check_Equivalent): Abstract subprogram declarations
must be included in list of overriding primitives of a derived
type.

From-SVN: r237521

8 years ago[ARC] Fix option text.
Claudiu Zissulescu [Thu, 16 Jun 2016 10:37:37 +0000 (12:37 +0200)]
[ARC] Fix option text.

gcc/
2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.opt (mtp-regno): Update text.

From-SVN: r237519

8 years agoMinor reformatting.
Arnaud Charlet [Thu, 16 Jun 2016 10:29:15 +0000 (12:29 +0200)]
Minor reformatting.

From-SVN: r237518

8 years ago[multiple changes]
Arnaud Charlet [Thu, 16 Jun 2016 10:29:00 +0000 (12:29 +0200)]
[multiple changes]

2016-06-16  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (May_Be_Lvalue): An actual in an unexpanded
attribute reference 'Read is an assignment and must be considered
a modification of the object.

2016-06-16  Gary Dismukes  <dismukes@adacore.com>

* einfo.adb: Minor editorial.

From-SVN: r237517

8 years ago[multiple changes]
Arnaud Charlet [Thu, 16 Jun 2016 10:27:34 +0000 (12:27 +0200)]
[multiple changes]

2016-06-16  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Overridden_Ancestor): Clean up code to use
controlling type of desired primitive rather than its scope,
because the primitive that inherits the classwide condition may
comes from several derivation steps.

2016-06-16  Javier Miranda  <miranda@adacore.com>

* einfo.adb (Set_Default_Init_Cond_Procedure): Allow calls setting
this attribute to Empty (only if the attribute has not been set).
* sem_util.adb (Build_Default_Init_Cond_Procedure_Body):
No action needed if the spec was not built.
(Build_Default_Init_Cond_Procedure_Declaration): The spec is
not built if DIC is set to NULL or no condition was specified.
* exp_ch3.adb (Expand_N_Object_Declaration): Check availability
of the Init_Cond procedure before generating code to call it.

2016-06-16  Emmanuel Briot  <briot@adacore.com>

* s-regpat.adb: Fix invalid index check when matching end-of-line
on substrings.

2016-06-16  Arnaud Charlet  <charlet@adacore.com>

* gnat1drv.adb: Minor reformatting.

From-SVN: r237516

8 years ago[multiple changes]
Arnaud Charlet [Thu, 16 Jun 2016 10:25:47 +0000 (12:25 +0200)]
[multiple changes]

2016-06-16  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Check_Entry_Contracts): New procedure, subsidiary
of Analyze_Declarations, that performs pre-analysis of
pre/postconditions on entry declarations before full analysis
is performed after entries have been converted into procedures.
Done solely to capture semantic errors.
* sem_attr.adb (Analyze_Attribute, case 'Result): Add guard to
call to Denote_Same_Function.

2016-06-16  Emmanuel Briot  <briot@adacore.com>

* g-comlin.adb: Fix minor memory leak in GNAT.Command_Line.

2016-06-16  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch7.adb (Find_Last_Init): Remove obsolete code. The
logic is now performed by Process_Object_Declaration.
(Process_Declarations): Recognize a controlled deferred
constant which is in fact initialized by means of a
build-in-place function call as needing finalization actions.
(Process_Object_Declaration): Insert the counter after the
build-in-place initialization call for a controlled object. This
was previously done in Find_Last_Init.
* exp_util.adb (Requires_Cleanup_Actions): Recognize a controlled
deferred constant which is in fact initialized by means of a
build-in-place function call as needing finalization actions.

2016-06-16  Justin Squirek  <squirek@adacore.com>

* exp_aggr.adb (Expand_Array_Aggregate): Minor comment changes and
additional style fixes.
* exp_ch7.adb: Minor typo fixes and reformatting.

From-SVN: r237515

8 years ago[multiple changes]
Arnaud Charlet [Thu, 16 Jun 2016 10:23:06 +0000 (12:23 +0200)]
[multiple changes]

2016-06-16  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb (Analyze_Object_Declaration): Add a missing check
for optimized aggregate arrays with qualified expressions.
* exp_aggr.adb (Expand_Array_Aggregate): Fix block and
conditional statement in charge of deciding whether to perform
in-place expansion. Specifically, use Parent_Node to jump over
the qualified expression to the object declaration node. Also,
a check has been inserted to skip the optimization if SPARK 2005
is being used in strict adherence to RM 4.3(5).

2016-06-16  Tristan Gingold  <gingold@adacore.com>

* sem_prag.adb (Analyze_Pragma): Simplify code
for Pragma_Priority.

From-SVN: r237514

8 years agore PR target/71554 (Miscompilation of __builtin_mul_overflow on i686)
Jakub Jelinek [Thu, 16 Jun 2016 10:20:45 +0000 (12:20 +0200)]
re PR target/71554 (Miscompilation of __builtin_mul_overflow on i686)

PR target/71554
* gcc.c-torture/execute/pr71554.c: New test.

From-SVN: r237512

8 years agosem_util.ads (Indexed_Component_Bit_Offset): Declare.
Eric Botcazou [Thu, 16 Jun 2016 10:19:51 +0000 (10:19 +0000)]
sem_util.ads (Indexed_Component_Bit_Offset): Declare.

2016-06-16  Eric Botcazou  <ebotcazou@adacore.com>

* sem_util.ads (Indexed_Component_Bit_Offset): Declare.
* sem_util.adb (Indexed_Component_Bit_Offset): New
function returning the offset of an indexed component.
(Has_Compatible_Alignment_Internal): Call it.
* sem_ch13.adb (Offset_Value): New function returning the offset of an
Address attribute reference from the underlying entity.
(Validate_Address_Clauses): Call it and take the offset into
account for the size warning.

From-SVN: r237511

8 years agobindgen.adb, [...]: Minor reformatting.
Hristian Kirtchev [Thu, 16 Jun 2016 10:12:26 +0000 (10:12 +0000)]
bindgen.adb, [...]: Minor reformatting.

2016-06-16  Hristian Kirtchev  <kirtchev@adacore.com>

* bindgen.adb, exp_util.adb, sem_ch9.adb, sem_util.adb: Minor
reformatting.

From-SVN: r237510

8 years agosem_ch9.adb, [...]: Minor reformatting and typo fixes.
Gary Dismukes [Thu, 16 Jun 2016 10:11:23 +0000 (10:11 +0000)]
sem_ch9.adb, [...]: Minor reformatting and typo fixes.

2016-06-16  Gary Dismukes  <dismukes@adacore.com>

* sem_ch9.adb, sem_util.ads, sem_res.adb: Minor reformatting and typo
fixes.

From-SVN: r237509

8 years ago[multiple changes]
Arnaud Charlet [Thu, 16 Jun 2016 09:52:17 +0000 (11:52 +0200)]
[multiple changes]

2016-06-16  Javier Miranda  <miranda@adacore.com>

* sem_res.adb (Resolve): Under relaxed RM semantics silently
replace occurrences of null by System.Null_Address.
* sem_ch4.adb (Analyze_One_Call, Operator_Check): Under
relaxed RM semantics silently replace occurrences of null by
System.Null_Address.
* sem_util.ad[sb] (Null_To_Null_Address_Convert_OK): New subprogram.
(Replace_Null_By_Null_Address): New subprogram.

2016-06-16  Bob Duff  <duff@adacore.com>

* exp_util.adb (Is_Controlled_Function_Call):
This was missing the case where the call is in prefix format,
with named notation, as in Obj.Func (Formal => Actual).

From-SVN: r237508

8 years ago[multiple changes]
Arnaud Charlet [Thu, 16 Jun 2016 09:44:04 +0000 (11:44 +0200)]
[multiple changes]

2016-06-16  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb, inline.adb, sem_attr.adb, sem_elab.adb: Minor
reformatting.

2016-06-16  Bob Duff  <duff@adacore.com>

* sem_util.adb (Collect): Avoid Empty Full_T. Otherwise Etype
(Full_T) crashes when assertions are on.
* sem_ch12.adb (Matching_Actual): Correctly handle the case where
"others => <>" appears in a generic formal package, other than
by itself.

2016-06-16  Arnaud Charlet  <charlet@adacore.com>

* usage.adb: Remove confusing comment in usage line.
* bindgen.adb: Fix binder generated file in codepeer mode wrt
recent additions.

2016-06-16  Javier Miranda  <miranda@adacore.com>

* restrict.adb (Check_Restriction_No_Use_Of_Entity): Avoid
never-ending loop, code cleanup; adding also support for Text_IO.
* sem_ch8.adb (Find_Expanded_Name): Invoke
Check_Restriction_No_Use_Entity.

2016-06-16  Tristan Gingold  <gingold@adacore.com>

* exp_ch9.adb: Minor comment fix.
* einfo.ads (Has_Protected): Clarify comment.
* sem_ch9.adb (Analyze_Protected_Type_Declaration): Do not
consider private protected types declared in the runtime for
the No_Local_Protected_Types restriction.

From-SVN: r237507

8 years ago[PATCH][AARCH64]Fix typo in aarch64_legitimize_address.
Renlin Li [Thu, 16 Jun 2016 09:37:31 +0000 (09:37 +0000)]
[PATCH][AARCH64]Fix typo in aarch64_legitimize_address.

gcc/
2016-06-16  renlin li  <renlin.li@arm.com>

* config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.

From-SVN: r237506

8 years agoi386.md (setcc + movzbl peephole2): Use reg_set_p.
Jakub Jelinek [Thu, 16 Jun 2016 09:27:41 +0000 (11:27 +0200)]
i386.md (setcc + movzbl peephole2): Use reg_set_p.

* config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
(setcc + and peephole2): Likewise.

From-SVN: r237504

8 years agore PR rtl-optimization/71532 (FAIL: gfortran.dg/select_char_1.f90 -O2 execution...
Jakub Jelinek [Thu, 16 Jun 2016 07:11:37 +0000 (09:11 +0200)]
re PR rtl-optimization/71532 (FAIL: gfortran.dg/select_char_1.f90   -O2  execution test)

PR rtl-optimization/71532
* cse.c (cse_insn): For const/pure calls, invalidate argument passing
memory slots.

* gcc.dg/torture/pr71532.c: New test.

From-SVN: r237503

8 years agoDaily bump.
GCC Administrator [Thu, 16 Jun 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237502

8 years ago* MAINTAINERS: Add myself as cygwin/mingw-w64 maintainer.
Jonathan Yong [Wed, 15 Jun 2016 22:54:38 +0000 (22:54 +0000)]
* MAINTAINERS:  Add myself as cygwin/mingw-w64 maintainer.

From-SVN: r237498

8 years agodecl.c (wrapup_globals_for_namespace): Use DECL_SOURCE_LOCATION and "%qF" in warning_...
Paolo Carlini [Wed, 15 Jun 2016 20:13:39 +0000 (20:13 +0000)]
decl.c (wrapup_globals_for_namespace): Use DECL_SOURCE_LOCATION and "%qF" in warning_at instead of "%q+F" in warning.

2016-06-15  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (wrapup_globals_for_namespace): Use DECL_SOURCE_LOCATION and
"%qF" in warning_at instead of "%q+F" in warning.
(check_redeclaration_exception_specification): Likewise in pedwarn
(and error, inform, for consistency).
* call.c (joust): Likewise.

From-SVN: r237496

8 years ago2016-06-15 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Wed, 15 Jun 2016 20:09:56 +0000 (20:09 +0000)]
2016-06-15  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_deque.h
(std::deque<>::operator=): Call _M_assign_aux.
(std::deque<>::assign(initializer_list<>)): Likewise.
(std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
(std::deque<>::insert(const_iterator, initializer_list<>)):
Call _M_range_insert_aux.
(std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
Likewise.
(std::deque<>::_M_fill_assign): Call _M_fill_insert.
(std::deque<>::_M_move_assign2): Call _M_assign_aux.
* include/bits/deque.tcc
(std::deque<>::operator=): Call _M_range_insert_aux.
(std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
Likewise.
* include/bits/stl_vector.h
(std::vector<>::operator=): Call _M_assign_aux.
(std::vector<>::assign(initializer_list<>)): Likewise.
(std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
(std::vector<>::insert(const_iterator, initializer_list<>)):
Call _M_range_insert.
* include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.

From-SVN: r237495

8 years agovsx.md (VSINT_84): Add DImode to enable loading DImode constants with XXSPLTIB in...
Michael Meissner [Wed, 15 Jun 2016 18:17:58 +0000 (18:17 +0000)]
vsx.md (VSINT_84): Add DImode to enable loading DImode constants with XXSPLTIB in vector registers.

[gcc]
2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
DImode constants with XXSPLTIB in vector registers.
(vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
vsx_extract_<mode>_internal{1,2} into a single insn that handles
direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
extraction of the element at the top of the register as a scalar
value.
(vsx_extract_<mode>_internal1): Likewise.
(vsx_extract_<mode>_internal2): Likewise.
* config/rs6000/constraints.md (wi constraint): Remove a comment
about DImode not being allowed in Altivec registers.
(wB constraint): New constraint for constants that can be
generated in Altivec registers with VSPLTISW/VUPKHSW.
* config/rs6000/predicates.md (xxspltib_constant_split): Update
comments.
(xxspltib_constant_nosplit): Likewise.
* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
support for -mupper-regs-di to enable DImode to go into Altivec
registers.
(POWERPC_MASKS): Likewise.
(power7 cpu): Likewise.
* config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
for DImode being allowed in Altivec registers.  Update wi/wj
constraints.  Set scalar_in_vmx_p flag.
(rs6000_option_override_internal): Add checks for -mupper-regs-di.
(xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
(rs6000_opt_masks): Add -mupper-regs-di.
* config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
direct move to use wi and not wj.
(lfiwzx): Likewise.
(floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
alternative.
(floatunssi<mode>2_lfiwzx_mem): Likewise.
(fix_trunc<mode>di2_fctidz): Change second alternative to allow
any VSX register, instead of just Altivec registers, to allow
either operand to be an Altivec register or both.
(fixuns_trunc<mode>di2_fctiduz): Likewise.
(movdi_internal32): Add support for -mupper-regs-di.  Add support
to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
the alternatives and attributes to be lined up to be easier to
read.
(movdi_internal64): Likewise.
(64-bit DImode splitters): Change predicates to only split loading
up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
load constants in ISA 3.0 or ISA 2.07 respectively.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
-mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
mention -mcpu=power9 sets these options.
* doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
wB constraint.

[gcc/testsuite]
2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/p9-dimode1.c: New test.
* gcc.target/powerpc/p9-dimode2.c: Likewise.

From-SVN: r237490

8 years ago* gcc.c-torture/compile/20160615-1.c: New test.
Jakub Jelinek [Wed, 15 Jun 2016 17:10:44 +0000 (19:10 +0200)]
* gcc.c-torture/compile/20160615-1.c: New test.

From-SVN: r237489

8 years ago* g++.dg/cpp0x/ref-qual17.C: New test.
Jakub Jelinek [Wed, 15 Jun 2016 17:10:02 +0000 (19:10 +0200)]
* g++.dg/cpp0x/ref-qual17.C: New test.

From-SVN: r237488

8 years agoCorrect Changelog entry:
Denis Chertykov [Wed, 15 Jun 2016 16:43:35 +0000 (19:43 +0300)]
Correct Changelog entry:

PR target/67353
* config/avr/avr.c (avr_set_current_function): Warn misspelled
interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
* config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
by default to warn misspelled interrupt/ signal handler.
* doc/invoke.texi (AVR Options): Document it. Update description
for -nodevicelib option.

From-SVN: r237487

8 years agore PR target/67353 ([avr] Option-ize Warning "appears to be a misspelled signal ...
Pitchumani Sivanupandi [Wed, 15 Jun 2016 16:40:07 +0000 (16:40 +0000)]
re PR target/67353 ([avr] Option-ize Warning "appears to be a misspelled signal / interrupt handler")

    PR target/67353
    * config/avr/avr.c (avr_set_current_function): Warn misspelled
    interrupt/ signal handler if -Wmisspelled-isr flag is enabled.

From-SVN: r237486

8 years ago[AArch64][obvious] Clean up parentheses and use GET_MODE_UNIT_BITSIZE in a couple...
Kyrylo Tkachov [Wed, 15 Jun 2016 16:07:34 +0000 (16:07 +0000)]
[AArch64][obvious] Clean up parentheses and use GET_MODE_UNIT_BITSIZE in a couple of patterns

* config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
up parentheses.  Use GET_MODE_UNIT_BITSIZE.
(aarch64_<sur>shll2_n<mode>): Likewise.

From-SVN: r237485

8 years agore PR middle-end/71529 ([CHKP] ICE in expand_expr_real_1)
Ilya Enkovich [Wed, 15 Jun 2016 15:49:40 +0000 (15:49 +0000)]
re PR middle-end/71529 ([CHKP] ICE in expand_expr_real_1)

gcc/

PR middle-end/71529
* ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
DECL_CONTEXT for copied arguments.

gcc/testsuite/

PR middle-end/71529
* gcc.target/i386/pr71529.C: New test.

From-SVN: r237484

8 years agore PR tree-optimization/71483 (g++ ICE at -O3 on valid code on x86_64-linux-gnu with...
Alan Hayward [Wed, 15 Jun 2016 15:45:47 +0000 (15:45 +0000)]
re PR tree-optimization/71483 (g++ ICE at -O3 on valid code on x86_64-linux-gnu with “Floating point exception”)

2016-06-15  Alan Hayward  <alan.hayward@arm.com>

gcc/
PR tree-optimization/71483
* tree-vect-loop.c (vectorizable_live_operation): Pick correct index
for slp

testsuite/
PR tree-optimization/71483
* g++.dg/vect/pr71483.c: New

From-SVN: r237483

8 years agore PR c++/70202 (ICE on invalid code on x86_64-linux-gnu in build_simple_base_path...
Paolo Carlini [Wed, 15 Jun 2016 15:23:40 +0000 (15:23 +0000)]
re PR c++/70202 (ICE on invalid code on x86_64-linux-gnu in build_simple_base_path, at cp/class.c:579)

/cp
2016-06-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70202
* decl.c (xref_basetypes): Revert r117839 changes; add fix-up
code at the end of the for loop; also revert r159637 changes,
add back the gcc_assert.
* cp-tree.h (xref_basetypes): Adjust declaration.
* parser.c (cp_parser_class_head): Adjust xref_basetypes call.

/testsuite
2016-06-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70202
* g++.dg/inherit/crash6.C: New.
* g++.dg/inherit/union2.C: Likewise.
* g++.dg/inherit/virtual12.C: Likewise.
* g++.dg/inherit/virtual13.C: Likewise.
* g++.dg/inherit/virtual1.C: Tweak dg-* tests.

From-SVN: r237482