[Bug c++/42824] [4.5 regression] c++ compilation complains about error: call of overloaded

2010-02-22 Thread dodji at gcc dot gnu dot org


--- Comment #15 from dodji at gcc dot gnu dot org  2010-02-22 08:18 ---
Fixed in 4.5 (trunk)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/38112] unneeded temporary

2010-02-22 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2010-02-22 08:58 ---
Paul, for the test case in comment 0 we still create a temporary:

  b(a)=1

where a is a simple-contiguous rank-one array without target/pointer
attribute, which thus cannot alias with b. Do you think this is fixable?


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pault at gcc dot gnu dot org


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



[Bug tree-optimization/42652] vectorizer created unaligned vector insns

2010-02-22 Thread irar at il dot ibm dot com


--- Comment #17 from irar at il dot ibm dot com  2010-02-22 09:01 ---
Is there a way to pass alignment information similar to PR 39954?

Otherwise, a proper fix would be some inter-procedural analysis... Meantime, we
can do intra-procedural analysis and fail when we reach function argument, i.e,
use runtime checks. We already have several types of versioning, so adding
another one will complicate the things even more, and will not always be
possible (because of code size constrains). 

Thanks,
Ira


-- 


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



[Bug fortran/43136] Excess copy-in/copy-out with character argument

2010-02-22 Thread burnus at gcc dot gnu dot org


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 09:01:52
   date||


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



[Bug driver/42485] [4.4/4.5 Regression] -V switch broken

2010-02-22 Thread manu at gcc dot gnu dot org


--- Comment #5 from manu at gcc dot gnu dot org  2010-02-22 09:02 ---
Testing a patch to deprecated -b and -V.


-- 


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



[Bug fortran/38112] unneeded temporary

2010-02-22 Thread paul dot richard dot thomas at gmail dot com


--- Comment #5 from paul dot richard dot thomas at gmail dot com  
2010-02-22 09:06 ---
Subject: Re:  unneeded temporary

Tobias,

I'll take a look tonight.

Cheers

Paul

On Mon, Feb 22, 2010 at 9:58 AM, burnus at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org wrote:


 --- Comment #4 from burnus at gcc dot gnu dot org  2010-02-22 08:58 
 ---
 Paul, for the test case in comment 0 we still create a temporary:

  b(a)=1

 where a is a simple-contiguous rank-one array without target/pointer
 attribute, which thus cannot alias with b. Do you think this is fixable?


 --

 burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
 
                 CC|                            |pault at gcc dot gnu dot org


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

 --- You are receiving this mail because: ---
 You are on the CC list for the bug, or are watching someone who is.



-- 


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



[Bug target/43137] New: redundant register move for sign extending

2010-02-22 Thread carrot at google dot com
Compile following code with options -march=armv7-a -mthumb -Os

int foo();
long long bar22()
{
  int result = foo();
  return result;
}

GCC generates:

bar22:
push{r3, lr}
bl  foo
asrsr3, r0, #31// A
mov r1, r3 // B
pop {r3, pc}

Instruction A,B can be simplified to asrs r1, r0, #31.

In rtl expand, result was first extended to a DI register and then the DI
register was moved to return register. In later passs the low half of the
return value and variable result were recognized as in the same register, so
the low part move was removed. After register allocation I get:

(call_insn 5 2 7 2 src/t5.c:5 (parallel [
(set (reg:SI 0 r0)
(call (mem:SI (symbol_ref:SI (foo) [flags 0x41] 
function_decl 0x7f6e60fe0600 foo) [0 S4 A32])
(const_int 0 [0x0])))
(use (const_int 0 [0x0]))
(clobber (reg:SI 14 lr))
]) 255 {*call_value_insn} (nil)
(nil))

(insn 7 5 22 2 src/t5.c:5 (set (reg:DI 2 r2 [orig:136 result ] [136])
(sign_extend:DI (reg/v:SI 0 r0 [orig:133 result ] [133]))) 691
{*thumb2_extendsidi2} (nil))

(insn 22 7 15 2 src/t5.c:7 (set (reg:SI 1 r1 [+4 ])
(reg:SI 3 r3 [ result+4 ])) 658 {*thumb2_movsi_insn} (nil))

The high part register move didn't get any chance to be removed until the end
of compilation.


-- 
   Summary: redundant register move for sign extending
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: carrot at google dot com
 GCC build triplet: i686-linux
  GCC host triplet: i686-linux
GCC target triplet: arm-eabi


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



[Bug tree-optimization/42652] vectorizer created unaligned vector insns

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #18 from rguenth at gcc dot gnu dot org  2010-02-22 10:27 
---
(In reply to comment #17)
 Is there a way to pass alignment information similar to PR 39954?

Well, that wasn't really a true fix but simply restored the (broken) behavior
of earlier compilers so the 4.5 regression is gone ...

 Otherwise, a proper fix would be some inter-procedural analysis... Meantime, 
 we
 can do intra-procedural analysis and fail when we reach function argument, 
 i.e,
 use runtime checks. We already have several types of versioning, so adding
 another one will complicate the things even more, and will not always be
 possible (because of code size constrains).

Yes, we need to propagate (mis-)alignment information properly.  My plan for
4.6 is to add (mis-)alignemnt information to SSA_NAME_PTR_INFO and have
a simple propagator computing it.

Richard.


-- 


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



[Bug middle-end/42859] [4.5 regression] ICE in verify_flow_info

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2010-02-22 10:54 ---
(In reply to comment #6)
 How about the below patch?  It fixes all testcases for me.  I'm not sure
 whether it makes sense to filter duplicate labels this late, but I don't know
 how to do this earlier, as catches seem to be lowering independently of each
 other.

Looks sensible, though unreachable block removal should be conditional on
us removing an edge, not on lowering anything.

 diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
 index 2cb334f..c18b807 100644
 --- a/gcc/tree-eh.c
 +++ b/gcc/tree-eh.c
 @@ -28,6 +28,7 @@ along with GCC; see the file COPYING3.  If not see
  #include flags.h
  #include function.h
  #include except.h
 +#include pointer-set.h
  #include tree-flow.h
  #include tree-dump.h
  #include tree-inline.h
 @@ -3063,6 +3064,7 @@ lower_eh_dispatch (basic_block src, gimple stmt)
 eh_catch c;
 edge_iterator ei;
 edge e;
 +   struct pointer_set_t *seen_values = pointer_set_create ();
 
 /* Collect the labels for a switch.  Zero the post_landing_pad
field becase we'll no longer have anything keeping these labels
 @@ -3071,6 +3073,7 @@ lower_eh_dispatch (basic_block src, gimple stmt)
 for (c = r-u.eh_try.first_catch; c ; c = c-next_catch)
   {
 tree tp_node, flt_node, lab = c-label;
 +   bool have_label = false;
 
 c-label = NULL;
 tp_node = c-type_list;
 @@ -3083,14 +3086,26 @@ lower_eh_dispatch (basic_block src, gimple stmt)
   }
 do
   {
 -   tree t = build3 (CASE_LABEL_EXPR, void_type_node,
 -TREE_VALUE (flt_node), NULL, lab);
 -   VEC_safe_push (tree, heap, labels, t);
 +   /* Filter out duplicate labels that arise when this handler 
 +  is shadowed by an earlier one.  When no labels are 
 +  attached to the handler anymore, we remove 
 +  the corresponding edge and then we delete unreachable 
 +  blocks at the end of this pass.  */
 +   if (! pointer_set_contains (seen_values, TREE_VALUE
 (flt_node)))
 + {
 +   tree t = build3 (CASE_LABEL_EXPR, void_type_node,
 +TREE_VALUE (flt_node), NULL, lab);
 +   VEC_safe_push (tree, heap, labels, t);
 +   pointer_set_insert (seen_values, TREE_VALUE (flt_node));
 +   have_label = true;
 + }
 
 tp_node = TREE_CHAIN (tp_node);
 flt_node = TREE_CHAIN (flt_node);
   }
 while (tp_node);
 +   if (! have_label)
 + remove_edge (find_edge (src, label_to_block (lab)));
   }
 
 /* Clean up the edge flags.  */
 @@ -3132,6 +3147,7 @@ lower_eh_dispatch (basic_block src, gimple stmt)
 
 VEC_free (tree, heap, labels);
   }
 +   pointer_set_destroy (seen_values);
}
break;
 
 @@ -3185,6 +3201,8 @@ execute_lower_eh_dispatch (void)
 }
  }
 
 +  if (any_rewritten)
 +delete_unreachable_blocks ();
