[Bug tree-optimization/65494] [5 Regression] Loop is not vectorized because of operand canonicalization.

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65494

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Mon Mar 23 12:47:54 2015
New Revision: 221592

URL: https://gcc.gnu.org/viewcvs?rev=221592root=gccview=rev
Log:
2015-03-23  Richard Biener  rguent...@suse.de

PR tree-optimization/65494
* tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
matches here.
(vect_analyze_slp_instance): But do that here, always and once.

* gcc.dg/vect/pr65494.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/vect/pr65494.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-slp.c


[Bug libgcc/57221] [4.8/4.9/5 regression] libgcc symbol visibility changes break Android blobs

2015-03-23 Thread mkuvyrkov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57221

--- Comment #9 from Maxim Kuvyrkov mkuvyrkov at gcc dot gnu.org ---
Hi Bero,

I'm working on reproducing this.  How do you build the android toolchain?  Is
it manual or do you have this scripted?

In particular, do you use a pre-generated sysroot with Bionic or do you build
the C library as part of the toolchain?

Thanks.


[Bug target/65504] [4.9/5 Regression] select case with strings and -fgcse -O

2015-03-23 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65504

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
   Assignee|ebotcazou at gcc dot gnu.org   |unassigned at gcc dot 
gnu.org


[Bug libstdc++/24196] Using string instances to pass arguments to dlls fails

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24196
Bug 24196 depends on bug 24882, which changed state.

Bug 24882 Summary: [meta-bug] Non-refcounted, moveable basic_string
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24882

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED


[Bug libstdc++/16612] empty basic_strings can't live in shared memory

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=16612
Bug 16612 depends on bug 24882, which changed state.

Bug 24882 Summary: [meta-bug] Non-refcounted, moveable basic_string
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24882

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED


[Bug libstdc++/21334] Lack of Posix compliant thread safety in std::basic_string

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21334
Bug 21334 depends on bug 24882, which changed state.

Bug 24882 Summary: [meta-bug] Non-refcounted, moveable basic_string
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24882

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED


[Bug libstdc++/19495] basic_string::_M_rep() can produce an unnaturally aligned pointer to _Rep

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19495
Bug 19495 depends on bug 24882, which changed state.

Bug 24882 Summary: [meta-bug] Non-refcounted, moveable basic_string
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24882

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED


[Bug libstdc++/24882] [meta-bug] Non-refcounted, moveable basic_string

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24882

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |5.0

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
Done for GCC 5


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
 CC||jakub at gcc dot gnu.org


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||charlet at gcc dot gnu.org,
   ||ebotcazou at gcc dot gnu.org
   Assignee|jakub at gcc dot gnu.org   |unassigned at gcc dot 
gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Ah, except ada_demangle is also exported from libgnat*.so - wonder why the RTS
is built with IN_GCC.
In that case, guess the Ada folks need to decide which one of the two to keep,
and/or if one of them (either adadecode.[ch], or {include,libiberty}/* one
shouldn't be renamed to something else.
I haven't found any uses of either of those, except the libiberty demangler
that calls ada_demangle but it could very well call a static routine instead.


[Bug c++/64931] ICE on function with deduced return type and input is instantiated template class

2015-03-23 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64931

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Slightly more reduced:

templatetypename T
struct S {
  T data[32];
};

auto
foo (Sint  x)
{
  return x;
}

The problem is that we create a RESULT_DECL with NULL DECL_SIZE, and gimplifier
ICEs on that.  The RESULT_DECL is created in convert_for_initialization called
from check_return_expr I think.


[Bug target/65504] [4.9/5 Regression] select case with strings and -fgcse -O

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65504

--- Comment #17 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35108
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35108action=edit
gcc5-pr65504.patch

Patch I'm going to bootstrap/regtest now.


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35109
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35109action=edit
gcc5-pr65522.patch

Seems the ada/adadecode.[ch] (ada_demangle) function is totally unused.


[Bug libstdc++/21334] Lack of Posix compliant thread safety in std::basic_string

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21334

--- Comment #51 from Jonathan Wakely redi at gcc dot gnu.org ---
This is no longer an issue when using the new non-reference-counted std::string
implementation in GCC 5.


[Bug target/65456] powerpc64le autovectorized copy loop missed optimization

2015-03-23 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65456

--- Comment #11 from Bill Schmidt wschmidt at gcc dot gnu.org ---
(In reply to David Edelsohn from comment #10)
 I believe that the choice to scalarize is based on the vector cost model.

Hm, that would be interesting.  The applied patch changes the cost model to
favor the unaligned store on VSX.  Might be a place where it should be using
the cost model but perhaps isn't?  I'll look into it later this week.


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

--- Comment #4 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
 Ah, except ada_demangle is also exported from libgnat*.so - wonder why the
 RTS is built with IN_GCC.

This is explained in gcc-interface/Makefile.in.

 In that case, guess the Ada folks need to decide which one of the two to
 keep, and/or if one of them (either adadecode.[ch], or {include,libiberty}/*
 one shouldn't be renamed to something else.

I think your patch is fine, but I'll let Arno approve it.


[Bug c++/64570] error: non-trivial conversion at assignment

2015-03-23 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64570

--- Comment #5 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to David Binderman from comment #4)
 Seems ok with trunk dated 20150322.

No, it still fails. You're probably using an --enable-checking=release
compiler...


[Bug fortran/60255] [OOP] Deferred character length variable at (1) cannot yet be associated with unlimited polymorphic entities

2015-03-23 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60255

--- Comment #9 from vehre at gcc dot gnu.org ---
Author: vehre
Date: Mon Mar 23 11:58:49 2015
New Revision: 221591

URL: https://gcc.gnu.org/viewcvs?rev=221591root=gccview=rev
Log:
gcc/fortran/ChangeLog

2015-03-23  Andre Vehreschild  ve...@gmx.de
Janus Weil  ja...@gcc.gnu.org

Backported from mainline
PR fortran/60255
Initial patch version: Janus Weil
* class.c (gfc_get_len_component): New.
(gfc_build_class_symbol): Add _len component to unlimited
polymorphic entities.
(find_intrinsic_vtab): Removed emitting of error message.
* gfortran.h: Added prototype for gfc_get_len_component.
* simplify.c (gfc_simplify_len): Use _len component where
available.
* trans-expr.c (gfc_class_len_get): New.
(gfc_conv_intrinsic_to_class): Add handling for deferred
character arrays.
(gfc_conv_structure): Treat _len component correctly.
(gfc_conv_expr): Prevent bind_c handling when not required.
(gfc_trans_pointer_assignment): Propagate _len component.
* trans-stmt.c (class_has_len_component): New.
(trans_associate_var): _len component treatement for associate
context.
(gfc_trans_allocate): Same as for trans_associate_var()
* trans.h: Add prototype for gfc_class_len_get.

gcc/testsuite/ChangeLog

2015-03-20  Andre Vehreschild  ve...@gmx.de

Backport from mainline
PR fortran/60255
* gfortran.dg/unlimited_polymorphic_2.f03: Removed error.
Converted from dos to unix line endings.
* gfortran.dg/unlimited_polymorphic_20.f03: New test.


Added:
   
branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/unlimited_polymorphic_20.f03
Modified:
branches/gcc-4_9-branch/gcc/fortran/ChangeLog
branches/gcc-4_9-branch/gcc/fortran/class.c
branches/gcc-4_9-branch/gcc/fortran/gfortran.h
branches/gcc-4_9-branch/gcc/fortran/simplify.c
branches/gcc-4_9-branch/gcc/fortran/trans-expr.c
branches/gcc-4_9-branch/gcc/fortran/trans-stmt.c
branches/gcc-4_9-branch/gcc/fortran/trans.h
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
   
branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/unlimited_polymorphic_2.f03


[Bug c++/64570] error: non-trivial conversion at assignment

2015-03-23 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64570

--- Comment #4 from David Binderman dcb314 at hotmail dot com ---
Seems ok with trunk dated 20150322.


[Bug fortran/64952] Missing temporary in assignment from elemental function

2015-03-23 Thread mikael at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64952

--- Comment #7 from Mikael Morin mikael at gcc dot gnu.org ---
(In reply to paul.richard.tho...@gmail.com from comment #6)
 Thanks for finishing the job.
I have yet to fix 4.9 as well, as you suggested. In a week or so.

 Will you post a message on the clf
 thread, or would you like me to do it?
 
It's better if you do it, I don't follow clf discussions.


[Bug c++/64570] error: non-trivial conversion at assignment

2015-03-23 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64570

--- Comment #6 from David Binderman dcb314 at hotmail dot com ---
(In reply to Markus Trippelsdorf from comment #5)
 No, it still fails. You're probably using an --enable-checking=release
 compiler...

Indeed I am, sorry for the false alarm.


[Bug libstdc++/65473] Including ciso646 does not define __GLIBCXX__

2015-03-23 Thread ldionne.2 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65473

--- Comment #2 from Louis Dionne ldionne.2 at gmail dot com ---
Does the standard specify which headers should define those macros? If not,
then it's a QOI issue that could easily be solved. In all cases, does stdcxx
document which headers must be included in order to get those definitions? I
couldn't find it.


[Bug ada/65519] [5 regression] unable to coalesce ssa_names 2 and 87 which are marked as MUST COALESCE

2015-03-23 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65519

--- Comment #4 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
This boils down to:

with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
with Interfaces;use Interfaces;

package P is

   type Arr is array (Unsigned_32 range ) of Unbounded_String;

end P;

compiled at -O2 with SJLJ exceptions.


[Bug target/65523] ICE: in gimple_op, at gimple.h:2270 with -fcheck-pointer-bounds -mmpx

2015-03-23 Thread ktietz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65523

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-03-23
 CC||ktietz at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Kai Tietz ktietz at gcc dot gnu.org ---
Confirmed


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-03-23
 CC||hubicka at gcc dot gnu.org
   Target Milestone|--- |5.0
Summary|Svn revision 221590 fails   |[5 Regression] Svn revision
   |bootstrap - |221590 fails bootstrap -
   |../libiberty/libiberty.a(cp |../libiberty/libiberty.a(cp
   |lus-dem.o): In function |lus-dem.o): In function
   |`ada_demangle': |`ada_demangle':
   |cplus-dem.c:(.text+0xdb8):  |cplus-dem.c:(.text+0xdb8):
   |multiple definition of  |multiple definition of
   |`ada_demangle'  |`ada_demangle'
   |ada/adadecode.o:adadecode.c |ada/adadecode.o:adadecode.c
   |:(.text+0x863): first   |:(.text+0x863): first
   |defined here|defined here
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed by Andreas.


[Bug rtl-optimization/65504] [4.9/5 Regression] select case with strings and -fgcse -O

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65504

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #16 from Jakub Jelinek jakub at gcc dot gnu.org ---
--- gcc/config/i386/i386.c.jj2015-03-23 08:47:53.0 +0100
+++ gcc/config/i386/i386.c2015-03-23 13:11:43.416147457 +0100
@@ -23457,12 +23457,19 @@ counter_mode (rtx count_exp)
 static rtx
 ix86_copy_addr_to_reg (rtx addr)
 {
+  rtx reg;
   if (GET_MODE (addr) == Pmode || GET_MODE (addr) == VOIDmode)
-return copy_addr_to_reg (addr);
+{
+  reg = copy_addr_to_reg (addr);
+  REG_POINTER (reg) = 1;
+  return reg;
+}
   else
 {
   gcc_assert (GET_MODE (addr) == DImode  Pmode == SImode);
-  return gen_rtx_SUBREG (SImode, copy_to_mode_reg (DImode, addr), 0);
+  reg = copy_to_mode_reg (DImode, addr);
+  REG_POINTER (reg) = 1;
+  return gen_rtx_SUBREG (SImode, reg, 0);
 }
 }

@@ -24354,6 +24361,8 @@ expand_set_or_movmem_prologue_epilogue_b
   *destptr = expand_simple_binop (GET_MODE (*destptr), PLUS, *destptr,
   GEN_INT (prolog_size),
   NULL_RTX, 1, OPTAB_DIRECT);
+  if (REG_P (*destptr)  REG_P (saveddest)  REG_POINTER (*saveddest))
+REG_POINTER (*destptr) = 1;
   *destptr = expand_simple_binop (GET_MODE (*destptr), AND, *destptr,
   GEN_INT (-desired_align),
   *destptr, 1, OPTAB_DIRECT);
@@ -24363,8 +24372,8 @@ expand_set_or_movmem_prologue_epilogue_b
saveddest, 1, OPTAB_DIRECT);
   /* Adjust srcptr and count.  */
   if (!issetmem)
-*srcptr = expand_simple_binop (GET_MODE (*srcptr), MINUS, *srcptr,
saveddest,
-*srcptr, 1, OPTAB_DIRECT);
+*srcptr = expand_simple_binop (GET_MODE (*srcptr), MINUS, *srcptr,
+   saveddest, *srcptr, 1, OPTAB_DIRECT);
   *count = expand_simple_binop (GET_MODE (*count), PLUS, *count,
 saveddest, *count, 1, OPTAB_DIRECT);
   /* We copied at most size + prolog_size.  */

fixes this for me.  Without the REG_POINTER flags, aliasing is really confused
on what is a pointer and what is not, as the prologue of the misaligned memcpy
uses
adjusteddest = dest  -align;
src = src - (adjusteddest - dest)
and from these only one has REG_POINTER flag after the propagation, so aliasing
makes a wrong decision from that.


[Bug tree-optimization/65518] gcc consumes all memory with -O3

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65518

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Mon Mar 23 14:59:57 2015
New Revision: 221595

URL: https://gcc.gnu.org/viewcvs?rev=221595root=gccview=rev
Log:
2015-03-23  Richard Biener  rguent...@suse.de

PR tree-optimization/65518
* tree-vect-stmts.c (vectorizable_load): Reject single-element
interleaving cases we generate absymal code for.

* gcc.dg/vect/pr65518.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/vect/pr65518.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-stmts.c


[Bug tree-optimization/65518] gcc consumes all memory with -O3

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65518

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||5.0
  Known to fail|5.0 |4.8.3, 4.9.2

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed on trunk sofar.


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Mar 23 15:17:20 2015
New Revision: 221596

URL: https://gcc.gnu.org/viewcvs?rev=221596root=gccview=rev
Log:
PR ipa/65521
* ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
ultimate_alias_target ()-order ints instead of
ultimate_alias_target () pointers.

* gcc.dg/pr65521.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr65521.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-icf.c
trunk/gcc/testsuite/ChangeLog


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Fixed. Thanks!


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
But even hashing DECL_UIDs rather than hashing pointers is a no-go here,
pointers can be arbitrary, for DECL_UIDs we at least have the guarantee that -g
and -g0 DECL_UIDs compare the same, but there can be bigger gaps in between
them for -g.  Dunno if symtab_node's order field can be used reliably for this
or not (or it could hash -name () string).


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35105
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35105action=edit
gcc5-pr65521.patch

This fixes this for me.  But I haven't done any in-depth analysis whether the
symtab order fields are always identical between -g and -g0.


[Bug ipa/65502] pure-const should play well with clobbers.

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65502

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
   Target Milestone|6.0 |---

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
I think we can safely ignore clobbers when scanning functions for
pure/constness.


[Bug testsuite/65506] [5 Regression] FAIL: gcc.dg/pr29215.c scan-tree-dump-not gimple memcpy

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65506

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |ASSIGNED
   Assignee|rguenth at gcc dot gnu.org |jakub at gcc dot gnu.org

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Looks good to me.


[Bug testsuite/65506] [5 Regression] FAIL: gcc.dg/pr29215.c scan-tree-dump-not gimple memcpy

2015-03-23 Thread dave.anglin at bell dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65506

--- Comment #4 from dave.anglin at bell dot net ---
On 2015-03-23 10:05 AM, jakub at gcc dot gnu.org wrote:
 Indeed, have verified this with the cross-compiler and the attached patch
 should cure this.
I have applied the patch for testing but hit pr65522 regression. 
Restarted build without ada.
Will take about a day to confirm fix.

Dave


[Bug ada/65524] gnatbind generates decrementing the unexisting elab-counter into finalize_library

2015-03-23 Thread charlet at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65524

Arnaud Charlet charlet at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2015-03-23
 CC||charlet at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Arnaud Charlet charlet at gcc dot gnu.org ---
Sounds interesting/puzzling. But we really need a reproducer/test case to work
from.


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #35109|0   |1
is obsolete||
 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35112
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35112action=edit
gcc5-pr65522.patch

I'm actually testing a slightly adjusted variant that keeps the compatibility
ada_demangle in libgnat* for ABI reasons, but not in gnat1 which doesn't use it
and thus can link against libiberty.


[Bug c++/59254] confusing diagnostic for undefined template shadowed by declaration in inline namespace

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59254

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-03-23
 Ever confirmed|0   |1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Confirmed on trunk.

The difference between 'struct' and 'class' in my original example is not
relevant:

namespace outer {
  inline namespace inner {
templatetypename T struct A;
  }

  templatetypename T struct A;

  template struct Aint;
}


[Bug libstdc++/65500] [5 Regression] FAIL: 17_intro/headers/c++2014/all_attributes.cc (test for excess errors)

2015-03-23 Thread dave.anglin at bell dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65500

--- Comment #3 from dave.anglin at bell dot net ---
On 2015-03-23 10:02 AM, redi at gcc dot gnu.org wrote:
 3) Use fixincludes to change either the definition of __LWP_RWLOCK_VALID to
 (short)0x8c91 or change the definition of PTHREAD_RWLOCK_INITIALIZER to use
 (short)__LWP_RWLOCK_VALID
