[Bug tree-optimization/58984] [4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58984

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Last reconfirmed|2013-11-04 00:00:00 |
 CC||jakub at gcc dot gnu.org,
   ||jamborm at gcc dot gnu.org
   Target Milestone|4.8.4   |4.8.3

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r193298.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-04
 CC||mpolacek at gcc dot gnu.org
   Target Milestone|--- |4.9.0
 Ever confirmed|0   |1


[Bug tree-optimization/58984] [4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58984

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
So, before IPA-CP, foo had:
  _10 = BIT_FIELD_REF p, 32, 0;
  _11 = _10  507904;
Now, IPA-CP does:
Modification phase of node foo.constprop.0/3
 Aggregate replacements: 0[14]=1, 0[8]=0, 0[0]=1
  _4 = 1;
  _5 = _4  507904;
which is of course wrong, because 32 bits at offset 0 in the structure should
contain value 16385 ((1  0) | (1  14)), rather than 1.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Here, single_imm_use can set the stmt to NULL:

  /* If there aren't any uses whatsoever, we're done.  */
  if (ptr == ptr-next)
{   
return_false:
  *use_p = NULL_USE_OPERAND_P;
  *stmt = NULL;

and then we're calling gimple_code on that NULL stmt:
  if (gimple_code (use_stmt) != GIMPLE_COND


[Bug tree-optimization/58984] [4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58984

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Note that likely since r199252 Aggregate replacements: 0[14]=1, 0[8]=0, 0[0]=1
is replaced with just 0[0]=1, still the effect is exactly the same.


[Bug c++/58979] [4.8/4.9 Regression] ICE with invalid use of pointer-to-member

2013-11-04 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58979

--- Comment #2 from Marc Glisse glisse at gcc dot gnu.org ---
When I introduced RO_ARROW_STAR I didn't realize it could end up in
invalid_indirection_error, probably just needs an extra case there.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

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 ---
(In reply to Bernd Edlinger from comment #4)
 Created attachment 31145 [details]
 For a possible patch.
 
 This patch is assuming that a statement like s-mode[-1].b = 0;
 is basically invoking undefined behaviour, so it should not matter
 if we have correct bitregion_start/end values or just set them to zero
 in this case.

That doesn't look safe, negative rbitpos is not necessarily undefined behavior.
Can't you get the same with say
struct S { unsigned char s : 1; };

...
void function(struct S *p)
{
  p[-1].s = 0;
}

Apparently get_inner_reference only gives negative bitpos if offset is
NULL_TREE, otherwise it adjusts offset such that the bitpos is positive.
I wonder if get_bit_range shouldn't do the same thing if it detects *bitpos
is negative and *offset is NULL_TREE before doing the bitoffset  *bitpos
comparison.  It might be as easy as replacing the
gcc_assert (*offset != NULL_TREE);
with if (*offset == NULL_TREE) *offset = size_int (0);
Of course, the comment would need to be adjusted.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #7 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
(In reply to Jakub Jelinek from comment #6)
 That doesn't look safe, negative rbitpos is not necessarily undefined
 behavior.
 Can't you get the same with say
 struct S { unsigned char s : 1; };
 
 ...
 void function(struct S *p)
 {
   p[-1].s = 0;
 }

no. I checked that. This is folded quite differently:

  MEM[(struct S *)p_1(D) + -1B].s = 0;

and there is no ICE in this case.

 Apparently get_inner_reference only gives negative bitpos if offset is
 NULL_TREE, otherwise it adjusts offset such that the bitpos is positive.
 I wonder if get_bit_range shouldn't do the same thing if it detects *bitpos
 is negative and *offset is NULL_TREE before doing the bitoffset  *bitpos
 comparison.  It might be as easy as replacing the
 gcc_assert (*offset != NULL_TREE);
 with if (*offset == NULL_TREE) *offset = size_int (0);
 Of course, the comment would need to be adjusted.

That would work. But if all these negative bit-pos are due to
invalid code as I'd curently expect, we could also just stop generating
code for this type of access, to reduce code size.

What I'm kind of worried here, is that bitpos is signed int,
and bitregion_start/end is unsigned int, and later in the expmed.c
all that stuff is passed as unsigned int bitnum/bitsize.

Therefore, it would make sense to avoid all negative bitpos in
get_inner_reference, but probably only if there exist _valid_ code
with negative bitpos.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
Thus, hopefully:
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -6479,8 +6479,9 @@ all_imm_uses_in_stmt_or_feed_cond (tree var, gimple stmt,
basic_blo
single_imm_use (gimple_assign_lhs (use_stmt),
  use2_p, use_stmt))
  ;
-   if (gimple_code (use_stmt) != GIMPLE_COND
-   || gimple_bb (use_stmt) != cond_bb)
+   if (use_stmt
+(gimple_code (use_stmt) != GIMPLE_COND
+   || gimple_bb (use_stmt) != cond_bb))
  return false;
   }
   return true;


[Bug libstdc++/58982] [4.9 Regression] std::vectorstd::atomicint vai(10); does not compile anymore

2013-11-04 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58982

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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


[Bug libstdc++/52015] std::to_string does not work under MinGW

2013-11-04 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015

--- Comment #33 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Nathan Ridge from comment #32)
 No one, but they need to know about issues like this in order to do
 something about them.

It's been in the MinGW bug tracker for years, although now closed as out of
date

 Above you said that this was not possible to fix for
 mingw.

It's not possible to fix in GCC without extraordinary effort for a single
target, which is not going to happen. If a given target wants to support C++11
features then it needs to provide the necessary C99 features. This is not a GCC
issue.

 If you really meant this would require changes in the mingw
 runtime, perhaps you should have said that. Then, even if you are not
 motivated to approach the MinGW developers to effect such changes, someone
 else (e.g. me) could have.

Fine. How about some ACTUALLY DOES SOMETHING USEFUL instead of quibbling over
the particular wording I used in a bugzilla comment?


[Bug c++/58979] [4.8/4.9 Regression] ICE with invalid use of pointer-to-member

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58979

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
Yeah, I'll do it.


[Bug c++/58983] ICE when inheriting templated constructor

2013-11-04 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58983

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Then let's close it.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Reduced testcase:
int
foo (int x)
{
  switch (x)
{
case 0:
case 1:
case 9:
  break;
default:
  __builtin_unreachable ();
}
  return x;
}


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Bernd Edlinger from comment #7)
 (In reply to Jakub Jelinek from comment #6)
  That doesn't look safe, negative rbitpos is not necessarily undefined
  behavior.
  Can't you get the same with say
  struct S { unsigned char s : 1; };
  
  ...
  void function(struct S *p)
  {
p[-1].s = 0;
  }
 
 no. I checked that. This is folded quite differently:
 
   MEM[(struct S *)p_1(D) + -1B].s = 0;
 
 and there is no ICE in this case.

But this is really nothing the expansion code should rely on to detect if the
code is undefined behavior or not.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31147
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31147action=edit
gcc49-pr58970.patch

Untested fix.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
On it.


[Bug c++/58845] [4.8/4.9 Regression] Operator || and broken for vectors

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Well, what does OpenCL specify here?  IIRC we've decided on -1 (all bits set)
as true for vectors and 0 as false.  I'd prefer to allow trivial lowering
to | and  which IIRC are already supported.  That means that

 v1  v2

should be emitted as GENERIC

 (v1 != { 0, 0, ... })  (v2 != { 0, 0, ... })

where the ANDIF semantics don't make sense for vectors(?) and thus we
can directly emit GENERIC

 (v1 != { 0, 0, ... })  (v2 != { 0, 0, ... })

from the frontend.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31148
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31148action=edit
gcc49-pr58978.patch

While your patch will work too, I think it is better to fix it differently, the
problem is that single_imm_use modifies the use_stmt argument even if it
returns false, which I didn't expect.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #10 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
but this should'nt be neccessary then?

   if (bitoffset  *bitpos)
 {
   HOST_WIDE_INT adjust = bitoffset - *bitpos;
-
   gcc_assert ((adjust % BITS_PER_UNIT) == 0);
-  gcc_assert (*offset != NULL_TREE);

   *bitpos += adjust;
-  *offset
-= size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
+  if (*offset == NULL_TREE)
+*offset = size_int (-adjust / BITS_PER_UNIT);
+  else
+*offset
+  = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
   *bitstart = 0;
 }


[Bug c++/58845] [4.8/4.9 Regression] Operator || and broken for vectors

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845

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 ---
If there are no side-effects in v1 or v2, why not, but if there are
side-effects, IMHO it should act as ANDIF, not as BIT_AND_EXPR.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Bernd Edlinger from comment #10)
 but this should'nt be neccessary then?
 
if (bitoffset  *bitpos)
  {
HOST_WIDE_INT adjust = bitoffset - *bitpos;
 -
gcc_assert ((adjust % BITS_PER_UNIT) == 0);
 -  gcc_assert (*offset != NULL_TREE);
  
*bitpos += adjust;
 -  *offset
 - = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
 +  if (*offset == NULL_TREE)
 + *offset = size_int (-adjust / BITS_PER_UNIT);
 +  else
 + *offset
 +   = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
*bitstart = 0;
  }

Can you prove it isn't necessary?  I mean, *bitpos could still be smaller than
bitoffset, even when not negative, say with some packed+aligned structures
containing bitfields or similar.  NULL_TREE *offset is the same thing as zero
at that spot, just perhaps less efficient in that case, so I think if we can't
prove it will not be hit, it is easy to handle it.

[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

   Assignee|mpolacek at gcc dot gnu.org|jakub at gcc dot gnu.org

--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org ---
Reassigning.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #12 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
(In reply to Jakub Jelinek from comment #11)
 (In reply to Bernd Edlinger from comment #10)
  but this should'nt be neccessary then?
  
 if (bitoffset  *bitpos)
   {
 HOST_WIDE_INT adjust = bitoffset - *bitpos;
  -
 gcc_assert ((adjust % BITS_PER_UNIT) == 0);
  -  gcc_assert (*offset != NULL_TREE);
   
 *bitpos += adjust;
  -  *offset
  -   = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
  +  if (*offset == NULL_TREE)
  +   *offset = size_int (-adjust / BITS_PER_UNIT);
  +  else
  +   *offset
  + = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
 *bitstart = 0;
   }
 
 Can you prove it isn't necessary?  I mean, *bitpos could still be smaller
 than bitoffset, even when not negative, say with some packed+aligned
 structures containing bitfields or similar.  NULL_TREE *offset is the same
 thing as zero at that spot, just perhaps less efficient in that case, so I
 think if we can't prove it will not be hit, it is easy to handle it.

hmm, my english...

I meant the change here is not necessary, because after the
if (*bitpos  0) {...},
*offset can no longer be NULL, and I'd leave the assertion untouched.

[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Bernd Edlinger from comment #12)
 I meant the change here is not necessary, because after the
 if (*bitpos  0) {...},
 *offset can no longer be NULL, and I'd leave the assertion untouched.

Sure, if *bitpos was initially negative, then *offset won't be NULL there.
But what I mean, are you sure that non-negative *bitpos will never be smaller
than bitoffset if *offset is NULL?  Of course not on this testcase...


[Bug c++/51671] g++ fails to allow a redundant typedef if the redundant typedef depends on a template parameter

2013-11-04 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51671

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Another testcase:

template typename T, typename U
struct S
{
  static void f()
  {
typedef T q;
typedef U q;
  }
};


[Bug c++/58845] [4.8/4.9 Regression] Operator || and broken for vectors

2013-11-04 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845

--- Comment #7 from rguenther at suse dot de rguenther at suse dot de ---
On Mon, 4 Nov 2013, jakub at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845
 
 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 ---
 If there are no side-effects in v1 or v2, why not, but if there are
 side-effects, IMHO it should act as ANDIF, not as BIT_AND_EXPR.

Then I'd say leave the whole thing to gimplification.

Richard.


[Bug tree-optimization/58946] [4.9 Regression] internal compiler error: in operator[], at vec.h:722

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58946

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Nov  4 10:29:42 2013
New Revision: 204348

URL: http://gcc.gnu.org/viewcvs?rev=204348root=gccview=rev
Log:
PR tree-optimization/58946
* tree-ssa-reassoc.c (maybe_optimize_range_tests): Update all
bbs with bbinfo[idx].op != NULL before all blocks with
bbinfo[idx].op == NULL.

* gcc.c-torture/compile/pr58946.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr58946.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-reassoc.c


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #14 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
(In reply to Jakub Jelinek from comment #13)
 (In reply to Bernd Edlinger from comment #12)
  I meant the change here is not necessary, because after the
  if (*bitpos  0) {...},
  *offset can no longer be NULL, and I'd leave the assertion untouched.
 
 Sure, if *bitpos was initially negative, then *offset won't be NULL there.
 But what I mean, are you sure that non-negative *bitpos will never be
 smaller than bitoffset if *offset is NULL?  Of course not on this testcase...

If *bitpos is initially negative, I can proove that *offset is initially NULL.

The second statement cannot be prooved,
because after *bitpos = ... *bitpos is between 0..7.

For instance 

struct S
{
  struct T
  {
int a:8;
int b:1;
  } mode[1];
};

Consider p-mode[-1].b = 0, I'd expect bitoffset=8, less than *bitpos=0.

Right?


[Bug middle-end/58981] movmem/setmem use mode wider than Pmode for size

2013-11-04 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58981

--- Comment #7 from H.J. Lu hjl.tools at gmail dot com ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2013-11/msg00179.html


[Bug c++/58845] [4.8/4.9 Regression] Operator || and broken for vectors

2013-11-04 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845

--- Comment #8 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Richard Biener from comment #5)
 Well, what does OpenCL specify here?

The logical operators and (), or (||) operate on all scalar and vector
built-in types.  For scalar built-in types only, and () will only evaluate
the right hand operand if the left hand operand compares unequal to 0.  For
scalar built-in types only, or (||) will only evaluate the right hand operand
if the left hand operand compares equal to 0.  For built-in vector types, both
operands are evaluated and the operators are applied component-wise.  If one
operand is a scalar and the other is a vector, the scalar may be subject to the
usual arithmetic conversion to the element type used by the vector operand. The
scalar type is then widened to a vector that has the same number of components
as the vector operand. The operation is done component-wise resulting in the
same size vector.

The logical operator exclusive or (^^) is reserved.

The result is a scalar signed integer of type int if the source operands are
scalar and a vector signed integer type of the same size as the source operands
if the source operands are vector types. Vector source operands of type charn
and ucharn return a charn result; vector source operands of type shortn and
ushortn return a shortn result; vector source operands of type intn, uintn and
floatn return an intn result; vector source operands of type longn, ulongn and
doublen return a longn result.

For scalar types, the logical operators shall return 0 if the result of the
operation is false and 1 if the result is true. For vector types, the logical
operators shall return 0 if the result of the operation is false and -1 (i.e.
all bits set) if the result is true.

  v1  v2
 
 should be emitted as GENERIC
 
  (v1 != { 0, 0, ... })  (v2 != { 0, 0, ... })
 
 where the ANDIF semantics don't make sense for vectors(?) and thus we
 can directly emit GENERIC
 
  (v1 != { 0, 0, ... })  (v2 != { 0, 0, ... })
 
 from the frontend.

IIRC that's what the patch did:
http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00783.html

(In reply to Jakub Jelinek from comment #6)
 If there are no side-effects in v1 or v2, why not, but if there are
 side-effects, IMHO it should act as ANDIF, not as BIT_AND_EXPR.

What does ANDIF mean in this case? Only evaluate v2 if v1 has at least one
non-zero element? That still doesn't match the scalar version. Only evaluate
parts of v2? That doesn't seem possible.

(In reply to rguent...@suse.de from comment #7)
 Then I'd say leave the whole thing to gimplification.

And implement what semantics in gimplification?


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #8 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #6)
 Created attachment 31148 [details]
 gcc49-pr58978.patch
 
 While your patch will work too, I think it is better to fix it differently,
 the problem is that single_imm_use modifies the use_stmt argument even if it
 returns false, which I didn't expect.

Yeah, that looks good to me.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #15 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
(In reply to Bernd Edlinger from comment #14)
 (In reply to Jakub Jelinek from comment #13)
  (In reply to Bernd Edlinger from comment #12)
   I meant the change here is not necessary, because after the
   if (*bitpos  0) {...},
   *offset can no longer be NULL, and I'd leave the assertion untouched.
  
  Sure, if *bitpos was initially negative, then *offset won't be NULL there.
  But what I mean, are you sure that non-negative *bitpos will never be
  smaller than bitoffset if *offset is NULL?  Of course not on this 
  testcase...
 
 If *bitpos is initially negative, I can proove that *offset is initially
 NULL.

However we can be sure (to assert), that if offset is initially NULL,
and *bitpos is initially = 0, then
the bit offset of the bitfield representative must be = 0 too.
because otherwiese, the bitfield would start at offset  0 and end
at an offset  0. Which is not possible.

Therefore bitoffset = *bitpos if *bitpos is initially = 0 and *offset is
initially == NULL. QED?


[Bug tree-optimization/58946] [4.9 Regression] internal compiler error: in operator[], at vec.h:722

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58946

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

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


[Bug c++/58845] [4.8/4.9 Regression] Operator || and broken for vectors

2013-11-04 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845

--- Comment #9 from rguenther at suse dot de rguenther at suse dot de ---
On Mon, 4 Nov 2013, glisse at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845
 
 --- Comment #8 from Marc Glisse glisse at gcc dot gnu.org ---
 (In reply to Richard Biener from comment #5)
  Well, what does OpenCL specify here?
 
 The logical operators and (), or (||) operate on all scalar and vector
 built-in types.  For scalar built-in types only, and () will only evaluate
 the right hand operand if the left hand operand compares unequal to 0.  For
 scalar built-in types only, or (||) will only evaluate the right hand operand
 if the left hand operand compares equal to 0.

  For built-in vector types, both
 operands are evaluated and the operators are applied component-wise.  If one
 operand is a scalar and the other is a vector, the scalar may be subject to 
 the
 usual arithmetic conversion to the element type used by the vector operand. 
 The
 scalar type is then widened to a vector that has the same number of components
 as the vector operand. The operation is done component-wise resulting in the
 same size vector.

Thus no short-circuiting for vector  or ||.

 The logical operator exclusive or (^^) is reserved.
 
 The result is a scalar signed integer of type int if the source operands are
 scalar and a vector signed integer type of the same size as the source 
 operands
 if the source operands are vector types. Vector source operands of type charn
 and ucharn return a charn result; vector source operands of type shortn and
 ushortn return a shortn result; vector source operands of type intn, uintn and
 floatn return an intn result; vector source operands of type longn, ulongn and
 doublen return a longn result.
 
 For scalar types, the logical operators shall return 0 if the result of the
 operation is false and 1 if the result is true. For vector types, the logical
 operators shall return 0 if the result of the operation is false and -1 (i.e.
 all bits set) if the result is true.
 
   v1  v2
  
  should be emitted as GENERIC
  
   (v1 != { 0, 0, ... })  (v2 != { 0, 0, ... })
  
  where the ANDIF semantics don't make sense for vectors(?) and thus we
  can directly emit GENERIC
  
   (v1 != { 0, 0, ... })  (v2 != { 0, 0, ... })
  
  from the frontend.
 
 IIRC that's what the patch did:
 http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00783.html
 
 (In reply to Jakub Jelinek from comment #6)
  If there are no side-effects in v1 or v2, why not, but if there are
  side-effects, IMHO it should act as ANDIF, not as BIT_AND_EXPR.
 
 What does ANDIF mean in this case? Only evaluate v2 if v1 has at least one
 non-zero element? That still doesn't match the scalar version. Only evaluate
 parts of v2? That doesn't seem possible.

Yeah, exactly.  Still if there is a sequence point at  or ||
(even if both arms are always executed) then the order of evaluating
side-effects is important.  IIRC only AND/ORIF have an implicit
sequence point during gimplification.

 (In reply to rguent...@suse.de from comment #7)
  Then I'd say leave the whole thing to gimplification.
 
 And implement what semantics in gimplification?

No short-circuiting but preserving the sequence point (if there is one)


[Bug c++/58845] [4.8/4.9 Regression] Operator || and broken for vectors

2013-11-04 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845

--- Comment #10 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to rguent...@suse.de from comment #9)
 Thus no short-circuiting for vector  or ||.

Indeed. Though we already deviated from OpenCL for ?: and as mentioned in my
patch we could do short-circuit for the mixed scalarvector if we wanted to
(though we probably don't).

 No short-circuiting but preserving the sequence point (if there is one)

Ah, I'd completely missed that we might want a sequence point there, thanks, it
makes sense.


[Bug c++/58979] [4.8/4.9 Regression] ICE with invalid use of pointer-to-member

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58979

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
I've posted a patch for this a while ago, but so far it hasn't showed up on
gcc-patches.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #16 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Bernd Edlinger from comment #15)
 (In reply to Bernd Edlinger from comment #14)
  (In reply to Jakub Jelinek from comment #13)
   (In reply to Bernd Edlinger from comment #12)
I meant the change here is not necessary, because after the
if (*bitpos  0) {...},
*offset can no longer be NULL, and I'd leave the assertion untouched.
   
   Sure, if *bitpos was initially negative, then *offset won't be NULL there.
   But what I mean, are you sure that non-negative *bitpos will never be
   smaller than bitoffset if *offset is NULL?  Of course not on this 
   testcase...
  
  If *bitpos is initially negative, I can proove that *offset is initially
  NULL.
 
 However we can be sure (to assert), that if offset is initially NULL,
 and *bitpos is initially = 0, then
 the bit offset of the bitfield representative must be = 0 too.
 because otherwiese, the bitfield would start at offset  0 and end
 at an offset  0. Which is not possible.

Why is it not possible?
struct __attribute__((packed, aligned (2))) T { int a : 31; int b : 1; };
void
foo (char *p)
{
  ((struct T *)(p - 2))-b = 1;
}
Here, *bitpos could be (at least in theory) 15, while bitoffset 31 and *offset
could still be NULL_TREE, because the bitpos fits in signed HWI.
Again, perhaps it is right now optimized into a MEM_REF and get_bit_range won't
see that, but can you rule that out just because of that?


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #17 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
struct T {
  unsigned char b : 8;
  unsigned char s : 1;
};

struct S {
  char x;
  struct T t[1];
};

void function(int x, struct S *p)
{
  if (x == -1)
p-t[x].s = 0;
}

another test case. so this is possible...


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #18 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
Well, how about this version?
Does'nt it look like a much smaller change?

--- expr.c.jj2013-10-31 14:57:05.0 +0100
+++ expr.c2013-11-04 12:51:55.013931114 +0100
@@ -4582,7 +4582,8 @@ get_bit_range (unsigned HOST_WIDE_INT *b
   HOST_WIDE_INT adjust = bitoffset - *bitpos;

   gcc_assert ((adjust % BITS_PER_UNIT) == 0);
-  gcc_assert (*offset != NULL_TREE);
+  if (*offset == NULL_TREE)
+*offset = size_zero_node;

   *bitpos += adjust;
   *offset


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #19 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Bernd Edlinger from comment #18)
 Well, how about this version?
 Does'nt it look like a much smaller change?
 
 --- expr.c.jj 2013-10-31 14:57:05.0 +0100
 +++ expr.c2013-11-04 12:51:55.013931114 +0100
 @@ -4582,7 +4582,8 @@ get_bit_range (unsigned HOST_WIDE_INT *b
HOST_WIDE_INT adjust = bitoffset - *bitpos;
  
gcc_assert ((adjust % BITS_PER_UNIT) == 0);
 -  gcc_assert (*offset != NULL_TREE);
 +  if (*offset == NULL_TREE)
 + *offset = size_zero_node;
  
*bitpos += adjust;
*offset

But you then have undefined behavior if *bitpos is HOST_WIDE_INT_MIN.  Or could
for very small other *bitpos and not really small bitoffset, etc.  And, while
you save a few characters on the line, it means it is more expensive at
runtime.

[Bug other/58944] [4.9 Regression] bogus -Wunused-macros warnings when compiling Libreoffice

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58944

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
   Target Milestone|--- |4.9.0

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Looks like a system_header check doesn't work anymore.


[Bug rtl-optimization/57518] [4.8 Regression] Redundant insn generated in LRA

2013-11-04 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57518

Hans-Peter Nilsson hp at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hp at gcc dot gnu.org

--- Comment #8 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
Why is the test-case gcc.dg/pr57518.c valid?
It just checks that a REG_EQUIV is not attached, but from the analysis it seems
the need is to check the related register against some condition; the note
seems valid.  Or maybe the test-case should be made machine-specific.


[Bug c/58943] [4.7/4.8/4.9 Regression] wrong calculation of indirect structure member arithmetic via function call

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58943

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-04
  Known to work||3.3.6
   Target Milestone|--- |4.7.4
Summary|wrong calculation of|[4.7/4.8/4.9 Regression]
   |indirect structure member   |wrong calculation of
   |arithmetic via function |indirect structure member
   |call|arithmetic via function
   ||call
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.


[Bug regression/58985] New: [4.7 Regression]: gcc.dg/pr57518.c scan-rtl-dump-not ira REG_EQUIV...

2013-11-04 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58985

Bug ID: 58985
   Summary: [4.7 Regression]: gcc.dg/pr57518.c scan-rtl-dump-not
ira REG_EQUIV...
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: regression
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hp at gcc dot gnu.org
CC: vmakarov at gcc dot gnu.org, wmi at google dot com
  Host: x86_64-unknown-linux-gnu
Target: cris-axis-elf

This test previously passed, now it fails.  Revision r204212 (removing the
regmove pass) caused this test to fail for cris-elf.  This PR tracks this
regression.  The situation was problematic because at the time, the tree was
broken due to revision r204205, reverted in r204254.  In this revision range
the regression was tracked with the vital part of r204254 applied; the test
still fails at r204346.

In gcc.log:
PASS: gcc.dg/pr57518.c (test for excess errors)
PASS: gcc.dg/pr57518.c scan-rtl-dump-not ira REG_EQUIV[^\n]*mem[^\n]*ip

I have some doubts that the test-case is actually valid as-is for all ports,
see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57518#c8.

Author of revision 204212 and author of PR57518 CC:ed.


[Bug c/58942] cilkplus internal compiler error: tree check __sec_reduce_max_ind

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58942

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-04
 CC||bviyer at gmail dot com
Version|unknown |4.9.0
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.


[Bug preprocessor/58687] #line __LINE__ ... changes subsequent line numbers

2013-11-04 Thread mtewoodbury at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58687

--- Comment #15 from Max TenEyck Woodbury mtewoodbury at gmail dot com ---
Could you all give me some idea on how soon this might be applied?


[Bug regression/58985] [4.7 Regression]: gcc.dg/pr57518.c scan-rtl-dump-not ira REG_EQUIV...

2013-11-04 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58985

--- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
Created attachment 31149
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31149action=edit
pr57518.c.211r.ira

IRA dump at r204211 (plus reverted breakage patch) as scanned by the test.


[Bug middle-end/58941] [4.7/4.8/4.9 Regression] MIPS: value modification on zero-length array optimized away

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58941

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
  Known to work||4.3.4
   Keywords||alias, wrong-code
   Last reconfirmed||2013-11-04
  Component|c   |middle-end
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
 Ever confirmed|0   |1
Summary|MIPS: value modification on |[4.7/4.8/4.9 Regression]
   |zero-length array optimized |MIPS: value modification on
   |away|zero-length array optimized
   ||away
   Target Milestone|--- |4.7.4

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed, mine.


[Bug libstdc++/58938] [4.7/4.8/4.9 Regression] std::exception_ptr is missing on architectures with incomplete atomic int support

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.4


[Bug rtl-optimization/58934] [4.9 Regression]: build fails on cris-elf in reload_cse_simplify_operands for newlib dtoa.c

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58934

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

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


[Bug regression/58985] [4.7 Regression]: gcc.dg/pr57518.c scan-rtl-dump-not ira REG_EQUIV...

2013-11-04 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58985

--- Comment #2 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
Created attachment 31150
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31150action=edit
pr57518.c.210r.ira

IRA dump of r204212 (plus reverted breakage patch) as scanned by the test; this
is the one that fails apparently because it has

(expr_list:REG_EQUIV (mem/j/c:QI (const:SI (plus:SI (symbol_ref:SI (ip) 
var_decl 0x7f37b3e5f390 ip) (const_int 2 [0x2]))) [0 ip+2 S1 A8])


[Bug bootstrap/58933] IRA ICE in update_costs_from_allocno

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58933

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

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


[Bug tree-optimization/58915] [missed optimization] GCC fails to get the loop bound for some loops.

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58915

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
True, it may still help in some cases though.

On my list of nice-things-to-have is still a generic predicate collecting
 simplification machinery similar to what we have with tree-affine.c.
That is collect ||  predicates in a vector and simplify / normalize
them and solve queries against them, like in this case whether we can
derive range information from them.


[Bug regression/58985] [4.7 Regression]: gcc.dg/pr57518.c scan-rtl-dump-not ira REG_EQUIV...

2013-11-04 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58985

--- Comment #3 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
Created attachment 31151
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31151action=edit
pr57518.s

Generated assembly.  The contents at r204211 is identical to that at r204212.


[Bug c++/58986] New: [C++11] Narrowing for initializer lists must be an error

2013-11-04 Thread thomas.br...@virtuell-zuhause.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58986

Bug ID: 58986
   Summary: [C++11] Narrowing for initializer lists must be an
error
   Product: gcc
   Version: 4.8.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thomas.br...@virtuell-zuhause.de

Compiling
#
struct B {
  B(int, double) {}
};

void g(B) {};
int main(int argc, char** argv)
{
  g( {'a', 'b'} ); // OK: g(B(int,double)) user-defined conversion
  g( {1.0, 1.0} ); // error: narrowing
}
#
with LANG=C g++ -std=c++11 gcc-bug-narrowing.cpp

with g++ 4.8.2 compiles fine with the warning:
#
gcc-bug-narrowing.cpp: In function 'int main(int, char**)':
gcc-bug-narrowing.cpp:9:17: warning: narrowing conversion of '1.0e+0' from
'double' to 'int' inside { } [-Wnarrowing]
   g( {1.0, 1.0} ); // error: narrowing
#

Although C++11 standard §13.3.3.1.5 3 states that narrowing for initializer
lists is an error.

[Bug libstdc++/58982] [4.9 Regression] std::vectorstd::atomicint vai(10); does not compile anymore

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58982

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug c++/58966] [4.9 Regression] [c++11] ICE with wrong usage of constexpr

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58966

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P5
   Target Milestone|--- |4.9.0


[Bug rtl-optimization/58960] [4.9 regression] ICE in bmp_iter_set_init

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58960

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug target/58964] [4.9 Regression] Bogus message: error: -mpreferred-stack-boundary=0 is not between 2 and 12

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58964

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu.org

--- Comment #20 from Richard Biener rguenth at gcc dot gnu.org ---
Eric declared negative bitpos to be a nono that the expander is not handling
well.  Thus, Eric, please chime in here.


[Bug tree-optimization/58958] [4.9 Regression] Wrong aliasing info for variable index

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58958

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-04
   Target Milestone|--- |4.9.0
 Ever confirmed|0   |1

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


[Bug rtl-optimization/57518] [4.8 Regression] Redundant insn generated in LRA

2013-11-04 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57518

--- Comment #9 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
See also PR58985.


[Bug tree-optimization/58956] [4.7/4.8/4.9 Regression] wrong code at -O1 and above (affecting gcc 4.6 to trunk)

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58956

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
   Target Milestone|--- |4.7.4


[Bug tree-optimization/58955] [4.9 Regression] wrong code at -O3 on x86_64-linux-gnu

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58955

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Mine.


[Bug bootstrap/58951] [4.9 regression] cilk build fails due to use of -ldl

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58951

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||build
   Target Milestone|--- |4.9.0


[Bug tree-optimization/58984] [4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58984

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Ah, the reason why r199252 doesn't fix this is that esra changes o.f0 = 1;
into a MEM_REF, essentially *(char *)o = 1, because the f0 has 8 bits.
So, determine_known_aggregate_parts doesn't consider the o.f0 = 1 store as
bitfield access.
If in the testcase int f0:8 is replaced with char f0, then it is miscompiled
even at -O2, and then of course o.f0 = 1 is not a bitfield, but still, it
overlaps with the bit field representative of the other bitfields.
So, either the replacement code really needs to be taught about bitfields
anyway
(at least look not just at offset, but also size of the known value and not
optimize into a constant if the access is to some bits beyond the known value
extent), or the punting in determine_known_aggregate_parts would need to be
much more conservative.


[Bug tree-optimization/58957] [4.8 Regression] compilation slow at -O3 on x86_64-linux-gnu (both 32-bit and 64-bit modes)

2013-11-04 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58957

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||compile-time-hog
  Known to work||4.7.3, 4.9.0
Summary|[4.8 Regression]|[4.8 Regression]
   |compilation hangs at -O3 on |compilation slow at -O3 on
   |x86_64-linux-gnu (both  |x86_64-linux-gnu (both
   |32-bit and 64-bit modes)|32-bit and 64-bit modes)
  Known to fail||4.8.0, 4.8.2

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
I think it's just awfully slow (deep loop nest, possible to unroll completely).
It terminates for me on the branch and for 4.8.2 and 4.8.1.

 tree CFG cleanup:   8.49 (88%) usr   0.00 ( 0%) sys   8.52 (87%) wall 
   783 kB ( 2%) ggc
 TOTAL :   9.70 0.06 9.80 
51528 kB

on trunk and 4.7.3:

 TOTAL :   0.09 0.00 0.10  
1865 kB


[Bug c++/58986] [C++11] Narrowing for initializer lists must be an error

2013-11-04 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58986

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
Dup.

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


[Bug c++/55783] Warnings instead of compiler errors for narrowing conversions within list-initializations

2013-11-04 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55783

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||thomas.braun@virtuell-zuhau
   ||se.de

--- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com ---
*** Bug 58986 has been marked as a duplicate of this bug. ***


[Bug libstdc++/58938] [4.7/4.8/4.9 Regression] std::exception_ptr is missing on architectures with incomplete atomic int support

2013-11-04 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #8 from Paolo Carlini paolo.carlini at oracle dot com ---
Closing then.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread octoploid at yandex dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #9 from octoploid at yandex dot com ---
With your patch applied I get this new ICE:

/home/markus/mozilla-central/js/src/jit/IonBuilder.cpp:6937:1: internal
compiler error: Segmentation fault
 IonBuilder::jsop_getelem_typed(MDefinition *obj, MDefinition *index,
 ^
0xb15d0f crash_signal
../../gcc/gcc/toplev.c:334
0xd2a30f single_imm_use
../../gcc/gcc/ssa-iterators.h:426
0xd2a30f all_imm_uses_in_stmt_or_feed_cond
../../gcc/gcc/tree-vrp.c:6480
0xd2a30f remove_range_assertions
../../gcc/gcc/tree-vrp.c:6622
0xd2a30f execute_vrp
../../gcc/gcc/tree-vrp.c:9759
0xd2a30f execute
../../gcc/gcc/tree-vrp.c:9842
Please submit a full bug report

I'm currently reducing this testcase.


[Bug tree-optimization/58984] [4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58984

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 #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31152
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31152action=edit
gcc49-pr58984.patch

Untested fix.  As the access size isn't preserved, I'm checking TYPE_SIZE
(TREE_TYPE (v-value)), I believe it should be the same, otherwise we'd have an
invalid store in the caller.  I'll try to bootstrap/regtest an instrumented
version of this to log in the cases where this punted.


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #31148|0   |1
is obsolete||

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31153
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31153action=edit
gcc49-pr58978.patch

Supposedly this updated patch would fix even that?


[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread octoploid at yandex dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #10 from octoploid at yandex dot com ---
(In reply to octoploid from comment #9)
 With your patch applied I get this new ICE:

I've posted the wrong backtrace. Here's the correct one:

/var/tmp/gcc_test/usr/local/bin/g++ -w -c -std=gnu++0x  -O2  test.ii
/home/markus/mozilla-central/js/src/jit/IonBuilder.cpp: In member function
‘bool js::jit::IonBuilder::jsop_getelem_typed(js::jit::MDefinition*,
js::jit::MDefinition*, js::Sca
larTypeRepresentation::Type)’:
/home/markus/mozilla-central/js/src/jit/IonBuilder.cpp:6937:1: internal
compiler error: tree check: expected ssa_name, have component_ref in
single_imm_use, at ssa-iterators.
h:419
 IonBuilder::jsop_getelem_typed(MDefinition *obj, MDefinition *index,
 ^
0xd21764 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
../../gcc/gcc/tree.c:9421
0xd1fc95 tree_check
../../gcc/gcc/tree.h:2902
0xd1fc95 single_imm_use
../../gcc/gcc/ssa-iterators.h:419
0xd1fc95 all_imm_uses_in_stmt_or_feed_cond
../../gcc/gcc/tree-vrp.c:6480
0xd1fc95 remove_range_assertions
../../gcc/gcc/tree-vrp.c:6622
0xd1fc95 execute_vrp
../../gcc/gcc/tree-vrp.c:9759
0xd1fc95 execute
../../gcc/gcc/tree-vrp.c:9842
Please submit a full bug report,

[Bug tree-optimization/58978] [4.9 Regression] ICE: Segmentation fault

2013-11-04 Thread octoploid at yandex dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

--- Comment #12 from octoploid at yandex dot com ---
(In reply to Jakub Jelinek from comment #11)
 Created attachment 31153 [details]
 gcc49-pr58978.patch
 
 Supposedly this updated patch would fix even that?

Yes. Thanks.


[Bug libstdc++/58938] [4.7/4.8/4.9 Regression] std::exception_ptr is missing on architectures with incomplete atomic int support

2013-11-04 Thread rafal at rawicki dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938

--- Comment #9 from Rafał Rawicki rafal at rawicki dot org ---
I'm sorry about my confusion of ATOMIC_INT_LOCK_FREE and
_GLIBCXX_ATOMIC_BUILTINS meaning.

In the meantime I've checked, when ATOMIC_INT_LOCK_FREE is defined as 2 and the
target platform I have problems with (XScale, that is ARMv5), shouldn't have
that defined. I'm still checking why I had _GLIBCXX_ATOMIC_BUILTINS_4 on gcc
4.6.

I would like to have the same codebase on all platforms and I wouldn't like to
stop using std::exception_ptr. Jonathan Wakely wrote, that without hardware
support I need libatomic.so or I'd have an undefined behaviour.

I do link with libatomic.so - does that mean, I can patch this conditional out
(and similar conditional in the exception_ptr.h) and use exception_ptrs?

Why it was decided to remove a part of standard library instead of enforcing
user to link with libatomic.so?

[Bug bootstrap/58951] [4.9 regression] cilk build fails due to use of -ldl

2013-11-04 Thread bviyer at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58951

Balaji V. Iyer bviyer at gmail dot com changed:

   What|Removed |Added

 CC||bviyer at gmail dot com

--- Comment #1 from Balaji V. Iyer bviyer at gmail dot com ---
I am on it.  I will let you know as soon as get a fix.

Thanks,

Balaji V. Iyer.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #21 from Jakub Jelinek jakub at gcc dot gnu.org ---
If expansion has issues with that, then supposedly the
+  if (*bitpos  0)
+{
+  gcc_assert (*offset == NULL_TREE);
+  *offset = size_int (*bitpos  (BITS_PER_UNIT == 8
+ ? 3 : exact_log2 (BITS_PER_UNIT)));
+  *bitpos = BITS_PER_UNIT - 1;
+}
hunk with s/\*//g could be moved to the get_bit_range caller, right above the
call.  But, do we have testcases that fail now?


[Bug c++/58979] [4.8/4.9 Regression] ICE with invalid use of pointer-to-member

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58979

--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Mon Nov  4 16:01:49 2013
New Revision: 204352

URL: http://gcc.gnu.org/viewcvs?rev=204352root=gccview=rev
Log:
PR c++/58979
c-family/
* c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
testsuite/
* g++.dg/diagnostic/pr58979.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/diagnostic/pr58979.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/58968] Powerpc -mlra cannot compile ormas1.f in gamess Spec 2006 with -m32 -mcpu=power7 -O3 -mlra -w -ffast-math -funroll-loops

2013-11-04 Thread vmakarov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58968

--- Comment #3 from Vladimir Makarov vmakarov at gcc dot gnu.org ---
Author: vmakarov
Date: Mon Nov  4 16:12:29 2013
New Revision: 204353

URL: http://gcc.gnu.org/viewcvs?rev=204353root=gccview=rev
Log:
2013-11-04  Vladimir Makarov  vmaka...@redhat.com

PR rtl-optimization/58968
* lra-spills.c (return_regno_p): New function.
(lra_final_code_change): Use it.

2013-11-04  Vladimir Makarov  vmaka...@redhat.com

PR rtl-optimization/58968
* gfortran.dg/pr58968.f: New


Added:
trunk/gcc/testsuite/gfortran.dg/pr58968.f
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-spills.c
trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/58968] Powerpc -mlra cannot compile ormas1.f in gamess Spec 2006 with -m32 -mcpu=power7 -O3 -mlra -w -ffast-math -funroll-loops

2013-11-04 Thread vmakarov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58968

Vladimir Makarov vmakarov at gcc dot gnu.org changed:

   What|Removed |Added

 CC||vmakarov at gcc dot gnu.org

--- Comment #4 from Vladimir Makarov vmakarov at gcc dot gnu.org ---
(In reply to Steven Bosscher from comment #2)
 Created attachment 31143 [details]
 Somewhat reduced test case

Thanks for the test reducing.


[Bug c++/58979] [4.8/4.9 Regression] ICE with invalid use of pointer-to-member

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58979

--- Comment #6 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Mon Nov  4 16:21:34 2013
New Revision: 204354

URL: http://gcc.gnu.org/viewcvs?rev=204354root=gccview=rev
Log:
PR c++/58979
c-family/
* c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
testsuite/
* g++.dg/diagnostic/pr58979.C: New test.


Added:
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/diagnostic/pr58979.C
Modified:
branches/gcc-4_8-branch/gcc/c-family/ChangeLog
branches/gcc-4_8-branch/gcc/c-family/c-common.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug c++/58979] [4.8/4.9 Regression] ICE with invalid use of pointer-to-member

2013-11-04 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58979

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed.


[Bug libstdc++/58938] [4.7/4.8/4.9 Regression] std::exception_ptr is missing on architectures with incomplete atomic int support

2013-11-04 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938

--- Comment #10 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Rafał Rawicki from comment #9)
 I do link with libatomic.so - does that mean, I can patch this conditional
 out (and similar conditional in the exception_ptr.h) and use exception_ptrs?

You could try it.  I don't know if it will work correctly.

 Why it was decided to remove a part of standard library instead of enforcing
 user to link with libatomic.so?

That's the usual policy for the library, we don't define components that rely
on features that are missing from target platforms.

[Bug tree-optimization/58984] [4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2013-11-04 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58984

--- Comment #7 from Martin Jambor jamborm at gcc dot gnu.org ---
As far as I'm concerned, the patch is fine.  Thanks for taking care of it.


[Bug tree-optimization/58984] [4.8/4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2013-11-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58984

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org ---
Well, there is if (*size_p) which should have been if (size_p) obviously,
redoing bootstrap now with that fix.


[Bug middle-end/58970] [4.7/4.8/4.9 Regression] internal compiler error: in get_bit_range, at expr.c:4562

2013-11-04 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970

--- Comment #22 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
 Eric declared negative bitpos to be a nono that the expander is not handling
 well.  Thus, Eric, please chime in here.

Well, that's a basic sanity requirement, all the routines in expmed.c dealing
with bitfields use unsigned HOST_WIDE_INT so, yes, better avoid negative values
unless you really know what you're doing...


[Bug c++/58983] ICE when inheriting templated constructor

2013-11-04 Thread wtt6 at cornell dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58983

--- Comment #4 from William Throwe wtt6 at cornell dot edu ---
Testing, I cannot reproduce either on a different machine, so probably
something just went wrong with my install here.  Sorry for the noise.


[Bug driver/55651] gcc hangs when -Wp, is passed on the command line

2013-11-04 Thread joseph at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55651

--- Comment #3 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
On Mon, 4 Nov 2013, mingjie.xing at gmail dot com wrote:

 2013-11-04  Mingjie Xing  mingjie.x...@gmail.com
 
 * common.opt (Wa, Wl, Wp,): Change JoinedOrMissing to Joined.

That sounds wrong.  Empty arguments are valid here and should be passed 
down as such.  See the thread starting at 
http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00848.html where a change 
to the handling of empty arguments was rejected.


[Bug preprocessor/58687] #line __LINE__ ... changes subsequent line numbers

2013-11-04 Thread joseph at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58687

--- Comment #16 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
On Mon, 4 Nov 2013, mtewoodbury at gmail dot com wrote:

 Could you all give me some idea on how soon this might be applied?

At some time after seeing this on gcc-patches, I or another preprocessor 
reviewer will review the patch (after checking that the FSF copyright.list 
file reflects receipt of the assignment, if the patch seems big enough to 
need it).


[Bug regression/58985] [4.9 Regression]: gcc.dg/pr57518.c scan-rtl-dump-not ira REG_EQUIV...

2013-11-04 Thread wmi at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58985

--- Comment #4 from wmi at google dot com ---
This is the testcase problem. For cris-axis-elf target, gcc doesn't use subreg
of reg 31 for the above testcase, so it is ok to generate REG_EQUIV note for
reg 31.

I will send out a patch for it soon.

Thanks for pointing out the problem.

Regards,
Wei Mi.


[Bug testsuite/58851] FAIL: gfortran.dg/unlimited_polymorphic_13.f90 -O0 execution test

2013-11-04 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58851

--- Comment #9 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to Andreas Schwab from comment #8)
 Still broken.
 (gdb) ptype r3
 type = real(kind=8)
 (gdb) ptype r4
 type = real(kind=10)

With the same error? That shouldn't be the case since the commit r204286. Can
you re-check that it fails and you have that version or newer?


[Bug ipa/58862] [4.9 Regression] LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008

2013-11-04 Thread tejohnson at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862

--- Comment #16 from Teresa Johnson tejohnson at google dot com ---
Created attachment 31154
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31154action=edit
blocksort.i


[Bug ipa/58862] [4.9 Regression] LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008

2013-11-04 Thread tejohnson at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862

--- Comment #17 from Teresa Johnson tejohnson at google dot com ---
Created attachment 31155
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31155action=edit
blocksort.gcda


[Bug ipa/58862] [4.9 Regression] LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008

2013-11-04 Thread tejohnson at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862

--- Comment #18 from Teresa Johnson tejohnson at google dot com ---
Just hit this same error with cpu2006 bzip2. The .i and .gcda are attached.
Reproduce with:

gcc -c -fprofile-use -O2 blocksort.i

blocksort.c:1136:1: internal compiler error: in edge_badness, at
ipa-inline.c:1011
 }
 ^
0xe13caa edge_badness
/usr/local/google/home/tejohnson/gcc_trunk_1/gcc/ipa-inline.c:1011
0xe16935 update_edge_key
/usr/local/google/home/tejohnson/gcc_trunk_1/gcc/ipa-inline.c:1024
0xe16935 inline_small_functions
/usr/local/google/home/tejohnson/gcc_trunk_1/gcc/ipa-inline.c:1610
0xe16935 ipa_inline
/usr/local/google/home/tejohnson/gcc_trunk_1/gcc/ipa-inline.c:2015
0xe16935 execute
/usr/local/google/home/tejohnson/gcc_trunk_1/gcc/ipa-inline.c:2385
Please submit a full bug report,


Teresa


[Bug testsuite/58851] FAIL: gfortran.dg/unlimited_polymorphic_13.f90 -O0 execution test

2013-11-04 Thread paul.richard.thomas at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58851

--- Comment #10 from paul.richard.thomas at gmail dot com paul.richard.thomas 
at gmail dot com ---
Thanks Tobias,

I was completely perplexed by that - you beat me to the reply by 32 minutes :-)

Cheers

Paul

On 4 November 2013 19:39, burnus at gcc dot gnu.org
gcc-bugzi...@gcc.gnu.org wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58851

 --- Comment #9 from Tobias Burnus burnus at gcc dot gnu.org ---
 (In reply to Andreas Schwab from comment #8)
 Still broken.
 (gdb) ptype r3
 type = real(kind=8)
 (gdb) ptype r4
 type = real(kind=10)

 With the same error? That shouldn't be the case since the commit r204286. Can
 you re-check that it fails and you have that version or newer?

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


[Bug fortran/57445] [4.8/4.9 Regression][OOP] ICE in gfc_conv_class_to_class - for OPTIONAL polymorphic array

2013-11-04 Thread pault at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57445

--- Comment #3 from Paul Thomas pault at gcc dot gnu.org ---
Author: pault
Date: Mon Nov  4 19:42:24 2013
New Revision: 204356

URL: http://gcc.gnu.org/viewcvs?rev=204356root=gccview=rev
Log:
2013-11-04  Paul Thomas  pa...@gcc.gnu.org

PR fortran/57445
* trans-expr.c (gfc_conv_class_to_class): Remove spurious
assert.

2013-11-04  Paul Thomas  pa...@gcc.gnu.org

PR fortran/57445
* gfortran.dg/optional_class_1.f90 : New test

Added:
trunk/gcc/testsuite/gfortran.dg/optional_class_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/58987] New: [c++11] ICE with template alias

2013-11-04 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58987

Bug ID: 58987
   Summary: [c++11] ICE with template alias
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: reichelt at gcc dot gnu.org

The following valid code snippet (compiled with -std=c++11) triggers an ICE
since GCC 4.7.3:

=
templatetypename T using A = T*;

templatetypename T, int = AT::X struct B;
=

bug.cc:3:28: internal compiler error: in cp_parser_type_name, at
cp/parser.c:14658
 templatetypename T, int = AT::X struct B;
^
0x65fc8c cp_parser_type_name
../../gcc/gcc/cp/parser.c:14658
0x65027f cp_parser_qualifying_entity
../../gcc/gcc/cp/parser.c:5532
0x65027f cp_parser_nested_name_specifier_opt
../../gcc/gcc/cp/parser.c:5241
0x668459 cp_parser_simple_type_specifier
../../gcc/gcc/cp/parser.c:14517
0x64eddf cp_parser_postfix_expression
../../gcc/gcc/cp/parser.c:5805
0x65156d cp_parser_unary_expression
../../gcc/gcc/cp/parser.c:7097
0x6520df cp_parser_binary_expression
../../gcc/gcc/cp/parser.c:7801
0x6525af cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:8039
0x652a14 cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:8089
0x652a14 cp_parser_constant_expression
../../gcc/gcc/cp/parser.c:8299
0x6545cb cp_parser_default_argument
../../gcc/gcc/cp/parser.c:18442
0x660cf0 cp_parser_parameter_declaration
../../gcc/gcc/cp/parser.c:18368
0x66121b cp_parser_template_parameter
../../gcc/gcc/cp/parser.c:12886
0x66121b cp_parser_template_parameter_list
../../gcc/gcc/cp/parser.c:12789
0x6648a1 cp_parser_template_declaration_after_export
../../gcc/gcc/cp/parser.c:22605
0x6709b9 cp_parser_declaration
../../gcc/gcc/cp/parser.c:10849
0x66f548 cp_parser_declaration_seq_opt
../../gcc/gcc/cp/parser.c:10771
0x670e86 cp_parser_translation_unit
../../gcc/gcc/cp/parser.c:4007
0x670e86 c_parse_file()
../../gcc/gcc/cp/parser.c:31057
0x7914e3 c_common_parse_file()
../../gcc/gcc/c-family/c-opts.c:1046
Please submit a full bug report, [etc.]

In GCC 4.7.0 - 4.7.2 the code was wrongly rejected.
(Template aliases were introduced in GCC 4.7.0).


[Bug c/58988] New: -Werror=missing-include-dirs does not work

2013-11-04 Thread bugzi...@poradnik-webmastera.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58988

Bug ID: 58988
   Summary: -Werror=missing-include-dirs does not work
   Product: gcc
   Version: 4.7.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bugzi...@poradnik-webmastera.com

I tried to pass -Werror=missing-include-dirs option to gcc in order to find all
non-existing include dirs and found that this option in broken. In gcc 4.5.2
this option is ignored - gcc does not print any message when non-existing
include dir is specified. gcc 4.7.3 prints warning only.

gcc (both tested versions) changes this warnings into errors when both
-Wmissing-include-dirs -Werror options are used, but this is not an option for
be because of other warnings which are in my code.

I tested this using following command:
g++ -c test.cc -o test.o -I/a -Werror=missing-include-dirs


  1   2   >