return any_rewritten ? TODO_update_ssa_only_virtuals : 0;
  }
 
 


-- 


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



[Bug middle-end/42220] [4.5 Regression] FAIL: gfortran.dg/complex_intrinsic_5.f90 -m64 -O -frename-registers

2010-02-22 Thread dominiq at lps dot ens dot fr


--- Comment #45 from dominiq at lps dot ens dot fr  2010-02-22 11:21 ---
Bootstrapped and regtested on powerpc-apple-darwin9 (see
http://gcc.gnu.org/ml/gcc-testresults/2010-02/msg02098.htm ) and
x86_64-apple-darwin10 (see
http://gcc.gnu.org/ml/gcc-testresults/2010-02/msg02102.html) with the patch in
comment #43 with the fix in comment #44.

Everything I can look at seems to work as expected.


-- 


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



[Bug middle-end/42749] [4.5 Regression] -O2 and verify_stmts failed again

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #14 from rguenth at gcc dot gnu dot org  2010-02-22 12:02 
---
I have a patch.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|rakdver at gcc dot gnu dot  |rguenth at gcc dot gnu dot
   |org |org


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



[Bug target/43139] New: ICE in output_operand

2010-02-22 Thread jakub at gcc dot gnu dot org
/* { dg-do compile } */
/* { dg-options -g -O2 -fpic } */

typedef double T1[10];
typedef double T2[10][10];
typedef int T3[10];
void fn1 (void);
void fn2 (int, ...);

static void
bar (double v, double w, double x, double y, double z)
{
  double a;
  if (v / w  200.0)
{
  a = x + (y - x) * __builtin_exp (-v / w);
  fn2 (0);
  fn2 (1, a * 20.2 / z, z);
  fn1 ();
}
}

static void
baz (T2 u, T2 v, T2 w, T2 x, T1 y, T3 z, double q, int j, int k)
{
  int i = z[k];
  if (u[i][j]  0.0)
bar (q, x[i][j], v[i][j], w[i][j], y[i]);
}

static T2 a, b, c, d;
static T1 e;
static T3 f;

void test (int j, int k, double q)
{
  baz (a, b, c, d, e, f, q, j, k);
}

ICEs on redhat/gcc-4_4-branch on i686-linux (and x86_64-linux -m32), with:
internal compiler error: output_operand: invalid expression as operand
I haven't been able to make this testcase ICE on the trunk, but I believe the
issue is just latent there, so I'm filing it here rather than tracking it
internally.

The issue is that %ebx + offset addition is CSEd, so we have:
leal(%ebx,%ecx,8), %ecx
...
fldla...@gotoff(%ecx)
fldlc...@gotoff(%ecx)
fldlb...@gotoff(%ecx)
fldld...@gotoff(%ecx)
(as this is in a loop, I don't think that is even a bad idea, the code is at
least shorter).  But var-tracking finds out one of the tracked variables lives
in:
(note 189 177 190 4 (var_location w (expr_list:REG_DEP_TRUE (mem/s:DF (plus:SI
(reg:SI 2 cx [75])
(const:SI (unspec:SI [
(symbol_ref:SI (d) [flags 0x2]  var_decl
0x7f9bb4c3faa0 d)
] 1))) [2 S8 A64])
(const_int 0 [0x0]))) NOTE_INSN_VAR_LOCATION)
and i?86 delegitimize hook, as it doesn't see the PIC register anywhere in the
expression, just gives up.  We don't have a target hook that would verify what
we throw at dw2_asm_output_addr_rtx won't ICE and target's checking ICEs when
it sees an unexpected UNSPEC (or on other targets e.g. might generate invalid
assembly).  So, either we need to add such a target hook which will check the
rtx and tell caller it is not valid (so dwarf2out would just skip that
location), or we need to teach delegitimize langhook in this case to return
some fancy address (in this case it would be (symbol_ref d) + (reg cx) - (reg
bx)).
Unfortunately the delegitimization langhook is called not just in dwarf2out,
but in other places too, so it needs some verification whether it wouldn't
cause problems there.


-- 
   Summary: ICE in output_operand
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org


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



[Bug target/42431] [4.5 Regression] wrong code for 200.sixtrack with vectorization and -fdata-sections

2010-02-22 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 12:40:53
   date||


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



[Bug tree-optimization/42917] [4.5 Regression] -fcompare-debug failure with -ftree-loop-linear

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-02-22 12:41 ---
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 12:41:57
   date||


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



[Bug c++/43140] New: [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test for excess errors)

2010-02-22 Thread dominiq at lps dot ens dot fr
Between revisions 156927 and 156932 g++.dg/graphite/pr41305.C has started to
fail (likely due to revision 156928):

[macbook] f90/bug% gcc45 -c -O3 -floop-interchange
/opt/gcc/work/gcc/testsuite/g++.dg/graphite/pr41305.C
/opt/gcc/work/gcc/testsuite/g++.dg/graphite/pr41305.C: In member function
'pointer allocator_Tp::allocate(allocator::size_type) [with _Tp = double,
pointer = double, allocator::size_type = long unsigned int]':
/opt/gcc/work/gcc/testsuite/g++.dg/graphite/pr41305.C:80:5:   instantiated from
'unbounded_arrayT, template-parameter-1-2
::unbounded_array(unbounded_arrayT, template-parameter-1-2 ::size_type,
ALLOC) [with T = double, ALLOC = allocatordouble, unbounded_arrayT,
template-parameter-1-2 ::size_type = long unsigned int]'
/opt/gcc/work/gcc/testsuite/g++.dg/graphite/pr41305.C:272:83:   instantiated
from 'vectorT, template-parameter-1-2 ::vector(vectorT,
template-parameter-1-2 ::size_type, value_type) [with T = double, A =
unbounded_arraydouble, allocatordouble , vectorT, template-parameter-1-2
::size_type = long unsigned int, value_type = double]'
/opt/gcc/work/gcc/testsuite/g++.dg/graphite/pr41305.C:323:32:   instantiated
from here
/opt/gcc/work/gcc/testsuite/g++.dg/graphite/pr41305.C:24:12: warning:
converting to non-pointer type 'allocatordouble::pointer' from NULL


-- 
   Summary: [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test
for excess errors)
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr


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



[Bug c++/43140] [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test for excess errors)

2010-02-22 Thread dominiq at lps dot ens dot fr


--- Comment #1 from dominiq at lps dot ens dot fr  2010-02-22 12:55 ---
CC Manuel López-Ibáñez and H.J. Lu.


-- 

dominiq at lps dot ens dot fr changed:

   What|Removed |Added

 CC||hjl dot tools at gmail dot
   ||com, manu at gcc dot gnu dot
   ||org


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



[Bug tree-optimization/43026] [4.5 Regression][graphite] ICE in sese.c with -fgraphite-identity in 447.dealII

2010-02-22 Thread spop at gcc dot gnu dot org


--- Comment #7 from spop at gcc dot gnu dot org  2010-02-22 13:11 ---
Subject: Bug 43026

