[Bug c/57182] Documentation implies -fprofile-arcs required to create .text.unlikely sections

2013-05-06 Thread rusty at rustcorp dot com.au


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57182



--- Comment #2 from rusty at rustcorp dot com.au 2013-05-06 07:59:02 UTC ---

Sure, once I understood how it worked, I could parse the documentation.  But

that's a bit backwards :)



Thanks,

Rusty.


[Bug c++/57181] Segfault when dealing with typedef of class stub and nested array

2013-05-06 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57181



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

  Known to work||4.7.3, 4.8.0, 4.9.0

 Resolution||FIXED

   Severity|blocker |normal



--- Comment #1 from Paolo Carlini  2013-05-06 
08:36:18 UTC ---

Already fixed for 4.7.3.


[Bug c++/57183] [C++11] auto and -Wunused-variable

2013-05-06 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57183



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-06

Summary|[C++11]auto and |[C++11] auto and

   |-Wunused-variable   |-Wunused-variable

 Ever Confirmed|0   |1


[Bug c++/57183] [C++11] auto and -Wunused-variable

2013-05-06 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57183



--- Comment #1 from Paolo Carlini  2013-05-06 
08:47:25 UTC ---

PI_1 and PI_3 are "d" instead of "r"


[Bug c/57180] Structures with a flexible arrray member have wrong size

2013-05-06 Thread mikpe at it dot uu.se


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57180



Mikael Pettersson  changed:



   What|Removed |Added



 CC||mikpe at it dot uu.se



--- Comment #1 from Mikael Pettersson  2013-05-06 
08:53:37 UTC ---

This testcase fails on armv5tel-linux-gnueabi with (at least) gcc 4.4, 4.6,

4.7, and 4.8.


[Bug middle-end/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474



--- Comment #17 from Eric Botcazou  2013-05-06 
09:33:53 UTC ---

> is the testcase when changed to 'Empty_Vector : Vector (-2);' valid?



Yes, this is the superflat case.



> In any case, in 0 .. Size, Size seems to be signed.



Yes, Stream_Element_Offset is signed.



> Also, there is the special-case

> 

>   /* Similarly, if one of the values overflows in sizetype and the

>  range is null, use 1..0 for the sizetype bounds.  */

>   else if (TREE_CODE (gnu_min) == INTEGER_CST

>&& TREE_CODE (gnu_max) == INTEGER_CST

>&& (TREE_OVERFLOW (gnu_min) || TREE_OVERFLOW (gnu_max))

>&& tree_int_cst_lt (gnu_orig_max, gnu_orig_min))

> {

>   gnu_min = size_one_node;

>   gnu_max = size_zero_node;

>   gnu_high = gnu_max;

> }

> 

> that simply chooses [1, 0] as "empty" domain, regardless of the original

> min or max.  So both cases (of which you fix only one),

> 

>   /* Otherwise, if the high bound is constant but the low bound is

>  not, we use the expression (hb >= lb) ? lb : hb + 1 for the

>  lower bound.  Note that the comparison must be done in the

>  original type to avoid any overflow during the conversion.  
> */

>   else if (TREE_CODE (gnu_max) == INTEGER_CST

>&& TREE_CODE (gnu_min) != INTEGER_CST)

> {

>   gnu_high = gnu_max;

>   gnu_min

> = build_cond_expr (sizetype,

>build_binary_op (GE_EXPR,

> boolean_type_node,

> gnu_orig_max,

> gnu_orig_min),

>gnu_min,

>size_binop (PLUS_EXPR, gnu_max,

>size_one_node));

> }

> 

>   /* Finally we use (hb >= lb) ? hb : lb - 1 for the upper bound

>  in all the other cases.  Note that, here as well as above,

>  the condition used in the comparison must be equivalent to

>  the condition (length != 0).  This is relied upon in order

>  to optimize array comparisons in compare_arrays.  */

>   else

> gnu_high

>   = build_cond_expr (sizetype,

>  build_binary_op (GE_EXPR,

>   boolean_type_node,

>   gnu_orig_max,

>   gnu_orig_min),

>  gnu_max,

>  size_binop (MINUS_EXPR, gnu_min,

>  size_one_node));

> 

> could be combined to

> 

>  else

>{

>   gnu_min

> = build_cond_expr (sizetype,

>build_binary_op (GE_EXPR,

> boolean_type_node,

> gnu_orig_max,

> gnu_orig_min),

>gnu_min,

>size_one_node));

> gnu_high

>   = build_cond_expr (sizetype,

>  build_binary_op (GE_EXPR,

>   boolean_type_node,

>   gnu_orig_max,

>   gnu_orig_min),

>  gnu_max,

>  size_zero_node);

> }

> 

> which fixes the issue for me.



Right, at the expense of pessimizing a lot the common case of constant low

bound and variable high bound.  Not acceptable I'm afraid.



> I can also easily guard the existing size_binop (MINUS_EXPR, gnu_min,

> size_one_node) for gnu_min being zero, or I can simply use

> int_const_binop here instead, as you expect that operation to _never_

> set TREE_OVERFLOW if not gnu_min had TREE_OVERFLOW set.



Adding a guard would also pessimize the common case, albeit less severely.