Instead of (short)0x8c91, I am testing patch with value changed to 
-29551.  The libstdc++
testsuite was clean with hppa64.  However, I hit a new issue in 32-bit 
build this morning.

Dave


[Bug tree-optimization/65494] [5 Regression] Loop is not vectorized because of operand canonicalization.

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65494

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug target/65523] ICE: in gimple_op, at gimple.h:2270 with -fcheck-pointer-bounds -mmpx

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65523

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35110
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35110action=edit
gcc5-pr65523.patch

Untested fix.


[Bug c++/65047] [c++17] Add support for nested namespace defintions.

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65047

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||bkoz at gcc dot gnu.org

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org ---
*** Bug 21494 has been marked as a duplicate of this bug. ***


[Bug c++/59256] qualified name in friend function declaration doesn't match previous declaration in inline namespace

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59256

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||accepts-invalid

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Uh, just rediscovered this and recreated exactly the same reduced testcase!

Also, this variation which should not compile (because lookup should fail for
N::f):

namespace N
{
  namespace detail
  {
inline namespace ver
{
  templatetypename T
void f();
}
  }

  templatetypename T
void
detail::f() { }
}

int main()
{
  N::fint();
}

Somehow the fact N::detail::ver is an inline namespace causes N::detail::f to
also be declared in N.


[Bug sanitizer/59009] libsanitizer merge from upstream r191666 breaks bootstrap on powerpc64-linux and aarch64-linux

2015-03-23 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59009

--- Comment #56 from clyon at gcc dot gnu.org ---
Author: clyon
Date: Mon Mar 23 13:43:22 2015
New Revision: 221593

URL: https://gcc.gnu.org/viewcvs?rev=221593root=gccview=rev
Log:
2015-03-23  Christophe Lyon  christophe.l...@linaro.org

PR sanitizer/59009
* sanitizer_common/sanitizer_platform_limits_posix.cc: Cherry pick
upstream r230324.
* sanitizer_common/sanitizer_platform.h: Likewise.
* sanitizer_common/sanitizer_common_syscalls.inc: Likewise.


Modified:
trunk/libsanitizer/ChangeLog
trunk/libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc
trunk/libsanitizer/sanitizer_common/sanitizer_platform.h
trunk/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc


[Bug testsuite/65506] [5 Regression] FAIL: gcc.dg/pr29215.c scan-tree-dump-not gimple memcpy

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65506

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35111
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35111action=edit
gcc5-pr65506.patch

Indeed, have verified this with the cross-compiler and the attached patch
should cure this.


[Bug ada/65519] [5 regression] unable to coalesce ssa_names 2 and 87 which are marked as MUST COALESCE

2015-03-23 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65519

--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
It's forwprop4 propagating an abnormal SSA name:

  bb 5:
  [...]
  I.3_30(ab) = I.3_1 + 1;
  _31 = (interfaces__unsigned_32) I.3_30(ab);

[...]

  bb 13:
  _43 = v.P_ARRAY;
  _45 = (sizetype) _31;

is changed into:

  bb 13:
  _43 = v.P_ARRAY;
  _71 = I.3_30(ab)  4294967295;

but I.3_87(ab) is live in BB 13.


[Bug c++/21494] condensed nested namespaces

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21494

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org ---
Something like this is in the C++17 WP

*** This bug has been marked as a duplicate of bug 65047 ***


[Bug c++/65047] [c++17] Add support for nested namespace defintions.

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65047

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-03-23
 Ever confirmed|0   |1

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org ---
There's a much older patch referred to in PR 21494


[Bug ada/65524] New: gnatbind generates decrementing the unexisting elab-counter into finalize_library

2015-03-23 Thread demoonlit at panathenaia dot halfmoon.jp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65524

Bug ID: 65524
   Summary: gnatbind generates decrementing the unexisting
elab-counter into finalize_library
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: demoonlit at panathenaia dot halfmoon.jp

I found some cases that gnatbind generates decrementing the unexisting
elaboration counter of each package Exxx.

   E142 : Short_Integer; pragma Import (Ada, E142, system__exn_lli_E);
   ... some Exxx are declared ...

   procedure finalize_library is
   begin
  ...
  E132 := E132 - 1; -- * E132 is not declared in above *
  ...
   end finalize_library;

A cause is a package having _finalize_spec/_finalize_body without
_elabs/_elabb.
I still have not been able to make the minimal example, but have made a patch.

In bindgen.adb, Gen_Elab_Externals refers U.Set_Elab_Entity to generate Exxx.
However, Gen_Finalize_Library does not refer it.

--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -1434,7 +1434,9 @@ package body Bindgen is
 --  has a finalizer. In that case, this is where we decrement
 --  the elaboration entity.

-if U.Utype = Is_Body and then Uspec.Has_Finalizer then
+if U.Utype = Is_Body and then Uspec.Has_Finalizer
+   and then Uspec.Set_Elab_Entity
+then
if not Lib_Final_Built then
   Gen_Header;
   Lib_Final_Built := True;
@@ -1548,7 +1550,9 @@ package body Bindgen is

 WBI (  begin);

-if U.Utype /= Is_Spec then
+if U.Utype /= Is_Spec
+   and then Uspec.Set_Elab_Entity
+then
Set_String ( E);
Set_Unit_Number (Unum);
Set_String ( := E);


[Bug sanitizer/59009] libsanitizer merge from upstream r191666 breaks bootstrap on powerpc64-linux and aarch64-linux

2015-03-23 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59009

--- Comment #57 from clyon at gcc dot gnu.org ---
Cherry-picked r230324 and committed in GCC as r221593, to fix aarch64 problems.

I'm not sure whether the old arm and hppa problems have been fixed?


[Bug target/65504] [4.9/5 Regression] select case with strings and -fgcse -O

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65504

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org


[Bug libstdc++/65500] [5 Regression] FAIL: 17_intro/headers/c++2014/all_attributes.cc (test for excess errors)

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65500

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to dave.anglin from comment #1)
 At one time, GCC was permissive about system header issues, particularly
 when they aren't
 really a problem.  Is this still the case?

It is, yes, but this specific diagnostic is an error not just a warning and it
doesn't get disabled in system headers.

 It looks like an include hack would fix but there's probably more issues
 like this.

I think this isn't a widespread problem. We only use these
PTHREAD_XXX_INITIALIZER macros in a handful of places, and the other ones have
been there for some time without problems.

The choices seem to be:

1) Add an autoconf check to see if we can use the PTHREAD_RWLOCK_INITIALIZER
macro in this way, so that it falls back to the constructor+destructor if the
INITIALIZER macro can't be used.

2) Change the front-end to suppress narrowing errors in system headers.

3) Use fixincludes to change either the definition of __LWP_RWLOCK_VALID to
(short)0x8c91 or change the definition of PTHREAD_RWLOCK_INITIALIZER to use
(short)__LWP_RWLOCK_VALID