Author: spop
Date: Mon Feb 22 13:10:49 2010
New Revision: 156956

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156956
Log:
Fix PR43026: handle COMPONENT_REFs in expand scalar expressions.

2010-02-11  Sebastian Pop  sebastian@amd.com

PR middle-end/43026
* sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.

* g++.dg/graphite/pr43026.C: New.

Added:
branches/graphite/gcc/testsuite/g++.dg/graphite/pr43026.C
Modified:
branches/graphite/gcc/ChangeLog.graphite
branches/graphite/gcc/sese.c


-- 


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



[Bug tree-optimization/43141] New: [4.5 Regression] Wrong debug information with IPA-SRA

2010-02-22 Thread rguenth at gcc dot gnu dot org
Split out from PR42336.

But here's a C testcase where we lose debug info about a parameter that was
optimized away: there are no formal parameters in the DWARF output for f.

int i;
static int f(int) __attribute ((noinline));
static int f(int x) { return i; }

int main()
{
  return f(42);
}


-- 
   Summary: [4.5 Regression] Wrong debug information with IPA-SRA
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: wrong-debug
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org


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



[Bug tree-optimization/43141] [4.5 Regression] Wrong debug information with IPA-SRA

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2010-02-22 13:17 ---
Martin, http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42336#c22 still applies
here.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jamborm at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 13:17:54
   date||
   Target Milestone|--- |4.5.0


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



[Bug c++/42336] [4.5 Regression] ICE with pointer-to-member-function argument in template function with -fipa-sra

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #28 from rguenth at gcc dot gnu dot org  2010-02-22 13:18 
---
The ICE is fixed.  The wrong-debug issue is PR43141 now.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/43140] [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test for excess errors)

2010-02-22 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2010-02-22 13:49 ---
It seems to me that the template parameter to allocator should be a pointer and
in this testcase is just double. So the warning is correct. If the testcase is
correct, then you should either catch the warning with // { dg-warning } or
silence it with // { dg-options -Wno-conversion-null }


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 13:49:05
   date||


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



[Bug middle-end/43045] [lto] ICE non-trivial conversion at assignment

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-02-22 14:08 ---
Created an attachment (id=19933)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19933action=view)
patch


-- 


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



[Bug middle-end/42749] [4.5 Regression] -O2 and verify_stmts failed again

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #15 from rguenth at gcc dot gnu dot org  2010-02-22 14:09 
---
Subject: Bug 42749

Author: rguenth
Date: Mon Feb 22 14:09:26 2010
New Revision: 156960

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156960
Log:
2010-02-22  Richard Guenther  rguent...@suse.de

PR tree-optimization/42749
* tree-tailcall.c (adjust_return_value_with_ops): Drop update
parameter.  Do arithmetic in the original type.
(update_accumulator_with_ops): Likewise.
(adjust_accumulator_values): Adjust.

* gcc.c-torture/compile/pr42749.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr42749.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-tailcall.c


-- 


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



[Bug target/43129] Simplify global variable's address loading with option -fpic

2010-02-22 Thread rearnsha at gcc dot gnu dot org


-- 

rearnsha at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement


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



[Bug c++/43140] [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test for excess errors)

2010-02-22 Thread dominiq at lps dot ens dot fr


--- Comment #3 from dominiq at lps dot ens dot fr  2010-02-22 14:14 ---
CC Sebastian Pop.


-- 

dominiq at lps dot ens dot fr changed:

   What|Removed |Added

 CC||sebpop at gmail dot com


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



[Bug target/43137] redundant register move for sign extending

2010-02-22 Thread ramana at gcc dot gnu dot org


--- Comment #1 from ramana at gcc dot gnu dot org  2010-02-22 14:32 ---
Confirmed.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 14:32:54
   date||


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



Email Order

2010-02-22 Thread FRANCO PTY STORE
Dear Sir/Ma,
Compliment of the season to you! I went through your website address and found 
some items i would like to place order on. but before i proceed i will like to 
know if your company accepts payment via VISA or MASTER CARD and if your 
company ship to Australia. If yes, please get back to me as soon as possible 
with your website address to confirm if the website address is the same with 
the one i checked or better still, you can email me with the price list on the 
items you have presently in stock as attachment.

I will await your prompt response as soon as you receive this message,i will be 
very glad if you treat this email with good concern!



Thank You,
Frank Lewis
OWNER.

FRANCO PTY STORE
5655 Bourke Street Level 34.
Melbourne, VIC 3000. Australia
Phone Number: 61 3 8641 41600
franklewis...@gmail.com






[Bug c++/43140] [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test for excess errors)

2010-02-22 Thread spop at gcc dot gnu dot org


--- Comment #4 from spop at gcc dot gnu dot org  2010-02-22 14:55 ---
Subject: Bug 43140

Author: spop
Date: Mon Feb 22 14:55:08 2010
New Revision: 156963

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156963
Log:
Fix PR43140: Add -Wno-conversion-null to pr41305.C.

2010-02-22  Sebastian Pop  sebastian@amd.com
Manuel López-Ibáñez  m...@gcc.gnu.org

PR middle-end/43140
* g++.dg/graphite/pr41305.C: Add -Wno-conversion-null.

Modified:
branches/graphite/gcc/ChangeLog.graphite
branches/graphite/gcc/testsuite/g++.dg/graphite/pr41305.C


-- 


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



[Bug rtl-optimization/39077] [4.3/4.4/4.5 Regression] GCSE-optimization causes enormous binary size increase (~20 times !)

2010-02-22 Thread comer352l at googlemail dot com


--- Comment #17 from comer352l at googlemail dot com  2010-02-22 15:09 
---
Great, thank you Steven !
Will this patch also improve compilation time ? It currently needs about 45
seconds with 4.4.3 on a Athlon64X2-5000+ (even with -fnogcse).

In the meantime I managed to test on a windows machine with a recent version
(4.4.0) and the size increase doesn't occur there (but compilation is extremely
slow, too).


-- 


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



[Bug c++/43140] [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test for excess errors)

2010-02-22 Thread spop at gcc dot gnu dot org


--- Comment #5 from spop at gcc dot gnu dot org  2010-02-22 15:13 ---
Subject: Bug 43140

Author: spop
Date: Mon Feb 22 15:13:39 2010
New Revision: 156964

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156964
Log:
Fix PR43097: rename only SSA_NAMEs.

2010-02-22  Sebastian Pop  sebastian@amd.com

PR middle-end/43140
* sese.c (get_rename): Assert that old_name is an SSA_NAME.
(rename_variables_in_stmt): Continue when the use is not an SSA_NAME.

* gfortran.dg/graphite/pr43097.f: New.

Added:
branches/graphite/gcc/testsuite/gfortran.dg/graphite/pr43097.f
Modified:
branches/graphite/gcc/ChangeLog.graphite
branches/graphite/gcc/sese.c


-- 


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



[Bug tree-optimization/43097] [4.5 Regression] ICE in rename_map_elt_info for Graphite, vect in 173.applu

2010-02-22 Thread spop at gcc dot gnu dot org


--- Comment #3 from spop at gcc dot gnu dot org  2010-02-22 15:19 ---
This should have been added to this PR:
I copied and forgot to adjust the PR number.


Author: spop
Date: Mon Feb 22 15:13:39 2010
New Revision: 156964

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156964
Log:
Fix PR43097: rename only SSA_NAMEs.