But using int_const_binop looks workable, I'll give it a whirl.



> Note that if gnu_max - 1 is not computable as compile-time constant here,

> but is retained as tree expression and folded later overflow will not

> be consider

[Bug c/57180] Structures with a flexible arrray member have wrong size

2013-05-06 Thread amodra at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57180



Alan Modra  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-06

 Ever Confirmed|0   |1


[Bug web/50642] onlinedocs formated text too small to read

2013-05-06 Thread skannan at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50642



--- Comment #10 from Shakthi Kannan  2013-05-06 
10:33:33 UTC ---

Created attachment 30037

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30037

Normal font for smallexample using update_web_docs_svn script



As mentioned in the gcc-patches list, the online docs are updated using

maintainer-scripts/update_web_docs_svn script. The attached patch runs makeinfo

from this script with html.css to override @smallexample attributes.


[Bug middle-end/57184] New: ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread allan at archlinux dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



 Bug #: 57184

   Summary: ICE in expand_expr_real_1, at expr.c:10478

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: al...@archlinux.org





Created attachment 30038

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30038

testcase



With 4.8.0 20130502 I get an ICE when compiling the attached test case, but

only with -g and some optimization (-O{s,1,2,3}).


[Bug middle-end/57184] ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



Marek Polacek  changed:



   What|Removed |Added



 CC||mpolacek at gcc dot gnu.org

  Known to work||4.7.3

   Target Milestone|--- |4.9.0

  Known to fail||4.8.0, 4.9.0



--- Comment #1 from Marek Polacek  2013-05-06 
10:42:45 UTC ---

Confirmed.



0x6e0e03 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,

expand_modifier, rtx_def**)

/home/marek/src/gcc/gcc/expr.c:10476

0x6ebe8b expand_expr

/home/marek/src/gcc/gcc/expr.h:444

0x6ebe8b expand_expr_addr_expr_1

/home/marek/src/gcc/gcc/expr.c:7578

0x6e177a expand_expr_addr_expr

/home/marek/src/gcc/gcc/expr.c:7701

0x6e177a expand_expr_real_1(tree_node*, rtx_def*, machine_mode,

expand_modifier, rtx_def**)

/home/marek/src/gcc/gcc/expr.c:10434

0x689d4d expand_expr

/home/marek/src/gcc/gcc/expr.h:444

0x689d4d rtl_for_decl_init

/home/marek/src/gcc/gcc/dwarf2out.c:15027

0x68a32b rtl_for_decl_location

/home/marek/src/gcc/gcc/dwarf2out.c:15234

0x6ada5d add_location_or_const_value_attribute

/home/marek/src/gcc/gcc/dwarf2out.c:15350

0x6ada5d add_location_or_const_value_attribute

/home/marek/src/gcc/gcc/dwarf2out.c:15332

0x6b4518 dwarf2out_finish

/home/marek/src/gcc/gcc/dwarf2out.c:23661

Please submit a full bug report,

with preprocessed source if appropriate.