I don't like (1) because it would be a bit fragile and could introduce silent
ABI issues. If a later release of HPUX changes the INITIALIZER macro to avoid
the narrowing conversion, or if a later release of G++ does (2), then the
result of the autoconf check would change and would silently change whether a
std::shared_timed_mutex uses a constructor/destructor or not. Different
translation units built by different versions of GCC would disagree on how to
construct the objects.

Neither (1) nor (2) helps user code that wants to do:

  pthread_rwlock_t lock = PTHREAD_RWLOCK_INITIALIZER;

which presumably fails with the same error when using g++ -std=c++11.

So I think a fixincludes to cast the constant to (short) is the best option. If
__LWP_RWLOCK_T is only used in the definition of PTHREAD_RWLOCK_INITIALIZER
then changing its definition is probably the simplest:

#define __LWP_RWLOCK_VALID  (short)0x8c91


I don't have any HPUX machines to try that with, would you be able to?


[Bug target/65504] [4.9 Regression] select case with strings and -fgcse -O

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65504

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.9/5 Regression] select   |[4.9 Regression] select
   |case with strings and   |case with strings and
   |-fgcse -O   |-fgcse -O

--- Comment #19 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed on the trunk so far.


[Bug tree-optimization/65518] [4.8/4.9 Regression] gcc consumes all memory with -O3

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65518

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |4.8.5
Summary|gcc consumes all memory |[4.8/4.9 Regression] gcc
   |with -O3|consumes all memory with
   ||-O3

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Must be a regression, at least from the times when we didn't have any
vectorizer.


[Bug target/65496] ICE: in maybe_record_trace_start, at dwarf2cfi.c:2318 with -O3 -fsched2-use-superblocks -mavx512dq --param=max-pending-list-length=0

2015-03-23 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65496

--- Comment #3 from Richard Henderson rth at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #2)
 Richard, any thoughts what to do about this?  Avoid scheduling frame related
 instructions across conditional jumps?  Something else?

Yes, for the short term that will have to be a requirement in order to
keep the unwind info happy.

Something for the next stage1 is

(1) Avoiding the use of bare /f, and thus also REG_FRAME_RELATED_EXPR,
using instead always REG_CFA_*.  I suspect that this insn 620 shouldn't
actually be frame related at all, but is a part of a larger dwarf
expression we're intending to construct.

(2) Once we have an unambiguous note for everything, we can allow these
insns to be scheduled across a conditional jump if we strip and collect
those notes and place them after the conditional jump, probably on a
fake insn like

  (insn/f (use (const_int 0))
 (expr-list:REG_CFA_...
   (expr-list:REG_CFA_...
 (expr-list:REG_CFA_...


[Bug libstdc++/64967] [5 Regression] Bootstrap fails due to errors in libstdc++ sources with `--enable-symvers=gnu-versioned-namespace'

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64967

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Looks reasonable.


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Mar 23 15:49:02 2015
New Revision: 221599

URL: https://gcc.gnu.org/viewcvs?rev=221599root=gccview=rev
Log:
PR bootstrap/65522
* ipa-devirt.c: Remove duplicate demangle.h include.

* adadecode.c (ada_demangle): Guard with IN_RTS instead of IN_GCC.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/adadecode.c
trunk/gcc/ipa-devirt.c


[Bug bootstrap/65522] [5 Regression] Svn revision 221590 fails bootstrap - ../libiberty/libiberty.a(cplus-dem.o): In function `ada_demangle': cplus-dem.c:(.text+0xdb8): multiple definition of `ada_dem

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65522

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed.


[Bug ada/65519] [5 regression] unable to coalesce ssa_names 2 and 87 which are marked as MUST COALESCE

2015-03-23 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65519

--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
The problematic statement is created by the gimple-match stuff:

Applying pattern match.pd:761, gimple-match.c:1727
Applying pattern match.pd:625, gimple-match.c:1525
gimple_simplified to _71 = I.3_30(ab)  4294967295;
_45 = _71;

and falls through the cracks of replace_stmt_with_simplification:

  /* Play safe and do not allow abnormals to be mentioned in
 newly created statements.  See also maybe_push_res_to_seq.  */
  if ((TREE_CODE (ops[0]) == SSA_NAME
SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ops[0]))
  || (ops[1]
   TREE_CODE (ops[1]) == SSA_NAME
   SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ops[1]))
  || (ops[2]
   TREE_CODE (ops[2]) == SSA_NAME
   SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ops[2])))
return false;

because ops[0] is already the new SSA_NAME (_71), which was created by:

tree
gimple_build (gimple_seq *seq, location_t loc,
  enum tree_code code, tree type, tree op0, tree op1,
  tree (*valueize)(tree))
{
  tree res = gimple_simplify (code, type, op0, op1, seq, valueize);
  if (!res)
{
  if (gimple_in_ssa_p (cfun))
res = make_ssa_name (type);
  else
res = create_tmp_reg (type);
  gimple stmt = gimple_build_assign (res, code, op0, op1);
  gimple_set_location (stmt, loc);
  gimple_seq_add_stmt_without_update (seq, stmt);
}
  return res;
}

I don't think that gimple_build can fail, so maybe the way out is to test
  stmt_references_abnormal_ssa_name (SSA_NAME_DEF_STMT (ops[x]))
instead of just
  SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ops [x]))
in replace_stmt_with_simplification.


[Bug target/65504] [4.9/5 Regression] select case with strings and -fgcse -O

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65504

--- Comment #18 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Mar 23 15:31:59 2015
New Revision: 221597