2010-02-22  Sebastian Pop  sebastian@amd.com

   PR middle-end/43140
   * sese.c (get_rename): Assert that old_name is an SSA_NAME.
   (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.

   * gfortran.dg/graphite/pr43097.f: New.

Added:
   branches/graphite/gcc/testsuite/gfortran.dg/graphite/pr43097.f
Modified:
   branches/graphite/gcc/ChangeLog.graphite
   branches/graphite/gcc/sese.c


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |spop at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-02-18 18:36:56 |2010-02-22 15:19:27
   date||


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



[Bug c++/43140] [4.5 Regression] FAIL: g++.dg/graphite/pr41305.C (test for excess errors)

2010-02-22 Thread spop at gcc dot gnu dot org


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |spop at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-02-22 13:49:05 |2010-02-22 15:19:56
   date||


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



[Bug tree-optimization/43026] [4.5 Regression][graphite] ICE in sese.c with -fgraphite-identity in 447.dealII

2010-02-22 Thread spop at gcc dot gnu dot org


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |spop at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-02-11 16:56:36 |2010-02-22 15:20:13
   date||


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



[Bug c/42923] ice: verify_stmts failed

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-02-22 15:46 ---


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


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/42749] [4.5 Regression] -O2 and verify_stmts failed again

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #17 from rguenth at gcc dot gnu dot org  2010-02-22 15:46 
---
*** Bug 42923 has been marked as a duplicate of this bug. ***


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||regehr at cs dot utah dot
   ||edu


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



[Bug middle-end/42749] [4.5 Regression] -O2 and verify_stmts failed again

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #16 from rguenth at gcc dot gnu dot org  2010-02-22 15:44 
---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/43045] [lto] ICE non-trivial conversion at assignment

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2010-02-22 15:53 ---
Subject: Bug 43045

Author: rguenth
Date: Mon Feb 22 15:53:27 2010
New Revision: 156966

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156966
Log:
2010-02-22  Richard Guenther  rguent...@suse.de

PR lto/43045
* tree-inline.c (declare_return_variable): Use the type of
the call stmt lhs if available.

* gfortran.dg/lto/20100222-1_0.f03: New testcase.
* gfortran.dg/lto/20100222-1_1.c: Likewise.

Added:
trunk/gcc/testsuite/gfortran.dg/lto/20100222-1_0.f03
trunk/gcc/testsuite/gfortran.dg/lto/20100222-1_1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-inline.c


-- 


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



[Bug middle-end/43045] [lto] ICE non-trivial conversion at assignment

2010-02-22 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-02-22 16:03 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.5.0


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



[Bug c++/43142] New: ICE in output_505, at config/rs6000/rs6000.md:12485

2010-02-22 Thread marcus at jet dot franken dot de
g++  -O2  -c agg_bezier_ctrl.ii  -fPIC -o xx.o   
In file included from ../../include/agg_conv_curve.h:29:0,
 from ../../include/ctrl/agg_bezier_ctrl.h:33,
 from agg_bezier_ctrl.cpp:27:
../../include/agg_curves.h: In destructor ‘agg::curve3_div::~curve3_div()’:
../../include/agg_curves.h:103:5: internal compiler error: in output_505, at
config/rs6000/rs6000.md:12485
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.opensuse.org/ for instructions.


-- 
   Summary: ICE in output_505, at config/rs6000/rs6000.md:12485
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: marcus at jet dot franken dot de
 GCC build triplet: ppc-suse-linux
  GCC host triplet: ppc-suse-linux
GCC target triplet: ppc-suse-linux


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



[Bug c++/43142] ICE in output_505, at config/rs6000/rs6000.md:12485

2010-02-22 Thread marcus at jet dot franken dot de


--- Comment #1 from marcus at jet dot franken dot de  2010-02-22 16:56 
---
Created an attachment (id=19934)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19934action=view)
agg_bezier_ctrl.ii

testcase, unreduced.


-- 


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



[Bug target/43142] [4.5 Regression] ICE in output_505, at config/rs6000/rs6000.md:12485

2010-02-22 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c++ |target
Summary|ICE in output_505, at   |[4.5 Regression] ICE in
   |config/rs6000/rs6000.md:1248|output_505, at
   |5   |config/rs6000/rs6000.md:1248
   ||5
   Target Milestone|--- |4.5.0
Version|unknown |4.5.0


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



[Bug target/43142] [4.5 Regression] ICE in output_505, at config/rs6000/rs6000.md:12485

2010-02-22 Thread marcus at jet dot franken dot de


--- Comment #2 from marcus at jet dot franken dot de  2010-02-22 17:02 
---
chroot /abuild/meissner/root.2/
grape:/usr/src/packages/BUILD/agg-2.5/src/ctrl gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/powerpc64-suse-linux/4.5/lto-wrapper
Target: powerpc64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5
--enable-ssp --disable-libssp --disable-plugin
--with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux'
--disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib
--enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --program-suffix=-4.5
--enable-linux-futex --without-system-libunwind --enable-gold
--with-plugin-ld=/usr/bin/gold --with-cpu=default32 --enable-secureplt
--with-long-double-128 --build=powerpc64-suse-linux
Thread model: posix
gcc version 4.5.0 20100218 (experimental) [trunk revision 156860] (SUSE Linux) 


-- 


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



[Bug debug/43051] [4.5 Regression] VTA causes a stack living parameter unavailable in most of the function

2010-02-22 Thread jakub at gcc dot gnu dot org


--- Comment #7 from jakub at gcc dot gnu dot org  2010-02-22 17:10 ---
Created an attachment (id=19935)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19935action=view)
gcc45-pr43051.patch

Updated patch, which includes lxo's fix, guality testcase and also a fix for
infinite recursion discovered in redhat/gcc-4_4-branch backport.

While this bootstraps/regtests on the trunk, on redhat/gcc-4_4-branch bootstrap
fails due to endless alteration similar to PR42873 when compiling c-common.c
(add_tlist) during profiledbootstrap.  Haven't tried yet trunk
profiledbootstrap.  The alternation in this case is between:
(gdb) p debug_rtx (var1-var_part[0].loc_chain-next-loc)
(value/u:DI 90:90 @0x2a72678/0x28c5520)
$30 = void
(gdb) p debug_rtx (var1-var_part[0].loc_chain-loc)
(mem/f:DI (value/s/u:DI 56:56 @0x2a722c8/0x2904028) [161 S8 A64])
$31 = void
(gdb) p debug_rtx (var1-var_part[0].loc_chain-next-loc)
(value/u:DI 90:90 @0x2a72678/0x28c5520)
$32 = void
(gdb) p debug_rtx (var1-var_part[0].loc_chain-next-next-loc)
Cannot access memory at address 0x8
and
(gdb) p debug_rtx (var2-var_part[0].loc_chain-loc)
(mem/s/f:DI (value/s/u:DI 54:54 @0x2a722a8/0x2904078) [161 variable.next+0 S8
A64])
$33 = void
(gdb) p debug_rtx (var2-var_part[0].loc_chain-next-loc)
(mem/f:DI (value/s/u:DI 56:56 @0x2a722c8/0x2904028) [161 S8 A64])
$34 = void
(gdb) p debug_rtx (var2-var_part[0].loc_chain-next-next-loc)
(value/u:DI 90:90 @0x2a72678/0x28c5520)


-- 


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



[Bug debug/43051] [4.5 Regression] VTA causes a stack living parameter unavailable in most of the function

2010-02-22 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2010-02-22 17:23 ---
It is actually:
dataflow difference found: old and new follow:
 (value/s/u:DI 54:54 @0x42b02e8/0x42a75c8)
offset 0
  (mem/f:DI (value/s/u:DI 56:56 @0x42b0308/0x42a7578) [161 S8 A64])
  (value/u:DI 90:90 @0x42b06b8/0x41569c0)
 (value/s/u:DI 54:54 @0x42b02e8/0x42a75c8)   
offset 0
  (mem/s/f:DI (value/s/u:DI 54:54 @0x42b02e8/0x42a75c8) [161
variable.next+0 S8 A64])
  (mem/f:DI (value/s/u:DI 56:56 @0x42b0308/0x42a7578) [161 S8 A64])
  (value/u:DI 90:90 @0x42b06b8/0x41569c0)