[Bug middle-end/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



Marek Polacek  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-06

 Ever Confirmed|0   |1


[Bug middle-end/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



--- Comment #2 from Marek Polacek  2013-05-06 
10:59:39 UTC ---

Looks like COMPOUND_LITERAL_EXPR isn't gimplified properly.


[Bug middle-end/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



Marek Polacek  changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #3 from Marek Polacek  2013-05-06 
11:18:35 UTC ---

Started with http://gcc.gnu.org/r195136


[Bug middle-end/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



--- Comment #4 from Jakub Jelinek  2013-05-06 
11:24:08 UTC ---

Simplified testcase:

struct S {};

void bar (struct S *const);

static struct S *const c = &(struct S) {};



void

foo (void)

{

  bar (c);

}



Without my fix the invalid tree sharing caused canonicalize_constructor_val to

remove the COMPOUND_LITERAL_EXPR from the ADDR_EXPR in DECL_INITIAL of the

variable and replace it with the compound literal decl, but now that doesn't

happen anymore.


[Bug tree-optimization/57169] fully unrolled matrix multiplication not vectorized

2013-05-06 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57169



Richard Biener  changed:



   What|Removed |Added



   Keywords||missed-optimization

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-06

 Blocks||53947

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener  2013-05-06 
11:33:29 UTC ---

This is because basic-block SLP does not support vectorizing reductions.


[Bug libstdc++/57139] std::tuple conversion constructor does the wrong checks

2013-05-06 Thread daniel.kruegler at googlemail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57139

Daniel Krügler  changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #3 from Daniel Krügler  
2013-05-06 11:35:05 UTC ---
(In reply to comment #2)
> Good point. Sadly, is_convertible is not equivalent to implicit convertibility
> exactly due to that additional requirement (not sure if the latter is
> intentional, or an StdLib defect).

If at all this would be a core-language defect.

> Does the paper you mention address std::tuple or std::is_convertible?

The paper addresses std::tuple and std::pair. I don't see how the Library could
change std::is_convertible, because it does exactly what the core language
semantics require. The document number will be N3680 in the post-meeting
mailing.

[Bug c++/51927] [C++0x] Cannot access non-static members in initializer

2013-05-06 Thread js at lastlog dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51927



--- Comment #7 from js at lastlog dot de 2013-05-06 11:37:54 UTC ---

which gcc version will have that patch applied?



thanks for fixing, hope libcppa will work with gcc now again!



On 05/04/2013 02:33 PM, paolo.carlini at oracle dot com wrote:

>

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51927

>

> Paolo Carlini  changed:

>

> What|Removed |Added

> 

>   Status|NEW |RESOLVED

>   Blocks||54367

>   Resolution||FIXED

>

> --- Comment #6 from Paolo Carlini  
> 2013-05-04 12:33:13 UTC ---

> Done.

>


[Bug tree-optimization/57162] Ofast does not make use of avx while O3 does

2013-05-06 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57162



Richard Biener  changed:



   What|Removed |Added



   Keywords||missed-optimization

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-06

 Blocks||53947

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener  2013-05-06 
11:46:24 UTC ---

-ffast-math reassociates the expressions which then causes us to fail

the SLP build because of



-t.C:6: note: Load permutation 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 

-t.C:6: note: vect_model_load_cost: aligned.

-t.C:6: note: vect_model_load_cost: inside_cost = 1, prologue_cost = 0 .

+t.C:6: note: Load permutation 0 1 1 1 1 0 0 0 3 2 2 2 2 3 3 3 

+t.C:6: note: Build SLP failed: unsupported load permutation c[i_37][0] =

sum_44;


[Bug middle-end/57147] [4.9 Regression]: setjmp call and if body wrongly elided (function runs off early end)

2013-05-06 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57147



Richard Biener  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #6 from Richard Biener  2013-05-06 
11:47:02 UTC ---

Author: rguenth

Date: Mon May  6 11:27:29 2013

New Revision: 198625



URL: http://gcc.gnu.org/viewcvs?rev=198625&root=gcc&view=rev

Log:

2013-05-06  Richard Biener  



PR middle-end/57147

* tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If

the edge is also fallthru, preserve it and just clear the

abnormal flag.

* tree-cfgcleanup.c (remove_fallthru_edge): If the edge is

also complex, preserve that and just clear the fallthru flag.

* tree-inline.c (update_ssa_across_abnormal_edges): Also

update virtual operands.



* gcc.dg/torture/pr57147-1.c: New testcase.

* gcc.dg/torture/pr57147-2.c: Likewise.

* gcc.dg/torture/pr57147-3.c: Likewise.



Added:

trunk/gcc/testsuite/gcc.dg/torture/pr57147-1.c

trunk/gcc/testsuite/gcc.dg/torture/pr57147-2.c

trunk/gcc/testsuite/gcc.dg/torture/pr57147-3.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-cfg.c

trunk/gcc/tree-cfgcleanup.c

trunk/gcc/tree-inline.c


[Bug middle-end/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



Jakub Jelinek  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org

   |gnu.org |



--- Comment #5 from Jakub Jelinek  2013-05-06 
11:47:58 UTC ---

Created attachment 30039

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30039

gcc49-pr57184.patch



So, I see 3 different ways to fix this:



1) something like:

--- gcc/dwarf2out.c.jj2013-04-26 08:49:53.0 +0200

+++ gcc/dwarf2out.c2013-05-06 13:33:20.077898452 +0200

@@ -14933,6 +14933,9 @@ reference_to_unused (tree * tp, int * wa

 }

   else if (TREE_CODE (*tp) == STRING_CST && !TREE_ASM_WRITTEN (*tp))

 return *tp;

+  /* expand_expr can't handle COMPOUND_LITERAL_EXPRs.  */

+  else if (TREE_CODE (*tp) == COMPOUND_LITERAL_EXPR)

+return *tp;



   return NULL_TREE;

 }

where we'd just give up on COMPOUND_LITERAL_EXPRs in the initializers for debug

info purposes, unfortunately we generate worse debug info in that case



2) rtl_for_decl_init could notice this case, unshare_expr the expression and

tweak it, but that means extra 2 walk_tree calls on the initializer before

expand_expr, with two different callbacks



3) just allow expand_expr on ADDR_EXPR of COMPOUND_LITERAL_EXPR if

EXPAND_INITIALIZER

Attached patch implements 3), which is quite simple and allows to have good

debug info in this case too.


[Bug debug/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478

2013-05-06 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



Jakub Jelinek  changed:



   What|Removed |Added



  Component|middle-end  |debug

   Target Milestone|4.9.0   |4.8.1


[Bug tree-optimization/57051] Optimization regression in 4.8.0 from 4.7.2

2013-05-06 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57051



Richard Biener  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED



--- Comment #7 from Richard Biener  2013-05-06 
11:54:55 UTC ---

Mine.


[Bug tree-optimization/57185] New: ICE: Segmentation fault in add_field_for_reduction with -ftree-parallelize-loops=2 -fipa-pta

2013-05-06 Thread antoine.balestrat at gmail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57185

 Bug #: 57185
   Summary: ICE: Segmentation fault in add_field_for_reduction
with -ftree-parallelize-loops=2 -fipa-pta
Classification: Unclassified
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: antoine.balest...@gmail.com


Using GCC 4.9.0 as of 20130506 :

$ cat kk.c

int a, b;
int *d;
void f(void)
{
int c;
b %= 1;

if(1 - (b < 1))
{
int *q = 0;

if(a)
{
c = 0;
lbl:
for(*d; *d; ++*d)
if(c ? : a ? : (c = 1) ? : 0)
*q &= 1;
return;
}

q = 1;
}
goto lbl;
}

$ xgcc -O3 -w -ftree-parallelize-loops=2 -fipa-pta kk.c

kk.c: In function ‘f’:
kk.c:3:1: internal compiler error: Segmentation fault
void f(void)
 ^
0x90c35f crash_signal
../../srcdir/gcc/toplev.c:333
0x9906d0 add_field_for_reduction(reduction_info**, tree_node*)
../../srcdir/gcc/tree-parloops.c:967
0x992a52 traverse_noresize
../../srcdir/gcc/hash-table.h:928
0x992a52 traverse
../../srcdir/gcc/hash-table.h:950
0x992a52 separate_decls_in_region
../../srcdir/gcc/tree-parloops.c:1359
0x9948e5 gen_parallel_loop
../../srcdir/gcc/tree-parloops.c:1868
0x9948e5 parallelize_loops()
../../srcdir/gcc/tree-parloops.c:2218
0xa1c982 tree_parallelize_loops
../../srcdir/gcc/tree-ssa-loop.c:559
0xa1c982 tree_parallelize_loops
../../srcdir/gcc/tree-ssa-loop.c:554
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.

[Bug tree-optimization/57185] ICE: Segmentation fault in add_field_for_reduction with -ftree-parallelize-loops=2 -fipa-pta

2013-05-06 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57185



Richard Biener  changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2013-05-06

 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener  2013-05-06 
12:04:52 UTC ---

Mine.


[Bug c++/57153] [C++11] tries to use copy constructor for in-class initialized member in default constructor of template struct

2013-05-06 Thread daniel.kruegler at googlemail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57153

Daniel Krügler  changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #1 from Daniel Krügler  
2013-05-06 12:09:34 UTC ---
I agree that the code should be accepted, because the member initializer
performs direct-initialization. The very same problem also exists for gcc 4.9.0
20130428 (experimental).

[Bug tree-optimization/57185] [4.8/4.9 Regression] ICE: Segmentation fault in add_field_for_reduction with -ftree-parallelize-loops=2 -fipa-pta

2013-05-06 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57185



Richard Biener  changed:



   What|Removed |Added



  Known to work||4.7.2

   Target Milestone|--- |4.8.1

Summary|ICE: Segmentation fault in  |[4.8/4.9 Regression] ICE:

   |add_field_for_reduction |Segmentation fault in

   |with|add_field_for_reduction

   |-ftree-parallelize-loops=2  |with

   |-fipa-pta   |-ftree-parallelize-loops=2

   ||-fipa-pta

  Known to fail||4.8.0



--- Comment #2 from Richard Biener  2013-05-06 
12:09:42 UTC ---

Index: gcc/tree-parloops.c

===

--- gcc/tree-parloops.c (revision 198625)

+++ gcc/tree-parloops.c (working copy)

@@ -964,9 +964,9 @@ add_field_for_reduction (reduction_info

 {



   struct reduction_info *const red = *slot;

-  tree var = SSA_NAME_VAR (gimple_assign_lhs (red->reduc_stmt));

-  tree field = build_decl (gimple_location (red->reduc_stmt),

-  FIELD_DECL, DECL_NAME (var), TREE_TYPE (var));

+  tree var = gimple_assign_lhs (red->reduc_stmt);

+  tree field = build_decl (gimple_location (red->reduc_stmt), FIELD_DECL,

+  SSA_NAME_IDENTIFIER (var), TREE_TYPE (var));



   insert_field_into_struct (type, field);


[Bug c++/57183] [C++11] auto and -Wunused-variable

2013-05-06 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57183



Paolo Carlini  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot

   |gnu.org |com

   Target Milestone|--- |4.8.1



--- Comment #2 from Paolo Carlini  2013-05-06 
12:16:12 UTC ---

I have a patch.


[Bug c++/57176] copy elision with function arguments passed by value

2013-05-06 Thread daniel.kruegler at googlemail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57176

Daniel Krügler  changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #1 from Daniel Krügler  
2013-05-06 12:23:02 UTC ---
Unless I'm misunderstanding your suggestion I think that a compiler is not
allowed to apply copy-elision here, because that case was explicitly excluded
from 12.8 p31 by

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1148

[Bug c++/57153] [C++11] tries to use copy constructor for in-class initialized member in default constructor of template struct

2013-05-06 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57153



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-06

 Ever Confirmed|0   |1


[Bug c++/57176] copy elision with function arguments passed by value

2013-05-06 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57176



--- Comment #2 from Marc Glisse  2013-05-06 12:52:41 
UTC ---

(In reply to comment #1)

> Unless I'm misunderstanding your suggestion I think that a compiler is not

> allowed to apply copy-elision here, because that case was explicitly excluded

> from 12.8 p31 by

> 

> http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1148



Really? Apart from the fact that no compiler implements it so it probably

didn't look like a huge sacrifice at the time, it is in my opinion moving in

the wrong direction (less elision, when we actually need a lot more). Do you

have a link to the discussion, or happen to remember the arguments? I can see

that there are more possible issues with the parameter (it lives a little

longer in the caller, which gives more chances to reuse it), but the permission

to move probably already breaks most such examples.



Thanks for the notice.


[Bug c++/57176] copy elision with function arguments passed by value

2013-05-06 Thread daniel.kruegler at googlemail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57176

--- Comment #3 from Daniel Krügler  
2013-05-06 13:11:15 UTC ---
(In reply to comment #2)
> Do you have a link to the discussion, or happen to remember the arguments? 
> I can see that there are more possible issues with the parameter (it lives 
> a little longer in the caller, which gives more chances to reuse it), but 
> the permission to move probably already breaks most such examples.

I couldn't find any discussion in regard to this specific issue, but looking at

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#6

it seems that they would prefer to see a paper before the committee would
perform any further action. It seems that inline functions are possibly less
controversial and

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1049

addresses a similar problem in regard to inline functions with reference
parameters.

[Bug c++/57176] copy elision with function arguments passed by value

2013-05-06 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57176



--- Comment #4 from Marc Glisse  2013-05-06 13:44:51 
UTC ---

(In reply to comment #3)

> (In reply to comment #2)

> > Do you have a link to the discussion, or happen to remember the arguments? 

> > I can see that there are more possible issues with the parameter (it lives 

> > a little longer in the caller, which gives more chances to reuse it), but 

> > the permission to move probably already breaks most such examples.

> 

> I couldn't find any discussion in regard to this specific issue,



I am a bit surprised that handling elision and move differently was obvious

enough not to warrant any discussion (both seem at the same level of risk to me

and mostly differ in implementation difficulty). (Finding something in the

archives of wg21 is hard...)



> http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#6

> 

> it seems that they would prefer to see a paper before the committee would

> perform any further action. It seems that inline functions are possibly less

> controversial and

> 

> http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1049

> 

> addresses a similar problem in regard to inline functions with reference

> parameters.



Those are BIG changes (that would be great! and a lot of work to implement...),

I was only considering fixing the 1148 clarification. But yeah, that's probably

not going to happen without a paper (not much to write in there...), and

someone at the meeting, and only after C++14 is out, etc.


[Bug target/56560] [4.7 regression] vzeroupper clobbers argument with AVX

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56560



Eric Botcazou  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

   Target Milestone|4.7.4   |4.7.3



--- Comment #11 from Eric Botcazou  2013-05-06 
14:42:04 UTC ---

Author: hjl

Date: Fri Mar 22 16:36:22 2013

New Revision: 196976



URL: http://gcc.gnu.org/viewcvs?rev=196976&root=gcc&view=rev

Log:

Set callee_pass_avx256_p before emitting call instruction



gcc/



PR target/56560

* config/i386/i386.c (init_cumulative_args): Also set

cum->callee_return_avx256_p.

(ix86_function_arg): Set cum->callee_pass_avx256_p.  Set

cfun->machine->callee_pass_avx256_p only when MODE == VOIDmode.



* config/i386/i386.h (ix86_args): Add callee_pass_avx256_p and

callee_return_avx256_p.



gcc/



PR target/56560

* gcc.target/i386/pr56560.c: New file.



Added:

branches/gcc-4_7-branch/gcc/testsuite/gcc.target/i386/pr56560.c

Modified:

branches/gcc-4_7-branch/gcc/ChangeLog

branches/gcc-4_7-branch/gcc/config/i386/i386.c

branches/gcc-4_7-branch/gcc/config/i386/i386.h

branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


[Bug tree-optimization/57186] New: implement load sinking in loops

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57186



 Bug #: 57186

   Summary: implement load sinking in loops

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

   URL: http://gcc.gnu.org/ml/gcc-patches/2012-10/msg00742.htm

l

Status: UNCONFIRMED

  Keywords: missed-optimization

  Severity: enhancement

  Priority: P3

 Component: tree-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: ebotca...@gcc.gnu.org





Created attachment 30040

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30040

Original implementation



Even at -O3, the compiler doesn't figure out that the following loop is dumb:



#define SIZE 64



int foo (int v[])

{

  int r;



  for (i = 0; i < SIZE; i++)

r = v[i];



  return r;

}



This isn't entirely unexpected, as it probably matters only for (slightly)

pathological cases.  The attached patch nevertheless implements a form of load

sinking in loops so as to optimize these cases.  It's combined with invariant

motion to optimize:



int foo (int v[], int a)

{

  int r, i;



  for (i = 0; i < SIZE; i++)

r = v[i] + a;



  return r;

}



and with store sinking to optimize:



int foo (int v1[], int v2[])

{

  int r[SIZE];

  int i, j;



  for (j = 0; j < SIZE; j++)

for (i = 0; i < SIZE; i++)

  r[j] = v1[j] + v2[i];



  return r[SIZE - 1];

}



The optimization is enabled at -O2 in the patch for measurement purposes but, 

given how rarely it triggers (e.g. exactly 10 occurrences in a GCC bootstrap, 

compiler-only, all languages except Go), it's probably best suited to -O3.



It also comes with 3 testcases.


[Bug tree-optimization/57186] implement load sinking in loops

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57186



--- Comment #1 from Eric Botcazou  2013-05-06 
14:51:30 UTC ---

Created attachment 30041

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30041

Testcase #1


[Bug tree-optimization/57186] implement load sinking in loops

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57186



--- Comment #2 from Eric Botcazou  2013-05-06 
14:51:58 UTC ---

Created attachment 30042

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30042

Testcase #2


[Bug tree-optimization/57186] implement load sinking in loops

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57186



--- Comment #3 from Eric Botcazou  2013-05-06 
14:52:25 UTC ---

Created attachment 30043

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30043

Testcase #3


[Bug libgcj/57074] [4.8/4.9 Regression] libgcj regression on 32bit Power architecture

2013-05-06 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57074



Jakub Jelinek  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.8.1

Summary|gcc-4.8.0 libgcj regression |[4.8/4.9 Regression] libgcj

   |on 32bit Power architecture |regression on 32bit Power

   ||architecture



--- Comment #16 from Jakub Jelinek  2013-05-06 
15:21:07 UTC ---

Author: jakub

Date: Mon May  6 15:09:41 2013

New Revision: 198631



URL: http://gcc.gnu.org/viewcvs?rev=198631&root=gcc&view=rev

Log:

PR libgcj/57074

* class.c (emit_symbol_table): Use array type of the

right size for the_syms_decl and its DECL_INITIAL, instead

of symbols_array_type.  Set TREE_TYPE (the_syms_decl) to it.

(emit_assertion_table): Use array type of the right size

for table_decl and its DECL_INITIAL.



Modified:

trunk/gcc/java/ChangeLog

trunk/gcc/java/class.c



Author: jakub

Date: Mon May  6 15:12:53 2013

New Revision: 198632



URL: http://gcc.gnu.org/viewcvs?rev=198632&root=gcc&view=rev

Log:

PR libgcj/57074

* class.c (emit_symbol_table): Use array type of the

right size for the_syms_decl and its DECL_INITIAL, instead

of symbols_array_type.  Set TREE_TYPE (the_syms_decl) to it.

(emit_assertion_table): Use array type of the right size

for table_decl and its DECL_INITIAL.



Modified:

branches/gcc-4_8-branch/gcc/java/ChangeLog

branches/gcc-4_8-branch/gcc/java/class.c



Hopefully fixed for 4.8.1+.


[Bug ada/57187] New: [4.9 regression] Ada bootstrap broken on Solaris/SPARC: ICE in check_probability, at basic-block.h:941

2013-05-06 Thread ro at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57187



 Bug #: 57187

   Summary: [4.9 regression] Ada bootstrap broken on

Solaris/SPARC: ICE in check_probability, at

basic-block.h:941

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: ada

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: r...@gcc.gnu.org

CC: ebotca...@gcc.gnu.org





Within the last week (between revs 198340 and 198578), Ada bootstrap on

Solaris/SPARC got broken: in Stage 2 I get



+===GNAT BUG DETECTED==+

| 4.9.0 20130503 (experimental) [trunk revision 198578] (sparc-sun-solaris2.11)

GCC error:|

| in check_probability, at basic-block.h:941   |

| Error detected around

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_util.adb:2739:8|

| Please submit a bug report; see http://gcc.gnu.org/bugs.html.|

| Use a subject line meaningful to you and us to track the bug.|

| Include the entire contents of this bug box in the report.   |

| Include the exact gcc or gnatmake command that you entered.  |

| Also include sources listed below in gnatchop format |

| (concatenated together with no headers between files).   |

+==+



Please include these source files with error report

Note that list may not be accurate in some cases,

so please double check that the problem can still

be reproduced with the set of files listed.

Consider also -gnatd.n switch (see debug.adb).



/vol/gcc/src/hg/trunk/local/gcc/ada/system.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_util.adb

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_util.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/einfo.ads

ada/snames.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/namet.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/alloc.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/table.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/types.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/unchconv.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/unchdeal.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/hostparm.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/uintp.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/urealp.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/exp_tss.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/atree.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sinfo.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/casing.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/checks.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/debug.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/errout.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/err_vars.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/erroutc.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/elists.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/exp_ch11.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/exp_disp.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/exp_ch11.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/exp_disp.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/exp_util.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/rtsfind.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/fname.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/freeze.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/lib.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/lib-xref.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/lib-util.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/put_spark_xrefs.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/namet-sp.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/nlists.ads

ada/nmake.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/output.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/s-os_lib.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/s-string.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/ada.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/a-uncdea.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/opt.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/s-wchcon.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/restrict.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/rident.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/s-rident.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/rident.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/s-rident.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_aux.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_attr.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_ch8.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_disp.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_eval.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_res.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sem_type.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/sinput.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/stand.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/style.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/styleg.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/stringt.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/targparm.ads

/vol/gcc/src/hg/trunk/local/gcc/ada/tbuild.ads

/vol/gcc/src/hg/trunk/local/g

[Bug ada/57187] [4.9 regression] Ada bootstrap broken on Solaris/SPARC: ICE in check_probability, at basic-block.h:941

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57187



Eric Botcazou  changed:



   What|Removed |Added



 Status|UNCONFIRMED |WAITING

   Last reconfirmed||2013-05-06

 Ever Confirmed|0   |1



--- Comment #1 from Eric Botcazou  2013-05-06 
15:25:23 UTC ---

I presume http://gcc.gnu.org/ml/gcc-cvs/2013-05/msg00102.html is the fix?


[Bug ada/57188] New: [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation

2013-05-06 Thread ro at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188



 Bug #: 57188

   Summary: [4.9 regression] Ada bootstrap broken on Solaris/x64:

No_Implicit_Dynamic_Code violation

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: ada

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: r...@gcc.gnu.org

CC: char...@gcc.gnu.org

  Host: amd64-pc-solaris2.1[01]

Target: amd64-pc-solaris2.1[01]

 Build: amd64-pc-solaris2.1[01]





For at least two weeks, Ada bootstrap on Solaris/x64 (i.e. the 64-bit-default

configuration) is broken:



ro@arenal 26 > ../../gnatbind -I- -I../rts -I.

-I/vol/gcc/src/hg/trunk/local/gcc/ada -o b_gnatm.adb gnatmake.ali

error: "system.ads" has restriction No_Implicit_Dynamic_Code

error: but the following files violate this restriction:

error:   "make.adb"

error:   "makeutl.adb"

error:   "prj.adb"

error:   "prj-env.adb"

error:   "prj-conf.adb"

error:   "prj-proc.adb"

error:   "prj-nmsc.adb"



This doesn't happen in sparcv9-sun-solaris2* or i386-pc-solaris2*

configurations.



  Rainer


[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation

2013-05-06 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188



Eric Botcazou  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-06

 CC||ebotcazou at gcc dot

   ||gnu.org

 Ever Confirmed|0   |1



--- Comment #1 from Eric Botcazou  2013-05-06 
16:55:04 UTC ---

> This doesn't happen in sparcv9-sun-solaris2* or i386-pc-solaris2*

> configurations.



gcc-interface/Makefile.in was a little changed so you probably need to adjust

the relevant regexp here:



# x86 and x86-64 solaris

ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),)

  LIBGNAT_TARGET_PAIRS_COMMON = \


[Bug c++/57183] [C++11] auto and -Wunused-variable

2013-05-06 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57183



Paolo Carlini  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #3 from Paolo Carlini  2013-05-06 
17:03:18 UTC ---

Fixed mainline and 4.8.1.


[Bug rtl-optimization/57189] New: [4.9 Regression] Vector register is spilled for vector extract pattern

2013-05-06 Thread ubizjak at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57189



 Bug #: 57189

   Summary: [4.9 Regression] Vector register is spilled for vector

extract pattern

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Keywords: ra

  Severity: normal

  Priority: P3

 Component: rtl-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: ubiz...@gmail.com

Target: x86





Following testcase:



--cut here--

typedef int __v4si __attribute__ ((__vector_size__ (16)));



int test (__v4si __A)

{

  return __builtin_ia32_vec_ext_v4si (__A, 0);

}

--cut here--



compiled with '-O2 -msse2 -march=k8" generates:



test:

movaps  %xmm0, -24(%rsp)

movl-24(%rsp), %eax

ret



where 4.8 generates:



test:

movd%xmm0, -12(%rsp)

movl-12(%rsp), %eax

ret



The problem is with IRA, which spills V4SImode, where reload spills SImode

register for:



(insn 6 3 12 2 (set (reg:SI 62)

(vec_select:SI (reg/v:V4SI 61 [ __A ])

(parallel [

(const_int 0 [0])

]))) t.c:5 1618 {*vec_extractv4si_0}





 This memory mismatch could lead to a partial memory stall.


[Bug target/57106] [4.8/4.9 Regression] -fcompare-debug failure with -O2 -fschedule-insns -funroll-all-loops

2013-05-06 Thread ubizjak at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57106



--- Comment #6 from Uros Bizjak  2013-05-06 18:57:21 
UTC ---

Author: uros

Date: Mon May  6 14:53:03 2013

New Revision: 198629



URL: http://gcc.gnu.org/viewcvs?rev=198629&root=gcc&view=rev

Log:

PR target/57106

* config/i386/i386.c (add_parameter_dependencies): Add dependence

between "first_arg" and "insn", not "last" and "insn".



testsuite/ChangeLog:



PR target/57106

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





Added:

trunk/gcc/testsuite/gcc.target/i386/pr57106.c

Modified:

trunk/gcc/config/i386/i386.c



Author: uros

Date: Mon May  6 18:52:02 2013

New Revision: 198638



URL: http://gcc.gnu.org/viewcvs?rev=198638&root=gcc&view=rev

Log:

Backport from mainline

2013-05-06  Uros Bizjak  



PR target/57106

* config/i386/i386.c (add_parameter_dependencies): Add dependence

between "first_arg" and "insn", not "last" and "insn".



testsuite/ChangeLog:



Backport from mainline

2013-05-06  Uros Bizjak  



PR target/57106

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





Added:

branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr57106.c

Modified:

branches/gcc-4_8-branch/gcc/ChangeLog

branches/gcc-4_8-branch/gcc/config/i386/i386.c

branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug target/57106] [4.8/4.9 Regression] -fcompare-debug failure with -O2 -fschedule-insns -funroll-all-loops

2013-05-06 Thread ubizjak at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57106



Uros Bizjak  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #7 from Uros Bizjak  2013-05-06 18:57:52 
UTC ---

Fixed.


[Bug c++/57190] New: verify_ssa failed: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2013-05-06 Thread dcb314 at hotmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57190



 Bug #: 57190

   Summary: verify_ssa failed: SSA_NAME_OCCURS_IN_ABNORMAL_PHI

should be set

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: dcb...@hotmail.com





Created attachment 30044

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30044

C++ source code



I just tried to compile the package yapet-0.8-0.5

on gcc-4.9 trunk dated 20130505 on an AMD x86_64 box.



The compiler said



passworddialog.cc:349:1: error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

 }

 ^

for SSA_NAME: .MEM_278 in statement:

PHI argument

.MEM_278

for PHI node

passworddialog.cc:349:1: internal compiler error: verify_ssa failed

0xc25541 verify_ssa(bool)

../../src/trunk/gcc/tree-ssa.c:1046

0xa01221 execute_function_todo

../../src/trunk/gcc/passes.c:1970

0xa01be7 execute_todo

../../src/trunk/gcc/passes.c:2002

Please submit a full bug report,

with preprocessed source if appropriate.

Please include the complete backtrace with any bug report.

See  for instructions.





Preprocessed source code attached. Flag -O2 required.


[Bug target/52933] SH Target: Use div0s for integer sign comparisons

2013-05-06 Thread olegendo at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52933



--- Comment #3 from Oleg Endo  2013-05-06 20:10:11 
UTC ---

http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=198646



  PR target/52933

  * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add

  variations of these patterns.


[Bug preprocessor/57191] New: GCC cross-compilers built with MinGW do no include correct directory

2013-05-06 Thread MatthewS.Grochowalski at ge dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57191



 Bug #: 57191

   Summary: GCC cross-compilers built with MinGW do no include

correct directory

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: preprocessor

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: matthews.grochowal...@ge.com





It appears MinGW always overrides the definition of NATIVE_SYSTEM_HEADER_DIR

given on the command line. Running:



echo "NATIVE_SYSTEM_HEADER_DIR" | cpp -DNATIVE_SYSTEM_HEADER_DIR=/usr/include



produces:



c:/MinGW2/msys/1.0/include



I believe this change was introduced as a fix for bug 52947.



When building gcc with the "--with-sysroot" config option,

NATIVE_SYSTEM_HEADER_DIR is supposed to be defined as the TARGET system's

default include directory in gcc/cppdefault.c. In my case, this would be

/usr/include as I'm targeting GNU/Linux.

"-DNATIVE_SYSTEM_HEADER_DIR=/usr/include" is being passed to the build system

gcc (i686-pc-mingw32-gcc).



Because of MinGW's silent changing of NATIVE_SYSTEM_HEADER_DIR, the resulting

cross-compiler tries to look in $SYSROOTc:/MinGW2/msys/1.0/include for the

target system includes instead of $SYSROOT/usr/include.


[Bug preprocessor/57191] GCC cross-compilers built with MinGW do no include correct directory

2013-05-06 Thread MatthewS.Grochowalski at ge dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57191



Matt Grochowalski  changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

   See Also|http://gcc.gnu.org/bugzilla |

   |/show_bug.cgi?id=52947  |

 Resolution||INVALID



--- Comment #1 from Matt Grochowalski  
2013-05-06 22:26:29 UTC ---

Never mind, this is due to MSYS's path mangling.


[Bug target/55171] [4.7/4.8 Regression] incorrect virtual thunk on mingw

2013-05-06 Thread i.nixman at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55171



--- Comment #13 from niXman  2013-05-06 22:31:01 UTC 
---

Kai, any ideas?


[Bug c++/51226] [c++0x] ICE with opaque enum and invalid template

2013-05-06 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51226



Paolo Carlini  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot

   |gnu.org |com



--- Comment #2 from Paolo Carlini  2013-05-07 
00:27:26 UTC ---

On it.


[Bug target/39725] [4.7/4.8/4.9 Regression][cond-optab] MIPS pessimizations on floating-point

2013-05-06 Thread piet.delaney at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39725



Pete Delaney  changed:



   What|Removed |Added



 CC||piet.delaney at gmail dot

   ||com



--- Comment #10 from Pete Delaney  2013-05-07 
03:02:24 UTC ---

Interested in how this bug fix is going.



-piet


[Bug tree-optimization/57124] 254.gap@spec2000 got miscompare after r198413

2013-05-06 Thread law at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57124



--- Comment #4 from Jeffrey A. Law  2013-05-07 04:25:27 
UTC ---

Yea, 254.gap is definitely overflowing signed types.  I've got changes to make

the warnings and -fno-strict-overflow work that I'll put through their paces

tomorrow.



I think we should twiddle the testcase to verify we don't muck it up when 

-fno-strict-overflow is active.