URL: https://gcc.gnu.org/viewcvs?rev=221597root=gccview=rev
Log:
PR target/65504
* config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
on the pseudo.
(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
REG_POINTER on *destptr after adjusting it for prologue size.

* gfortran.dg/pr65504.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr65504.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog


[Bug ipa/62051] [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P1  |P2
 CC||jakub at gcc dot gnu.org


[Bug rtl-optimization/60851] [4.9 Regression] ICE: in extract_constrain_insn_cached, at recog.c:2117 with -flive-range-shrinkage -mdispatch-scheduler -march=bdver4

2015-03-23 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60851

--- Comment #14 from Richard Henderson rth at gcc dot gnu.org ---
(In reply to Uroš Bizjak from comment #13)
 In 4.9 branch, the check is located in three different places throughout
 constrain_operands. There was a big cleanup by Richard Sandiford in this
 area [1].

Looks good.

[Bug libstdc++/64967] [5 Regression] Bootstrap fails due to errors in libstdc++ sources with `--enable-symvers=gnu-versioned-namespace'

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64967

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #2)
 Or drop the gnu-versioned-namespace support altogether.

I'd like to do that ... maybe for GCC 6 though. It seems a bit late now to
remove it without deprecation.

 Anyway, if you don't, bumping it to _8 and always using the new ABI sounds
 like a good plan to me.

That proved quite difficult. My plan for now is to simply force
--disable-libstdcxx-dual-abi when gnu-versioned-namespace is in use, so it
bootstraps and can be used, just without the new GCC 5 hotness.


[Bug target/65523] New: ICE: in gimple_op, at gimple.h:2270 with -fcheck-pointer-bounds -mmpx

2015-03-23 Thread zsojka at seznam dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65523

Bug ID: 65523
   Summary: ICE: in gimple_op, at gimple.h:2270 with
-fcheck-pointer-bounds -mmpx
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zsojka at seznam dot cz

Created attachment 35107
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35107action=edit
reduced testcase (gcc.dg/torture/pr55890-3.c)

Compiler output:
$ gcc -fcheck-pointer-bounds -mmpx testcase.c
testcase.c: In function 'bar.chkp':
testcase.c:7:1: internal compiler error: in gimple_op, at gimple.h:2270
 }
 ^
0x59ec53 gimple_op
/mnt/svn/gcc-trunk/gcc/gimple.h:2270
0xcfb51f gimple_op
/mnt/svn/gcc-trunk/gcc/gimple.h:2257
0xcfb51f gimple_call_arg
/mnt/svn/gcc-trunk/gcc/gimple.h:2855
0xd012cf chkp_build_returned_bound
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:2195
0xd012cf chkp_get_bounds_by_definition
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:2728
0xd012cf chkp_find_bounds_1
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:3475
0xd04862 chkp_find_bounds
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:3555
0xd04862 chkp_add_bounds_to_ret_stmt
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:1232
0xd04862 chkp_instrument_function
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:4133
0xd04862 chkp_execute
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:4323
0xd04862 execute
/mnt/svn/gcc-trunk/gcc/tree-chkp.c:4380
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

$ gcc -v 
Using built-in specs.
COLLECT_GCC=/mnt/svn/gcc-trunk/binary-latest/bin/gcc
COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-221530-lto-fortran-checking-yes-rtl-df/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /mnt/svn/gcc-trunk//configure --enable-checking=yes,rtl,df
--enable-languages=c,c++,lto,fortran
--prefix=/mnt/svn/gcc-trunk/binary-221530-lto-fortran-checking-yes-rtl-df/
--without-cloog --without-ppl
Thread model: posix
gcc version 5.0.0 20150320 (experimental) (GCC) 

Tested revisions:
r221539 - ICE


[Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx

2015-03-23 Thread zsojka at seznam dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531

Bug ID: 65531
   Summary: ICE: symtab_node::verify failed: Two symbols with same
comdat_group are not linked by the same_comdat_group
list. with -fcheck-pointer-bounds -mmpx
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zsojka at seznam dot cz

Created attachment 35118
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35118action=edit
reduced testcase

Compiler output:
$ gcc -fcheck-pointer-bounds -mmpx testcase.C 
testcase.C:10:4: error: Two symbols with same comdat_group are not linked by
the same_comdat_group list.
 S s;
^
_ZN1SD1Ev.chkp/11 (S::~S(#'pointer_bounds_type' not supported by
dump_type#type error, void, ...)) @0x7f52d8b0f310
  Type: function definition analyzed alias cpp_implicit_alias
  Visibility: external public weak comdat comdat_group:_ZN1SD5Ev one_only
  Same comdat group as: _ZN1SD1Ev/2
  Address is taken.
  References: _ZN1SD2Ev.chkp/10 (alias)
  Referring: _ZN1SD1Ev/2 (chkp)
  Availability: available
  First run: 0
  Function flags:
  Called by: 
  Calls: 
  Is instrumented version.
_ZN1SD2Ev.chkp/10 (S::~S(#'pointer_bounds_type' not supported by
dump_type#type error, void, ...)) @0x7f52d8b0f188
  Type: function definition analyzed
  Visibility: external public weak comdat comdat_group:_ZN1SD5Ev one_only
artificial
  Same comdat group as: _ZN1SD2Ev/1
  Address is taken.
  References: 
  Referring: _ZN1SD1Ev.chkp/11 (alias)_ZN1SD2Ev/1 (chkp)
  Availability: available
  First run: 0
  Function flags: body
  Called by: _ZN1SD2Ev/1 (1.00 per call) 
  Calls: 
  Is instrumented version.
testcase.C:10:4: internal compiler error: symtab_node::verify failed
0x9dc3c4 symtab_node::verify_symtab_nodes()
/mnt/svn/gcc-trunk/gcc/symtab.c:1140
0xc28668 symbol_table::remove_unreachable_nodes(_IO_FILE*)
/mnt/svn/gcc-trunk/gcc/ipa.c:686
0xd0d4bd execute_todo
/mnt/svn/gcc-trunk/gcc/passes.c:2023
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

$ gcc -v 
Using built-in specs.
COLLECT_GCC=/mnt/svn/gcc-trunk/binary-latest/bin/gcc
COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-221530-lto-fortran-checking-yes-rtl-df/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /mnt/svn/gcc-trunk//configure --enable-checking=yes,rtl,df
--enable-languages=c,c++,lto,fortran
--prefix=/mnt/svn/gcc-trunk/binary-221530-lto-fortran-checking-yes-rtl-df/
--without-cloog --without-ppl
Thread model: posix
gcc version 5.0.0 20150320 (experimental) (GCC) 

Tested revisions:
r221530 - ICE


[Bug fortran/65532] New: [5 Regression] Unexpected error with legacy code (D1MACH)

2015-03-23 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65532

Bug ID: 65532
   Summary: [5 Regression] Unexpected error with legacy code
(D1MACH)
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: anlauf at gmx dot de

Created attachment 35119
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35119action=edit
Bug demo.

Dear all,

after updating to trunk rev. 221607, I found a problem which I reduced
to the attached example.

Commenting out the call to d1mach or commenting out in d1mach the
data statements in lines 21-25 makes the error messages disappear.

Here's the error messages I get:

% gfc-trunk -c gfcbug131.f90
gfcbug131.f90:10:23:

 INTEGER :: diver(4)
   1
Error: Different shape for array assignment at (1) on dimension 1 (4 and 2)
gfcbug131.f90:8:23:

 INTEGER :: large(4)
   1
Error: Different shape for array assignment at (1) on dimension 1 (4 and 2)
gfcbug131.f90:11:23:

 INTEGER :: LOG10(4)
   1
Error: Different shape for array assignment at (1) on dimension 1 (4 and 2)
gfcbug131.f90:9:23:

 INTEGER :: right(4)
   1
Error: Different shape for array assignment at (1) on dimension 1 (4 and 2)
gfcbug131.f90:7:23:

 INTEGER :: small(4)
   1
Error: Different shape for array assignment at (1) on dimension 1 (4 and 2)


[Bug fortran/56226] Add support for DEC UNION and MAP extensions

2015-03-23 Thread joel.matz at horizonbtc dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56226

Joel Matz joel.matz at horizonbtc dot com changed:

   What|Removed |Added

 CC||joel.matz at horizonbtc dot com

--- Comment #8 from Joel Matz joel.matz at horizonbtc dot com ---
Any word on this?  I would certainly be willing to help test.


[Bug c++/65525] New: ICE: sorry, unimplemented: unexpected AST of kind mem_ref (-std=c++14, ICE: in potential_constant_expression_1, at cp/constexpr.c:4432)

2015-03-23 Thread marciso.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65525

Bug ID: 65525
   Summary: ICE: sorry, unimplemented: unexpected AST of kind
mem_ref (-std=c++14, ICE: in
potential_constant_expression_1, at
cp/constexpr.c:4432)
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marciso.gcc at gmail dot com

// The following code triggers unimplemented ICE when compiled with
-std=c++14;
// -std=c++11 compiles fine.

// g++ -std=c++14 test.cpp
// Tested with:
//   g++ (GCC) 5.0.0 20150308 (experimental)
//   g++ (GCC) 5.0.0 20150323 (experimental)

struct A
{
int x;
char y; // Actually, short and bool (types smaller than int?) trigger this
ICE too
// Also: the problem doesn't occur if you put the smaller type first, e.g.
char x; int y;

A(int x) {} // custom ctor needed for ICE
};

int main()
{
A a{0}, x{1}, y{2};

x = a; // OK
y = a; // OK
x = y = a; // ICE: sorry, unimplemented: unexpected AST of kind mem_ref
// internal compiler error: in potential_constant_expression_1, at
cp/constexpr.c:4432

return 0;
}

/*
./gcc/bin/g++ -std=c++14test.cpp   -o test
test.cpp: In function ‘int main()’:
test.cpp:20:13: sorry, unimplemented: unexpected AST of kind mem_ref
 x = y = a; // ICE: sorry, unimplemented: unexpected AST of kind mem_ref
 ^
test.cpp:20:13: internal compiler error: in potential_constant_expression_1, at
cp/constexpr.c:4432
0x843238 potential_constant_expression_1
../../gcc/cp/constexpr.c:4432
0x842eca potential_constant_expression_1
../../gcc/cp/constexpr.c:4049
0x8423e5 potential_constant_expression_1
../../gcc/cp/constexpr.c:4379
0x74c3d2 cp_parser_constant_expression
../../gcc/cp/parser.c:8672
0x74c0b4 cp_parser_assignment_expression
../../gcc/cp/parser.c:8434
0x74e80d cp_parser_expression
../../gcc/cp/parser.c:8569
0x74f0f6 cp_parser_expression_statement
../../gcc/cp/parser.c:9976
0x73c8b5 cp_parser_statement
../../gcc/cp/parser.c:9827
0x73d422 cp_parser_statement_seq_opt
../../gcc/cp/parser.c:10099
0x73d57b cp_parser_compound_statement
../../gcc/cp/parser.c:10053
0x75233b cp_parser_function_body
../../gcc/cp/parser.c:19185
0x75233b cp_parser_ctor_initializer_opt_and_function_body
../../gcc/cp/parser.c:19221
0x75cbaa cp_parser_function_definition_after_declarator
../../gcc/cp/parser.c:23464
0x75da23 cp_parser_function_definition_from_specifiers_and_declarator
../../gcc/cp/parser.c:23376
0x75da23 cp_parser_init_declarator
../../gcc/cp/parser.c:17055
0x75efbc cp_parser_simple_declaration
../../gcc/cp/parser.c:11592
0x75f313 cp_parser_block_declaration
../../gcc/cp/parser.c:11466
0x767879 cp_parser_declaration
../../gcc/cp/parser.c:11363
0x767afa cp_parser_declaration_seq_opt
../../gcc/cp/parser.c:11249
0x767e0f cp_parser_translation_unit
../../gcc/cp/parser.c:4100
Please submit a full bug report,

[Bug target/60408] ARM: inefficient code for vget_lane_f32 intrinsic

2015-03-23 Thread wilson at tuliptree dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60408

Jim Wilson wilson at tuliptree dot org changed:

   What|Removed |Added

 CC||wilson at tuliptree dot org

--- Comment #2 from Jim Wilson wilson at tuliptree dot org ---
Created attachment 35114
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35114action=edit
patch to use subregs instead of vec_extract


[Bug target/60408] ARM: inefficient code for vget_lane_f32 intrinsic

2015-03-23 Thread wilson at tuliptree dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60408

--- Comment #3 from Jim Wilson wilson at tuliptree dot org ---
Even if we could fix the vec_extract constraints, we still end up with 3
instructions, as the optimizer can't do anything interesting with the
vec_extract RTL.

For a 32-bit SFmode value though, we can just use a subreg instead of a vector
extract.  The ARM port models the vector registers as 32-bit registers, so a
subreg for a 32-bit mode will always be valid.  Using a subreg instead of a
vector extract here, I get 2 instructions.
vmov.f32 s15, s0
vadd.f32 s0, s1, s15
That is because the register allocator thinks it needs a temp because
inputs and ouputs partially overlap.  That is a harder problem to fix.

Subregs should also work for 64-bit modes.

I have an experimental patch which is mostly untested.  I don't know if this
works for both big-endian and little-endian.  I don't know if this works for
all 32-bit modes and all vector types.  Etc.  All I know is that it seems to
work for this testcase.


[Bug libstdc++/64967] [5 Regression] Bootstrap fails due to errors in libstdc++ sources with `--enable-symvers=gnu-versioned-namespace'

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64967

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed. Changing gnu-versioned-namespace to the new ABI can happen after GCC 5.


[Bug libstdc++/65147] alignment of std::atomic object is not correct

2015-03-23 Thread alexey.lapshin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65147

--- Comment #3 from Alexey Lapshin alexey.lapshin at oracle dot com ---
(In reply to Jason Merrill from comment #2)
 This does seem like a bug.

What is a proper behavior for G++ in this case ?

should it always align std::atomic object of size 8 at 8 bytes ?

Or should G++ just never inline implementation for atomic routine ?

(see bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65149 when implementation
of atomic routine was inlined for incorrectly aligned atomic object, which
leads to BusError)


[Bug libstdc++/64967] [5 Regression] Bootstrap fails due to errors in libstdc++ sources with `--enable-symvers=gnu-versioned-namespace'

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64967

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Mon Mar 23 16:47:18 2015
New Revision: 221600

URL: https://gcc.gnu.org/viewcvs?rev=221600root=gccview=rev
Log:
PR libstdc++/64967
* acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use.
* configure: Regenerate.
* src/c++11/compatibility-c++0x.cc (error_category), generic_category,
system_category): Use macros for versioned namespace.
* src/c++11/futex.cc: Add missing end macro for versioned namespace.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/acinclude.m4
trunk/libstdc++-v3/configure
trunk/libstdc++-v3/src/c++11/compatibility-c++0x.cc
trunk/libstdc++-v3/src/c++11/futex.cc


[Bug lto/65515] [5 Regression] FAIL: gcc.c-torture/compile/limits-fndefn.c -O2 -flto -flto-partition=none (ICE) -- SIGSEGV for stack growth failure

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65515

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
This is from:
644  else if (TREE_CODE (expr) == FUNCTION_TYPE
645   || TREE_CODE (expr) == METHOD_TYPE)
646DFS_follow_tree_edge (TYPE_ARG_TYPES (expr));
where TYPE_ARG_TYPES contains a huge TREE_LIST chain (11 TREE_LIST nodes).
From quick look at DFS::DFS_write_tree and DFS::DFS_write_tree_body, we don't
really have anything there like GTY chain_next, which is clearly highly
desirable here.  Dunno if order matters here, if not, then for TS_LIST counting
number of elements and if it is longer than say 10 or 100, use the vector +
DFS_write_node from the end to start, could work.


[Bug other/65528] New: [mpx] internal compiler error: in expand_expr_addr_expr_1, at expr.c:7761

2015-03-23 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65528

Bug ID: 65528
   Summary: [mpx] internal compiler error: in
expand_expr_addr_expr_1, at expr.c:7761
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com

With this patch:

https://gcc.gnu.org/ml/gcc-patches/2015-03/msg01211.html

when GCC is configured with

--enable-libmpx --with-build-config=bootstrap-mpx

I got

/export/build/gnu/gcc-test/build-x86_64-linux/./prev-gcc/xg++
-B/export/build/gnu/gcc-test/build-x86_64-linux/./prev-gcc/
-B/usr/gcc-5.0.0/x86_64-unknown-linux-gnu/bin/ -nostdinc++
-B/export/build/gnu/gcc-test/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/export/build/gnu/gcc-test/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs

-I/export/build/gnu/gcc-test/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu

-I/export/build/gnu/gcc-test/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include
 -I/export/gnu/import/git/sources/gcc/libstdc++-v3/libsupc++
-L/export/build/gnu/gcc-test/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/export/build/gnu/gcc-test/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-c  -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2 -fcheck-pointer-bounds -mmpx
-DIN_GCC-fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute
-Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H -I. -Ic-family
-I/export/gnu/import/git/sources/gcc/gcc
-I/export/gnu/import/git/sources/gcc/gcc/c-family
-I/export/gnu/import/git/sources/gcc/gcc/../include
-I/export/gnu/import/git/sources/gcc/gcc/../libcpp/include 
-I/export/gnu/import/git/sources/gcc/gcc/../libdecnumber
-I/export/gnu/import/git/sources/gcc/gcc/../libdecnumber/bid -I../libdecnumber
-I/export/gnu/import/git/sources/gcc/gcc/../libbacktrace   -o
c-family/stub-objc.o -MT c-family/stub-objc.o -MMD -MP -MF
c-family/.deps/stub-objc.TPo
/export/gnu/import/git/sources/gcc/gcc/c-family/stub-objc.c
/export/gnu/import/git/sources/gcc/gcc/c-family/stub-objc.c: In function
‘tree_node* objc_rewrite_function_call.chkp(tree, #‘pointer_bounds_type’ not
supported by dump_type#type error, tree, #‘pointer_bounds_type’ not supported
by dump_type#type error, void, ...)’:
/export/gnu/import/git/sources/gcc/gcc/c-family/stub-objc.c:104:1: internal
compiler error: in expand_expr_addr_expr_1, at expr.c:7761
 objc_rewrite_function_call (tree function, tree ARG_UNUSED (first_param))
 ^
0xb6844a expand_expr_addr_expr_1
/export/gnu/import/git/sources/gcc/gcc/expr.c:7761
0xb68ae4 expand_expr_addr_expr
/export/gnu/import/git/sources/gcc/gcc/expr.c:7850
0xb74308 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/export/gnu/import/git/sources/gcc/gcc/expr.c:10724
0xb68f1b expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
/export/gnu/import/git/sources/gcc/gcc/expr.c:8018
0xa20d5b expand_normal
/export/gnu/import/git/sources/gcc/gcc/expr.h:260
0xa2d4d5 expand_return
/export/gnu/import/git/sources/gcc/gcc/cfgexpand.c:3231
0xa2dc5e expand_gimple_stmt_1
/export/gnu/import/git/sources/gcc/gcc/cfgexpand.c:3373
0xa2e1c3 expand_gimple_stmt
/export/gnu/import/git/sources/gcc/gcc/cfgexpand.c:3497
0xa3528d expand_gimple_basic_block
/export/gnu/import/git/sources/gcc/gcc/cfgexpand.c:5509
0xa36f3a execute
/export/gnu/import/git/sources/gcc/gcc/cfgexpand.c:6127
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.
make: *** [c-family/stub-objc.o] Error 1
[hjl@gnu-mic-2 gcc]$

[Bug other/65530] New: [meta-bug] -mmpx -fcheck-pointer-bounds failures

2015-03-23 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65530

Bug ID: 65530
   Summary: [meta-bug] -mmpx -fcheck-pointer-bounds failures
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: enkovich.gnu at gmail dot com
  Reporter: hjl.tools at gmail dot com

This meta-bug tracks all known -mmpx -fcheck-pointer-bounds failures.


[Bug c++/59256] qualified name in friend function declaration doesn't match previous declaration in inline namespace

2015-03-23 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59256

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org


[Bug target/65523] ICE: in gimple_op, at gimple.h:2270 with -fcheck-pointer-bounds -mmpx

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65523

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Mar 23 20:03:50 2015
New Revision: 221606

URL: https://gcc.gnu.org/viewcvs?rev=221606root=gccview=rev
Log:
PR target/65523
* tree-chkp.c (chkp_build_returned_bound): Ignore
ERF_RETURNS_ARG calls if they have fewer than needed arguments.

* gcc.target/i386/pr65523.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/i386/pr65523.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-chkp.c


[Bug testsuite/65506] [5 Regression] FAIL: gcc.dg/pr29215.c scan-tree-dump-not gimple memcpy

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65506

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Mar 23 20:04:43 2015
New Revision: 221607

URL: https://gcc.gnu.org/viewcvs?rev=221607root=gccview=rev
Log:
2015-03-23  Jakub Jelinek  ja...@redhat.com

PR testsuite/65506
* gcc.dg/pr29215.c: Dump and analyze ccp1 dump instead of
gimple dump.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/pr29215.c


[Bug testsuite/65506] [5 Regression] FAIL: gcc.dg/pr29215.c scan-tree-dump-not gimple memcpy

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65506

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed.


[Bug target/65523] ICE: in gimple_op, at gimple.h:2270 with -fcheck-pointer-bounds -mmpx

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65523

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed.


[Bug target/65505] [5 Regression][SH] ICE in sh_disp_addr_displacement

2015-03-23 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65505

Oleg Endo olegendo at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Oleg Endo olegendo at gcc dot gnu.org ---
Fixed for GCC 5.


[Bug tree-optimization/65529] New: [5 Regression][SH] gcc.dg/pr29215.c failing

2015-03-23 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65529

Bug ID: 65529
   Summary: [5 Regression][SH] gcc.dg/pr29215.c failing
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: olegendo at gcc dot gnu.org
Target: sh*-*-*

The test case for PR 29215 started to fail on SH:

FAIL: gcc.dg/pr29215.c scan-tree-dump-not gimple memcpy

Looking at the assembly output of the test case, the memcpy is optimized away,
albeit at a later stage during compilation through builtin expansion.

One option would be to scan the final assembly output for 'memcpy' symbols:

Index: gcc/testsuite/gcc.dg/pr29215.c
===
--- gcc/testsuite/gcc.dg/pr29215.c(revision 221603)
+++ gcc/testsuite/gcc.dg/pr29215.c(working copy)
@@ -1,6 +1,6 @@
 /* PR middle-end/29215 */
 /* { dg-do compile } */
-/* { dg-options -O2 -fdump-tree-gimple } */
+/* { dg-options -O2 } */

 char buf[5 * sizeof (int) + 1] __attribute__((aligned (__alignof__ (int;

@@ -29,5 +29,4 @@
   return 0;
 }

-/* { dg-final { scan-tree-dump-not memcpy gimple } } */
-/* { dg-final { cleanup-tree-dump gimple } } */
+/* { dg-final { scan-assembler-not memcpy } } */

However, PR 29215 was specifically about optimizing away memcpy at the tree
level, so I'm not sure whether this is an appropriate fix.  Something else
must have changed to trigger the new failure ...

In the gimple dump, the foo is:

foo (int arg1, int arg2, int arg3, int arg4, int arg5)
{
  unsigned int D.1477;
  void * D.1478;
  void * D.1479;
  void * D.1480;
  void * D.1481;

  D.1477 = MEM[(char * {ref-all})arg1];
  MEM[(char * {ref-all})buf] = D.1477;
  D.1478 = buf + 4;
  __builtin_memcpy (D.1478, arg2, 4);
  D.1479 = buf + 8;
  __builtin_memcpy (D.1479, arg3, 4);
  D.1480 = buf + 12;
  __builtin_memcpy (D.1480, arg4, 4);
  D.1481 = buf + 16;
  __builtin_memcpy (D.1481, arg5, 4);
}

On 4.9 it looked like this:

foo (int arg1, int arg2, int arg3, int arg4, int arg5)
{
  int D.1387;
  int D.1388;
  int D.1389;
  int D.1390;
  int D.1391;

  D.1387 = MEM[(char * {ref-all})arg1];
  MEM[(char * {ref-all})buf] = D.1387;
  D.1388 = MEM[(char * {ref-all})arg2];
  MEM[(char * {ref-all})buf + 4B] = D.1388;
  D.1389 = MEM[(char * {ref-all})arg3];
  MEM[(char * {ref-all})buf + 8B] = D.1389;
  D.1390 = MEM[(char * {ref-all})arg4];
  MEM[(char * {ref-all})buf + 12B] = D.1390;
  D.1391 = MEM[(char * {ref-all})arg5];
  MEM[(char * {ref-all})buf + 16B] = D.1391;
}


[Bug lto/65475] [5 Regression] ICE in odr_vtable_hasher::equal (Segmentation fault)

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65475

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Mar 23 19:51:51 2015
New Revision: 221605

URL: https://gcc.gnu.org/viewcvs?rev=221605root=gccview=rev
Log:
PR ipa/65475
* g++.dg/lto/pr65475_0.C: Use dg-lto-options instead of
dg-options.
* g++.dg/lto/pr65475b_0.C: Likewise.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/lto/pr65475_0.C
trunk/gcc/testsuite/g++.dg/lto/pr65475b_0.C


[Bug debug/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

--- Comment #2 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Created attachment 35104
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35104action=edit
testcase for x86_64

Also happens on x86_64:

 % gcc -c -fcompare-debug -std=gnu89 -O2 hooks.i
gcc: error: hooks.i: -fcompare-debug failure


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-03-23
 CC||marxin at gcc dot gnu.org
  Component|debug   |ipa
   Target Milestone|--- |5.0
 Ever confirmed|0   |1

--- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
I suspect r221576 is responsible for this issue, because -fno-ipa-icf fixes
the problem.


[Bug fortran/64952] Missing temporary in assignment from elemental function

2015-03-23 Thread paul.richard.thomas at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64952

--- Comment #6 from paul.richard.thomas at gmail dot com paul.richard.thomas 
at gmail dot com ---
Dear Mikael,

The pureness is also confused by the C pure, which is whiter than
white pure. I agree with your last remark about the standards
committee needing to reflect on this.

Thanks for finishing the job. Will you post a message on the clf
thread, or would you like me to do it?

Paul

On 8 February 2015 at 14:00, mikael at gcc dot gnu.org
gcc-bugzi...@gcc.gnu.org wrote:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64952

 --- Comment #4 from Mikael Morin mikael at gcc dot gnu.org ---
 Hello Paul,

 setting potentially_aliased should be done inside
 gfc_walk_elemental_function_args, as the ss argument may be returned
 unmodified.
 In fact, I think it's better to do all the trans-array.c code inside
 gfc_conv_resolve_dependencies without adding the gfc_ss_info flag.

 There is also the case of typebound procedures and procedure pointer
 components,
 for which we should generate a temporary in any case.

 I think this case is something that was overlooked by the standard commitee
 when they introduced the PURE attribute.  Maybe they can provide some kind of
 REALLY_PURE attribute (or PURE ELEMENTAL, different from regular ELEMENTAL)
 that avoids generating temporaries everywhere?
 Or maybe the function Fred should bee IMPURE ELEMENTAL?

 Anyway, I think we should not rush to fix this before we are sure that the
 standard committee really expects temporaries (almost) everywhere array
 elemental functions are involved.

 --
 You are receiving this mail because:
 You are on the CC list for the bug.
 You are the assignee for the bug.
 You reported the bug.


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

--- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
struct socket {
  int sk;
};
selinux_task_getioprio(struct task_struct *p) {
  return current_has_perm(p, 256UL);
}
selinux_task_getscheduler(struct task_struct *p) {
  return current_has_perm(p, 256UL);
}
selinux_socket_getsockname(struct socket *sock) {
  return sock_has_perm(get_current(), sock-sk, 16UL);
}
selinux_socket_getpeername(struct socket *sock) {
  return sock_has_perm(get_current(), sock-sk, 16UL);
}
selinux_ops() { security_module_enable(selinux_ops); }


[Bug ada/65519] [5 regression] unable to coalesce ssa_names 2 and 87 which are marked as MUST COALESCE

2015-03-23 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65519

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|ebotcazou at gcc dot gnu.org   |
   Assignee|unassigned at gcc dot gnu.org  |ebotcazou at gcc dot 
gnu.org

--- Comment #3 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Investigating.


[Bug ipa/63587] [5 Regression] ICE : tree check: expected var_decl, have result_decl in add_local_variables, at tree-inline.c:4112

2015-03-23 Thread yroux at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63587

--- Comment #16 from Yvan Roux yroux at gcc dot gnu.org ---
Author: yroux
Date: Mon Mar 23 09:50:33 2015
New Revision: 221589

URL: https://gcc.gnu.org/viewcvs?rev=221589root=gccview=rev
Log:
gcc/
2015-03-23  Yvan Roux  yvan.r...@linaro.org

Backport from trunk r216841.
2014-10-29  Martin Liska  mli...@suse.cz

PR ipa/63587
* cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put to local
declarations.
* function.c (add_local_decl): Implementation moved from header file,
assert
introduced for tree type.
* function.h: Likewise.

gcc/testsuite/
2015-03-23  Yvan Roux  yvan.r...@linaro.org

Backport from trunk r216841.
2014-10-29  Martin Liska  mli...@suse.cz

PR ipa/63587
* g++.dg/ipa/pr63587-1.C: New test.
* g++.dg/ipa/pr63587-2.C: New test.


Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr63587-1.C
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr63587-2.C
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/cgraphunit.c
branches/gcc-4_9-branch/gcc/function.c
branches/gcc-4_9-branch/gcc/function.h
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug fortran/64952] Missing temporary in assignment from elemental function

2015-03-23 Thread mikael at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64952

--- Comment #5 from Mikael Morin mikael at gcc dot gnu.org ---
Author: mikael
Date: Mon Mar 23 07:53:31 2015
New Revision: 221586

URL: https://gcc.gnu.org/viewcvs?rev=221586root=gccview=rev
Log:
2015-03-23  Paul Thomas  pa...@gcc.gnu.org
Mikael Morin  mik...@gcc.gnu.org

PR fortran/64952
fortran/
* gfortran.h (struct symbol_attribute) : New field
'array_outer_dependency'.
* trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
* module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
(attr_bits): Append same value to initializer.
(mio_symbol_attribute): Handle 'array_outer_dependency' attr
in module read and write.
* resolve.c (update_current_proc_outer_array_dependency): New function.
(resolve_function, resolve_call): Add code to update current procedure's
'array_outer_dependency' attribute.
(resolve_variable): Mark current procedure with attribute
array_outer_dependency if the variable is an array coming from outside
the current namespace.
(resolve_fl_procedure): Mark a procedure without body with attribute
'array_outer_dependency'.
* trans-array.c (gfc_conv_resolve_dependencies): If any ss is
marked as 'array_outer_dependency' generate a temporary.
(gfc_walk_function_expr): If the function may reference external arrays,
mark the head gfc_ss with flag 'array_outer_dependency'.
testsuite/
* gfortran.dg/elemental_dependency_4.f90: New.
* gfortran.dg/elemental_dependency_5.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/elemental_dependency_4.f90
trunk/gcc/testsuite/gfortran.dg/elemental_dependency_5.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/module.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/65504] [4.9/5 Regression] select case with strings and -fgcse -O

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65504

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug ipa/64813] [5 Regression] 23_containers/unordered_map/requirements/explicit_instantiation/[2,4].cc iCEs

2015-03-23 Thread yroux at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64813

--- Comment #23 from Yvan Roux yroux at gcc dot gnu.org ---
Author: yroux
Date: Mon Mar 23 09:55:34 2015
New Revision: 221590

URL: https://gcc.gnu.org/viewcvs?rev=221590root=gccview=rev
Log:
2015-03-23  Yvan Roux  yvan.r...@linaro.org

Backport from trunk r220616.
2015-02-11  Martin Liska  mli...@suse.cz

PR ipa/64813
 * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
 value for call to a function that is noreturn.


Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/cgraphunit.c


[Bug c++/65520] elaborated-type-specifiers and inaccessible injected-class-names

2015-03-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65520

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||accepts-invalid
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-03-23
 Ever confirmed|0   |1


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #35105|0   |1
is obsolete||
 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35106
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35106action=edit
gcc5-pr65521.patch

Patch I'm going to bootstrap/regtest.


[Bug preprocessor/65238] [5 Regression] __has_attribute is not handled properly with -traditional-cpp.

2015-03-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65238

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed.


[Bug ipa/65521] [5 Regression] nondeterministic -fcompare-debug failures

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65521

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Feels like hashing of pointers and walking hash-tables where ordering changes
code-generation (well, DECL_UID in this case).  That's a no-no, of course
(think address-space randomization).


[Bug preprocessor/8270] [4.8/4.9/5 Regression] back-slash white space newline with comments, no warning

2015-03-23 Thread ktietz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=8270

--- Comment #57 from Kai Tietz ktietz at gcc dot gnu.org ---
(In reply to doug mcilroy from comment #56)
 (In reply to Kai Tietz from comment #55)
 Comment #55 overlooks the Standard's translation phase 1, which replaces an
 implementation-defined end-of-line indicator with a new-line character.
 GCC's convention of including in the end-of-line indicator any white space
 that is preceded by a backslash conforms, though it may be a surprise.

Sure, sorry for omitting that.  Common understanding of multibyte (this term
is indeed misleading here) newline characters are in common the combination of
'\r' and '\n'.  So by interpreting any whitespace + new-line being seen as a
single-character is valid, but has indeed semantic differences.

 The surprise is perversely out of sympathy with the raison d'etre of the
 standard--maximal portability. It is incompatible with the most direct (and
 historically prior) implementations, wherein the end-of-line indicator is
 simply a new-line character.

Agreed, and we should at least consider to provide an option - beside the
necessary warning - to not strip whitespaces from right-handside of lines
containing a backslash at line's end.
Should we use an existing option (like -ansi), or introduce new option for
this?

 A suitable fix is to warn when white space occurs in an end-of-line
 indicator. This will break no code that GCC currently compiles, yet draw
 attention to the nonportable construct.

Well, in general we are warning, but within comments.  For C-style comments
there is indeed not much reason to warn, as there is no semantic difference. 
But for C++-style comments we should, as here indeed a semantic difference can
occure for gnu-style end-of-line treating


[Bug lto/65515] [5 Regression] FAIL: gcc.c-torture/compile/limits-fndefn.c -O2 -flto -flto-partition=none (ICE) -- SIGSEGV for stack growth failure

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65515

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug tree-optimization/65494] [5 Regression] Loop is not vectorized because of operand canonicalization.

2015-03-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65494

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Hmm, for some reason I decided to re-alloc 'matches' before dealing with
children.
Not doing that fixes this bug,


  1   2   >