alternating, it is quite weird that value 54 is in (mem (value 54)), guess need
to find out in detail what's going on.


-- 


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



[Bug middle-end/43083] [4.5 Regression] ICE with -fgraphite-identity with fall through return value

2010-02-22 Thread spop at gcc dot gnu dot org


--- Comment #6 from spop at gcc dot gnu dot org  2010-02-22 17:40 ---
Subject: Bug 43083

Author: spop
Date: Mon Feb 22 17:40:23 2010
New Revision: 156970

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156970
Log:
Fix PR43083: Do not handle regions ending with multiple edges on the exit BB.

2010-02-22  Sebastian Pop  sebastian@amd.com

PR middle-end/43083
* graphite-scop-detection.c (create_single_exit_edge): Move
the call to find_single_exit_edge to
(create_sese_edges): ...here.  Don't handle multiple edges
exiting the function.
(build_graphite_scops): Don't handle multiple edges
exiting the function.

* gcc.dg/graphite/pr43083.c: New.

Added:
branches/graphite/gcc/testsuite/gcc.dg/graphite/pr43083.c
Modified:
branches/graphite/gcc/ChangeLog.graphite
branches/graphite/gcc/graphite-scop-detection.c


-- 


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



[Bug c++/31754] Improve column number accuracy in error messages

2010-02-22 Thread dodji at gcc dot gnu dot org


--- Comment #22 from dodji at gcc dot gnu dot org  2010-02-22 17:46 ---
Not working on this right now.


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|dodji at gcc dot gnu dot org|unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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



[Bug other/42980] GCC parallel make install failures

2010-02-22 Thread gary at intrepid dot com


--- Comment #6 from gary at intrepid dot com  2010-02-22 17:48 ---
Created an attachment (id=19936)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19936action=view)
parallel make -j6 install failure logs

Attached, a collection of install logs run with SHELL=/bin/sh -x, where the
install failed.  The first log is for a libgomp install failure, and the rest
are for libiberty.  Note that it is difficult to reproduce the failures.  I
found that make -j6 led to more failures than make -j on our system.  Also,
couldn't get the install-target-libiberty target to fail, but perhaps didn't
wait long enough.  Instead, ran make -j6 install.  Also, tried running this
test on a ram fs, but couldn't make the installs fail, likely due to
different interlocks.  Similarly, the installs were more likely to fail on our
RAID-ed disk subsystem, populated with high speed drives, than on a file system
on a single drive. (These tests were run using the gcc-4.5-20100114 (gcc core)
snapshot.)


-- 


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



[Bug translation/36958] typos in french translation.

2010-02-22 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|dodji at gcc dot gnu dot org|unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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



[Bug tree-optimization/43141] [4.5 Regression] Wrong debug information with IPA-SRA

2010-02-22 Thread jamborm at gcc dot gnu dot org


--- Comment #2 from jamborm at gcc dot gnu dot org  2010-02-22 18:01 ---
Thanks for filing this separate PR.  I am aware of this problem and it is quite
high on my todo list.  My first attempts to address this however don't
bootstrap. I would like to get back to this by the end of the week but I think
next week is a more realistic estimate. 


-- 


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



[Bug debug/43051] [4.5 Regression] VTA causes a stack living parameter unavailable in most of the function

2010-02-22 Thread jakub at gcc dot gnu dot org


--- Comment #9 from jakub at gcc dot gnu dot org  2010-02-22 18:17 ---
Seems it is canonicalize_values_star that inserts the extra (mem (value 54:54))
every second run through bb 12 at the end of compute_bb_dataflow.


-- 


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



[Bug c++/28584] Cast to pointer from integer of different size

2010-02-22 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2010-02-22 19:04 ---
Patch http://gcc.gnu.org/ml/gcc-patches/2010-02/msg00891.html


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |manu at gcc dot gnu dot org
   |dot org |
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2010-
   ||02/msg00891.html
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||patch
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 19:04:58
   date||


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



[Bug debug/43051] [4.5 Regression] VTA causes a stack living parameter unavailable in most of the function

2010-02-22 Thread jakub at gcc dot gnu dot org


--- Comment #10 from jakub at gcc dot gnu dot org  2010-02-22 19:21 ---
The next variable is said to live in value 90 and (mem (value 54)), that's
where
those two are equivalenced (canonicalize_values_star).  The equivalencing
between value 90 and value 54
is done in val_resolve:
/* Map incoming equivalences.  ??? Wouldn't it be nice if
 we just started sharing the location lists?  Maybe a
 circular list ending at the value itself or some
 such.  */


-- 


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



[Bug c++/43143] New: [c++0x] array value-initialization and variadics

2010-02-22 Thread jason at gcc dot gnu dot org
This ought to compile, but doesn't:

templatetypename T
T declval();

templateclass T, class... Args
void test() {
  T t(declvalArgs()...);
}

int main() {
  testconst int(); // OK
  testint[23](); // Error
}


-- 
   Summary: [c++0x] array value-initialization and variadics
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: jason at gcc dot gnu dot org
ReportedBy: jason at gcc dot gnu dot org


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



[Bug c++/43143] [c++0x] array value-initialization and variadics

2010-02-22 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 19:25:38
   date||


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



[Bug c++/28584] Cast to pointer from integer of different size

2010-02-22 Thread manu at gcc dot gnu dot org


--- Comment #5 from manu at gcc dot gnu dot org  2010-02-22 19:49 ---
Approved for GCC 4.6

http://gcc.gnu.org/ml/gcc-patches/2010-02/msg00893.html


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||41998
  nThis||


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



[Bug c++/43144] New: Possible ADL bug in GCC 4.4.1

2010-02-22 Thread jason at gcc dot gnu dot org
[copy-paste from email since I don't think Alisdair has gotten around to
submitting the bug]

I'm currently working at home with GCC 4.4.1 (MinGW build) and as you might
guess from the example, playing around with my own std lib implementation.

I'm currently failing to get my swap overload for arrays to use ADL, and I'm
running out of ideas.  Want to run it past you in case I am pounding my head
against a GCC bug.  Note that the non-array version picks up ADL correctly, as
can be seen by commenting out the line that chains the array-bases tests.

I'm leaning towards this being an ADL implementation bug, but I'm still not
100% confident in my understanding of the rules in this area so wanted to run
it past an expert before filing a bug report (which would be essentially the
same code cleaned up and without the 'pass' tests as noise)

If there is some subtle trick I am missing to enable ADL in this case, then I
fear our language is already far too subtle to live...

AlisdairM



main.cpp

#include cstddef
#include cstdio
#include type_traits

using std::size_t;

// DECLARE ALGORITHMS
//===
namespace std0x
{

template typename T
auto move(T) - typename std::remove_referenceT::type ;

// 20.3.2, swap:
templatetypename T
void swap(T a, T b);

template typename T, size_t N
void swap(T (a)[N], T (b)[N]);

}

// DEFINE ALGORITHMS
//===

template class T
auto std0x::move(T  value) - typename std
::remove_referenceT::type  {
   return static_castT ( value );
}

// 20.3.2, swap:
templatetypename T
void std0x::swap(T a, T b) {
   auto tmp( move(a) );
   a = move(b);
   b = move(tmp);
}

// Attempted workaround, guarantee namespace std0x on equal footing to ADL
namespace impl {
template typename T, size_t N
void swap(T (a)[N], T (b)[N]) {
   for( size_t i = 0; i != N; ++i ) {
  using namespace std0x;
//  using std0x::swap;
  swap(a[i], b[i]); // Why will this not trigger ADL?   GCC bug or me?
   }
}
}

template typename T, size_t N
void std0x::swap(T (a)[N], T (b)[N]) {
   impl::swap(a, b); // attempt to trigger ADL
//   for( size_t i = 0; i != N; ++i ) {
  using std0x::swap;
//  swap(a[i], b[i]);// Why will this not trigger ADL?   GCC bug or me?
//   }
}



// TEST HARNESS
//=

templatetypename T
auto test_array() - bool {
   using std::printf;
   using std0x::swap;

   T const init_a[3]{1,2,3};
   T const init_b[3]{4,5,6};

   // initialize again from rvalues, rather than risk copy ctor
   T a[3]{1,2,3};
   T b[3]{4,5,6};

   swap(a, b);

   for(unsigned i = 0; i != 3; ++i ) {
  if( a[i] != init_b[i]) {
  printf(Error, bad 'a' element\n);
  return false;
  }

  if( b[i] != init_a[i]) {
 printf(Error, bad 'b' element\n);
 return false;
  }
   }

   return true;
}

templatetypename T
auto test() - bool {
   using std::printf;
   using std0x::swap;

   T const init_a{13};
   T const init_b{42};

   // initialize again from rvalues, rather than risk copy ctor
   T a{13};
   T b{42};

   swap(a, b);

if( a != init_b) {
   printf(Error, bad 'a'\n);
   return false;
}

if( b != init_a) {
   printf(Error, bad 'b'\n);
   return false;
}

   return test_arrayT();
//   return true;
}


// TEST DRIVER TYPES
// =

struct simple { int data; };
auto operator==(simple const  a, simple const  b ) - bool {
   return a.data == b.data;
}
auto operator!=(simple const  a, simple const  b ) - bool {
   return a.data != b.data;
}

struct move_only {
   int data;

   move_only(int a) : data{a} {}

   move_only(move_only const ) = delete;
   auto operator=(move_only const ) - move_only  = delete;

   move_only(move_only  rhs) : data{rhs.data} { rhs.data = 0; }

   auto operator=(move_only  rhs) - move_only  {
  data = rhs.data;
  rhs.data = 0;
  return *this;
   }

};

auto operator==(move_only const  a, move_only const  b ) - bool {
   return a.data == b.data;
}
auto operator!=(move_only const  a, move_only const  b ) - bool {
   return a.data != b.data;
}

namespace barrier
{
struct adl_only {
   int data;

   adl_only(int a) : data{a} {}

   adl_only(adl_only const ) = delete;
   auto operator=(adl_only const ) - move_only  = delete;
};

void swap(adl_only  a, adl_only  b) {
   using std0x::swap;
   swap(a.data, b.data);
}

auto operator==(adl_only const  a, adl_only const  b ) - bool {
   return a.data == b.data;
}
auto operator!=(adl_only const  a, adl_only const  b ) - bool {
   return a.data != b.data;
}

}


// TEST DRIVER
// ===
int main()
{
printf( Hello world!\n );
int fails = 0;
if( !testint() ) ++fails;
if( !testsimple() ) ++fails;
if( !testmove_only() ) ++fails;
if( !testbarrier::adl_only() ) ++fails;
return fails;
}


-- 
   Summary: Possible ADL bug in GCC 4.4.1
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 

[Bug middle-end/42859] [4.5 regression] ICE in verify_flow_info

2010-02-22 Thread abel at gcc dot gnu dot org


--- Comment #8 from abel at gcc dot gnu dot org  2010-02-22 20:10 ---
(In reply to comment #7)
 Looks sensible, though unreachable block removal should be conditional on
 us removing an edge, not on lowering anything.
Sure, I'd just make lower_eh_dispatch return a boolean for this and repost to
gcc-patches.


-- 


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



[Bug c++/43145] New: local extern declaration gets wrong namespace

2010-02-22 Thread jason at gcc dot gnu dot org
For this testcase:

namespace N {
  void f();
}

void N::f()
{
  extern int i;
  extern void g();
  i = 1;
  g();
}

namespace N {
  int i;
  void g() { }
}

int main() { }

we end up with unsatisfied references to ::i and ::g.


-- 
   Summary: local extern declaration gets wrong namespace
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: wrong-code, patch
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: jason at gcc dot gnu dot org
ReportedBy: jason at gcc dot gnu dot org


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



[Bug c++/43145] local extern declaration gets wrong namespace

2010-02-22 Thread jason at gcc dot gnu dot org


--- Comment #1 from jason at gcc dot gnu dot org  2010-02-22 20:49 ---
Created an attachment (id=19937)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19937action=view)
patch for 4.6


-- 


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



[Bug c++/43145] local extern declaration gets wrong namespace

2010-02-22 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-22 20:50:04
   date||


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



[Bug middle-end/43083] [4.5 Regression] ICE with -fgraphite-identity with fall through return value

2010-02-22 Thread spop at gcc dot gnu dot org


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |spop at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-02-18 18:38:22 |2010-02-22 21:02:03
   date||


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



[Bug rtl-optimization/42575] arm-eabi-gcc 64-bit multiply weirdness

2010-02-22 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2010-02-22 21:06 ---
(In reply to comment #3)
 * What is the purpose of insn 12 here?  It looks to me like this is dead code,
 since r5 is restored in insn 38 (although, not knowing ARM so well, I may be
 wrong).

I couldn't figure this out either.  Where did it come from - was it so late
that we never DCE'd it, or does something bizarre claim to be dependent on the
value?

 Note how the sched1 pass has switched the two insns around. The register
 allocator now decides to use two new registers here, because r0 and r3 are 
 both
 live. After RA, sched2 switches insn 9 and insn 10 again, and r2 and r3 become
 available in insn 10 -- but this is too late.
 
 Question for the ARM maintainer now is: Why does sched1 want to swap insns 9
 and 10, when sched2 wants to swap them back again?

I'm guessing, but presumably we want to separate the mul from the mla because
they're dependent; the umull isn't.  But I don't know what would swap them back
again and that's probably the crux.


-- 


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



[Bug fortran/43146] New: Character constant declared in a module does not transfer correctly

2010-02-22 Thread wirawan0 at gmail dot com
Please compile the following snippet and watch that ch10 is printed as ASCII
NUL (redirect to text file and see the produced characters, or use `./a.out |
od -t x1' for even quicker result):

module blahblah
 character(len=1), parameter :: ch10 = char(10)
end module

program testme3
 use blahblah
 implicit none
 character(len=100) :: message

 !write(message, '(a,a)') ch10,'invars1m : enter jdtset='
 write(6, '(a,a)') ch10,'invars1m : enter jdtset='
 !write(6,'(A)') message
end program

It would have been OK if the ch10 is defined in the main program (or whatever
subprogram block using it), but it is not OK if we import using use statement
like above. This used not to be a problem with GCC 4.3.2.

I am using Sabayon Linux 5.0 (derivative of Gentoo Linux) on an X86-64
platform.


-- 
   Summary: Character constant declared in a module does not
transfer correctly
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: wirawan0 at gmail dot com
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


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



[Bug target/43118] vld4 and vst4 intrinsics are not handled correctly

2010-02-22 Thread drow at false dot org


--- Comment #3 from drow at gcc dot gnu dot org  2010-02-22 21:14 ---
Subject: Re:  vld4 and vst4 intrinsics are not handled
 correctly

On Fri, Feb 19, 2010 at 11:08:18AM -, rguenth at gcc dot gnu dot org wrote:
 Likely because of the union in
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
 {
   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
   __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
 }
 
 which does copy-initialization of __bu.

Right.  FYI, my best idea to date of how to fix this is to convert the
multiple-vector types (like uint8x8x4_t) to builtin types.  At that
point we can use the neon_reinterpret patterns to do the necessary
type punning without involving __builtin_neon_oi and the union.


-- 


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



[Bug fortran/43146] Character constant declared in a module does not transfer correctly

2010-02-22 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2010-02-22 21:19 ---
You may need to update to a newer version of gfortran.

troutmask:sgk[207] gfc4x -o z j.f90  ./z | od -t x1
0000a  69  6e  76  61  72  73  31  6d  20  3a  20  65  6e  74  65
02072  20  6a  64  74  73  65  74  3d  0a
032
troutmask:sgk[208] gfc44 -o z j.f90  ./z | od -t x1
0000a  69  6e  76  61  72  73  31  6d  20  3a  20  65  6e  74  65
02072  20  6a  64  74  73  65  74  3d  0a
032
troutmask:sgk[209] gfc43 -o z j.f90  ./z | od -t x1
0000a  69  6e  76  61  72  73  31  6d  20  3a  20  65  6e  74  65
02072  20  6a  64  74  73  65  74  3d  0a
032

troutmask:sgk[211] gfc4x --version
GNU Fortran (GCC) 4.5.0 20100111 (experimental)

troutmask:sgk[212] gfc44 --version
GNU Fortran (GCC) 4.4.3 20091216 (prerelease)

troutmask:sgk[213] gfc43 --version
GNU Fortran (GCC) 4.3.5 20091216 (prerelease)


-- 


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



[Bug c/43125] [4.5 Regression] Revision 156907 failed gcc.dg/attr-used.c

2010-02-22 Thread hjl at gcc dot gnu dot org


--- Comment #4 from hjl at gcc dot gnu dot org  2010-02-22 21:33 ---
Subject: Bug 43125

Author: hjl
Date: Mon Feb 22 21:33:21 2010
New Revision: 156976

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156976
Log:
Move C tests for used attribute to c-c++-common.

2010-02-22  H.J. Lu  hongjiu...@intel.com

PR c/43125
* gcc.dg/attr-used-2.c: Moved to ...
* c-c++-common/attr-used-2.c: Here.

* gcc.dg/attr-used.c: Moved to ...
* c-c++-common/attr-used.c: Here.

Added:
trunk/gcc/testsuite/c-c++-common/attr-used-2.c
  - copied unchanged from r156975, trunk/gcc/testsuite/gcc.dg/attr-used-2.c
trunk/gcc/testsuite/c-c++-common/attr-used.c
  - copied unchanged from r156975, trunk/gcc/testsuite/gcc.dg/attr-used.c
Removed:
trunk/gcc/testsuite/gcc.dg/attr-used-2.c
trunk/gcc/testsuite/gcc.dg/attr-used.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/27160] Debugging output forgets scope for typedefs.

2010-02-22 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2010-02-22 21:34 ---
Works for me too, using GCC 4.4.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug other/43132] installation directory defaults do not match documentation, Coding Standards

2010-02-22 Thread Ralf dot Wildenhues at gmx dot de


--- Comment #3 from Ralf dot Wildenhues at gmx dot de  2010-02-22 21:39 
---
Not sure if this can be qualified a regression, but still, making a
release manager aware of this can't hurt, I guess.


-- 

Ralf dot Wildenhues at gmx dot de changed:

   What|Removed |Added

 CC||mark at codesourcery dot com


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



[Bug libgcj/40860] [4.4/4.5 regression] regressions in libjava testsuite on arm-linux

2010-02-22 Thread mikpe at it dot uu dot se


--- Comment #11 from mikpe at it dot uu dot se  2010-02-22 21:49 ---
A recent 4.4 with the four unwind-related fixes I identified in CodeSourcery
G++ lite 2009q3-67 applied still regresses in libjava as before with recent
binutils.


-- 


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



[Bug c/43125] [4.5 Regression] Revision 156907 failed gcc.dg/attr-used.c

2010-02-22 Thread hjl at gcc dot gnu dot org


--- Comment #5 from hjl at gcc dot gnu dot org  2010-02-22 21:57 ---
Subject: Bug 43125

Author: hjl
Date: Mon Feb 22 21:57:22 2010
New Revision: 156977

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156977
Log:
Merge DECL_PRESERVE_P for C++.

2010-02-22  Mike Stump  mikest...@comcast.net

PR c++/43125
* decl.c (duplicate_decls): Merge DECL_PRESERVE_P.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c


-- 


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



[Bug c++/43126] at this point in file warnings are upside down

2010-02-22 Thread manu at gcc dot gnu dot org


--- Comment #7 from manu at gcc dot gnu dot org  2010-02-22 22:31 ---
Subject: Bug 43126

Author: manu
Date: Mon Feb 22 22:30:45 2010
New Revision: 156979

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156979
Log:
2010-02-22  Manuel López-Ibáñez  m...@gcc.gnu.org

PR c++/43126
* c-typeck.c (convert_arguments): Print declaration location.
* c-common.c (validate_nargs): Rename as
builtin_function_validate_nargs.
(check_builtin_function_arguments): Update.
cp/
* typeck.c (convert_arguments): Update error message.

testsuite/
* gcc.dg/cleanup-1.c: Update.
* gcc.dg/func-args-1.c: Update.
* gcc.dg/format/sentinel-1.c: Update.
* g++.old-deja/g++.jason/scoping10.C: Update.
* g++.old-deja/g++.ns/lookup5.C: Update.
* g++.dg/ext/cleanup-1.C: Update.
* g++.dg/parse/varmod1.C: Update.
* g++.dg/parse/error33.C: Update.
* g++.dg/expr/call3.C: Update.
* g++.dg/func-args-1.C: New.


Added:
trunk/gcc/testsuite/g++.dg/func-args-1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-common.c
trunk/gcc/c-typeck.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/expr/call3.C
trunk/gcc/testsuite/g++.dg/ext/cleanup-1.C
trunk/gcc/testsuite/g++.dg/parse/error33.C
trunk/gcc/testsuite/g++.dg/parse/varmod1.C
trunk/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C
trunk/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C
trunk/gcc/testsuite/gcc.dg/cleanup-1.c
trunk/gcc/testsuite/gcc.dg/format/sentinel-1.c
trunk/gcc/testsuite/gcc.dg/func-args-1.c


-- 


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



[Bug c++/43126] at this point in file warnings are upside down

2010-02-22 Thread manu at gcc dot gnu dot org


--- Comment #8 from manu at gcc dot gnu dot org  2010-02-22 22:32 ---
FIXED in GCC 4.5


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c/43128] [4.5 Regression] c-c++-common/pr41779.c doesn't work

2010-02-22 Thread manu at gcc dot gnu dot org


--- Comment #18 from manu at gcc dot gnu dot org  2010-02-22 23:56 ---
(In reply to comment #17)
 suggest having a c_ep_convert_and_check or similar function that handles 
 excess precision: it would take the result type, the semantic result type 
 (the type that gets used eventually to build an EXCESS_PRECISION_EXPR) and 
 the value to convert.  It would just call convert_and_check, ignoring the 
 semantic type, *except* when the operand has integer type *and* the 
 semantic type is non-NULL; in that case, it would first convert to the 
 semantic type them to the result type.

Wouldn't that change the normal result of promotion rules?

Also, why call convert_and_check ignoring the semantic type and not just call
convert? The excess precision type should be large enough to not cause any
problem that needs checking.


 


-- 


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



[Bug other/43132] installation directory defaults do not match documentation, Coding Standards

2010-02-22 Thread mmitchel at gcc dot gnu dot org


--- Comment #4 from mmitchel at gcc dot gnu dot org  2010-02-22 23:23 
---
I don't think this should be P1, as getting the old behavior is apparently
doable by hand, but I'm a big fan of backwards-compatibility and if the GCS
haven't been updated then I think that GCC (as a GNU package) ought to try to
follow that.

Thanks,

-- Mark


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P2


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



[Bug c/43128] [4.5 Regression] c-c++-common/pr41779.c doesn't work

2010-02-22 Thread manu at gcc dot gnu dot org


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |manu at gcc dot gnu dot org
   |dot org |
 Status|REOPENED|ASSIGNED
   Last reconfirmed|2010-02-21 15:39:13 |2010-02-23 00:27:14
   date||


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



[Bug c/43128] [4.5 Regression] c-c++-common/pr41779.c doesn't work

2010-02-22 Thread joseph at codesourcery dot com


--- Comment #19 from joseph at codesourcery dot com  2010-02-23 00:29 
---
Subject: Re:  [4.5 Regression] c-c++-common/pr41779.c doesn't
 work

On Mon, 22 Feb 2010, manu at gcc dot gnu dot org wrote:

 --- Comment #18 from manu at gcc dot gnu dot org  2010-02-22 23:56 ---
 (In reply to comment #17)
  suggest having a c_ep_convert_and_check or similar function that handles 
  excess precision: it would take the result type, the semantic result type 
  (the type that gets used eventually to build an EXCESS_PRECISION_EXPR) and 
  the value to convert.  It would just call convert_and_check, ignoring the 
  semantic type, *except* when the operand has integer type *and* the 
  semantic type is non-NULL; in that case, it would first convert to the 
  semantic type them to the result type.
 
 Wouldn't that change the normal result of promotion rules?

No.

The present logic is: convert (with convert_and_check) both operands to a 
common type, which may have excess precision; then, later, after producing 
the tree for the result of the operation, wrap that in an 
EXCESS_PRECISION_EXPR, using the semantic type, if there is a semantic 
type different from the type with excess precision.

The proposed logic is the same, *except* that the conversion to a common 
type goes via the semantic type, *if* there is excess precision involved 
*and* the operand being converted had integer type.

 Also, why call convert_and_check ignoring the semantic type and not just call
 convert? The excess precision type should be large enough to not cause any
 problem that needs checking.

Yes, you could just use convert for the second conversion (semantic type 
to type with excess precision).


-- 


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



[Bug rtl-optimization/43147] New: SSE shuffle merge

2010-02-22 Thread liranuna at gmail dot com
I've noticed that GCC (my current version is 4.4.1) doesn't fully optimize SSE
shuffle merges, as seen in this example: 

#include xmmintrin.h

extern void printv(__m128 m);

int main()
{
m = _mm_shuffle_ps(m, m, 0xC9); // Those two shuffles together swap
pairs
m = _mm_shuffle_ps(m, m, 0x2D); // And could be optimized to 0x4E
printv(m);

return 0;
}

This code generates the following assembly:

movaps  .LC1, %xmm1
shufps  $201, %xmm1, %xmm1
shufps  $45, %xmm1, %xmm1; -- Both should merge to 78
movaps  %xmm1, %xmm0
movaps  %xmm1, -24(%ebp)

.LC0:
.long   1065353216 ; 1.0f
.long   1073741824 ; 2.0f
.long   1077936128 ; 3.0f
.long   1082130432 ; 4.0f

Would be nice to see it as an enhancement!


-- 
   Summary: SSE shuffle merge
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: liranuna at gmail dot com
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
GCC target triplet: x86_64-linux-gnu


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



[Bug rtl-optimization/43147] SSE shuffle merge

2010-02-22 Thread liranuna at gmail dot com


--- Comment #1 from liranuna at gmail dot com  2010-02-23 01:37 ---
It appears I am missing a line in the code I posted:

#include xmmintrin.h

extern void printv(__m128 m);

int main()
{
__m128 m = _mm_set_ps(1.0f, 2.0f, 3.0f, 4.0f);
m = _mm_shuffle_ps(m, m, 0xC9); // Those two shuffles together swap
pairs
m = _mm_shuffle_ps(m, m, 0x2D); // And could be optimized to 0x4E
printv(m);

return 0;
}


-- 


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



[Bug libstdc++/42460] man page errors for generated libstdc++ man pages

2010-02-22 Thread debian-gcc at lists dot debian dot org


--- Comment #24 from debian-gcc at lists dot debian dot org  2010-02-23 
01:37 ---
thanks for the fixes. I don't care that much about the function markups.

  Matthias


-- 


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



[Bug rtl-optimization/43147] SSE shuffle merge

2010-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2010-02-23 01:42 ---
I think that is because nothing simplifies:
(vec_select:V4SF (vec_concat:V8SF (vec_select:V4SF (vec_concat:V8SF
(reg:V4SF 62)
(reg:V4SF 62))
(parallel [
(const_int 1 [0x1])
(const_int 2 [0x2])
(const_int 4 [0x4])
(const_int 7 [0x7])
]))
(vec_select:V4SF (vec_concat:V8SF (reg:V4SF 62)
(reg:V4SF 62))
(parallel [
(const_int 1 [0x1])
(const_int 2 [0x2])
(const_int 4 [0x4])
(const_int 7 [0x7])
])))
(parallel [
(const_int 1 [0x1])
(const_int 3 [0x3])
(const_int 6 [0x6])
(const_int 4 [0x4])
]))


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||missed-optimization


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



[Bug rtl-optimization/43147] SSE shuffle merge

2010-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2010-02-23 01:42 ---
Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-23 01:42:16
   date||


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



[Bug c++/43120] Diamond virtual inheritence with covariant return type confuses GCC

2010-02-22 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2010-02-23 01:45 ---
Reduced a bit:

extern C void abort ();

struct A {
  virtual void dummy() {}
};

struct B {
  virtual B *clone() = 0;
};

struct C : public virtual B { };
struct D : public virtual B { };

struct E : public C, public D {
  virtual E *clone() = 0;
};

struct F* fp;
struct F : public A, public E {
  F(int) { fp = this; }

  virtual E *clone() {
if (fp != this)
  abort ();
  }
};

int main() {
  F *a = new F(123);
  B *c = a;
  c-clone();
}


-- 


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



[Bug c++/43081] ICE with invalid in-class initializer

2010-02-22 Thread jason at gcc dot gnu dot org


--- Comment #1 from jason at gcc dot gnu dot org  2010-02-23 01:47 ---
This isn't specific to lambdas; this testcase gets the same ICE:

struct A
{
  typedef void (F)();
  F f = 1;
};


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[c++0x] ICE with invalid use|ICE with invalid in-class
   |of lambda expression|initializer


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



[Bug c++/43081] [4.3/4.4/4.5 regression] ICE with invalid in-class initializer

2010-02-22 Thread jason at gcc dot gnu dot org


--- Comment #2 from jason at gcc dot gnu dot org  2010-02-23 01:50 ---
...which is a regression against 3.4, which says

wa.C:4: error: invalid initializer for virtual method `void A::f()'


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.0.4 4.4.1 4.5.0
  Known to work||3.4.6
   Last reconfirmed|-00-00 00:00:00 |2010-02-23 01:50:47
   date||
Summary|ICE with invalid in-class   |[4.3/4.4/4.5 regression] ICE
   |initializer |with invalid in-class
   ||initializer


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



[Bug middle-end/42450] [4.5 Regression] another GCC 4.5 ICE on C++ templated code

2010-02-22 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2010-02-23 04:06 ---
Created an attachment (id=19938)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19938action=view)
smaller testcase

Here is the smallest testcase I could get out of delta.


-- 


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



[Bug other/43132] installation directory defaults do not match documentation, Coding Standards

2010-02-22 Thread Ralf dot Wildenhues at gmx dot de


--- Comment #5 from Ralf dot Wildenhues at gmx dot de  2010-02-23 06:01 
---
Well, the GCS did change, and we did (mostly) update the default locations to
follow.  However, as of now, the override methods don't all work the way the
configure --help output promises, and not all documentation gets put in
directories containing a coherent expansion of ${PACKAGE}.

Anyway, not marking this as regression then.  Thanks.


-- 


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