[Bug c/32399] ICE in build2_stat, at tree.c:3074

2007-06-19 Thread marcus at jet dot franken dot de


--- Comment #1 from marcus at jet dot franken dot de  2007-06-19 06:24 
---
Created an attachment (id=13734)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13734action=view)
vertexbuffer.i

gcc -O2 -c vertexbuffer.i


-- 


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



[Bug c/32399] New: ICE in build2_stat, at tree.c:3074

2007-06-19 Thread marcus at jet dot franken dot de
new regression, likely caused by pointer-plus branch merge

extracted from Wine

/home/marcus/projects/gcc/BIN/bin/gcc -m32   -O2   -c vertexbuffer.i 
vertexbuffer.i: In function 'f':
vertexbuffer.i:1: internal compiler error: in build2_stat, at tree.c:3074


-- 
   Summary: ICE in build2_stat, at tree.c:3074
   Product: gcc
   Version: 4.3.0
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: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug target/31684] [4.3 Regression] ICE in get_attr_first_insn, at config/ia64/itanium2.md:1839 at -O2

2007-06-19 Thread tbm at cyrius dot com


--- Comment #4 from tbm at cyrius dot com  2007-06-19 06:39 ---
(In reply to comment #3)
 I tested the patch on IA64 HP-UX and Linux and verified that it fixed the bug
 and caused no regressions.  Jim, do you want to check this patch in?

Given that Jim hasn't answered yet, maybe you can commit the patch yourself.


-- 


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



[Bug c++/32368] warnings from system headers not supressed.

2007-06-19 Thread pluto at agmk dot net


--- Comment #3 from pluto at agmk dot net  2007-06-19 06:44 ---
(In reply to comment #2)
 At variance with c++/32256, this one apparently happens as C code too...
 Probably should be not categorized as C++-only...

these little bugs (PR32368, PR32256) are treated as blockers
by people having `-Wall -Werror` in theirs projects.
could we fix this issue easily and quickly in 4.x?


-- 


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



[Bug c/21920] aliasing violations

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #115 from pinskia at gcc dot gnu dot org  2007-06-19 07:56 
---
*** Bug 32397 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rosenfeld at grumpf dot
   ||hope-2000 dot org


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



[Bug c/32397] wrong instruction order generated

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-06-19 07:56 ---
((Cyg_libm_ieee_double_shape_type *)x)-part is ovbiously an aliasing
violation.

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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/32395] false positive warning about use of uninitialized variable.

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-06-19 08:10 ---
This is caused by two things, jump threading and inlining.  If we jump thread
more, we no longer get the warning which is what you are seeing in 4.2.1.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c++ |middle-end


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



[Bug middle-end/32399] ICE in build2_stat, at tree.c:3074

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-06-19 08:21 ---
This is IV-opts going funny I think as we get pointer+pointer (and yes real
pointer SSA_NAMES and no casts).


-- 


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



[Bug middle-end/32399] [4.3 Regression] ICE in build2_stat, at tree.c:3074

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2007-06-19 08:26 ---
This code itself is very weird and I don't know if it is really defined or not.
We have basically:
char *f(char *a, char *b)
{
  return a + (int)b;
}

How can that even be defined.

Anyways the following fixes the problem:
Index: tree-ssa-address.c
===
--- tree-ssa-address.c  (revision 125776)
+++ tree-ssa-address.c  (working copy)
@@ -423,9 +423,9 @@

   /* Add ELT to base.  */
   type = TREE_TYPE (parts-base);
-  parts-base = fold_build2 (PLUS_EXPR, type,
+  parts-base = fold_build2 (POINTER_PLUS_EXPR, type,
 parts-base,
-fold_convert (type, elt));
+fold_convert (sizetype, elt));
 }

 /* Finds the most expensive multiplication in ADDR that can be


Though I have not tested it at all.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
   Last reconfirmed|-00-00 00:00:00 |2007-06-19 08:26:50
   date||
Summary|ICE in build2_stat, at  |[4.3 Regression] ICE in
   |tree.c:3074 |build2_stat, at tree.c:3074
   Target Milestone|--- |4.3.0


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



[Bug rtl-optimization/323] optimized code gives strange floating point results

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #97 from pinskia at gcc dot gnu dot org  2007-06-19 08:11 
---
*** Bug 32391 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||sunjoong at gmail dot com


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #15 from pinskia at gcc dot gnu dot org  2007-06-19 08:11 
---
So this is just a dup of bug 323 so closing as such.

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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/32374] [4.3 Regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:396

2007-06-19 Thread ubizjak at gmail dot com


--- Comment #5 from ubizjak at gmail dot com  2007-06-19 08:27 ---
(In reply to comment #4)

 No, this one is caused by dataflow.

Dataflow uncovered generic middle-end (RTL?) problem:

We have this comment in instantiate_virutal_regs():

  /* Scan through all the insns, instantiating every virtual register still
 present.  */
  for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
if (INSN_P (insn))
  {
/* These patterns in the instruction stream can never be recognized.
   Fortunately, they shouldn't contain virtual registers either.  */
if (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER
|| GET_CODE (PATTERN (insn)) == ADDR_VEC
|| GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC
|| GET_CODE (PATTERN (insn)) == ASM_INPUT)
  continue;

instantiate_virtual_regs_in_insn (insn);

However, for reduced testcase we generate following creative sequence to put
*.LC0 into virtual-outgoing-args and 0 into virtual-outgoing-args+8 (these are
sections[0] values):

;; f (stderr, [0], [0], conf_name, 0, sections[0])
(insn 6 5 7 pr32374.c:13 (clobber (mem/s/c:BLK (plus:DI (reg/f:DI 54
virtual-stack-vars)
(const_int -16 [0xfff0])) [5 A128])) -1 (nil))

(insn 7 6 8 pr32374.c:13 (set (mem/s/c:DI (plus:DI (reg/f:DI 54
virtual-stack-vars)
(const_int -16 [0xfff0])) [4 S8 A128])
(symbol_ref/f:DI (*.LC0) [flags 0x2] string_cst 0xb7cf1498)) -1
(nil))

(insn 8 7 9 pr32374.c:13 (set (mem/s/c:SI (plus:DI (reg/f:DI 54
virtual-stack-vars)
(const_int -8 [0xfff8])) [3 S4 A64])
(const_int 0 [0x0])) -1 (nil))

(insn 9 8 10 pr32374.c:13 (set (reg:DI 59)
(mem/s/c:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
(const_int -16 [0xfff0])) [5 S8 A128])) -1 (nil))

(insn 10 9 11 pr32374.c:13 (set (mem:DI (reg/f:DI 56 virtual-outgoing-args) [0
S8 A64])
(reg:DI 59)) -1 (nil))

(insn 11 10 12 pr32374.c:13 (set (reg:DI 60)
(mem/s/c:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
(const_int -8 [0xfff8])) [5 S8 A64])) -1 (nil))

(insn 12 11 13 pr32374.c:13 (set (mem:DI (plus:DI (reg/f:DI 56
virtual-outgoing-args)
(const_int 8 [0x8])) [0 S8 A64])
(reg:DI 60)) -1 (nil))


Putting a break on emit_insn_raw, we can backtrack where (invalid!) clobber is
generated:

#0  make_insn_raw (pattern=0xb7d0ad00) at
../../gcc-svn/trunk/gcc/emit-rtl.c:3312
#1  0x081861c2 in emit_insn (x=0xb7d0ad00) at
../../gcc-svn/trunk/gcc/emit-rtl.c:4347
#2  0x081a9821 in store_constructor (exp=0xb7d63dc8, target=0xb7d4f768,
cleared=0, size=16) at ../../gcc-svn/trunk/gcc/expr.c:5066
#3  0x081aee5b in expand_expr_real_1 (exp=0x11, target=0xb7d4f768,
tmode=VOIDmode, modifier=EXPAND_STACK_PARM, alt_rtl=0x0) at
../../gcc-svn/trunk/gcc/expr.c:7310
#4  0x081bf7cc in expand_expr_real (exp=0xb7d63dc8, target=0xb7d4f6f0,
tmode=VOIDmode, modifier=EXPAND_STACK_PARM, alt_rtl=0x0) at
../../gcc-svn/trunk/gcc/expr.c:6862
#5  0x081bf9b6 in expand_expr (exp=0x11, target=0xb7d0ad00, mode=VOIDmode,
modifier=EXPAND_STACK_PARM) at ../../gcc-svn/trunk/gcc/expr.h:504
#6  0x081bd4c4 in expand_expr_real_1 (exp=0xb7ca3058, target=0xb7d4f6f0,
tmode=dwarf2_read_address: Corrupted DWARF expression.
) at ../../gcc-svn/trunk/gcc/expr.c:7455
#7  0x081bf7cc in expand_expr_real (exp=0xb7ca3058, target=0xb7d4f6f0,
tmode=VOIDmode, modifier=EXPAND_STACK_PARM, alt_rtl=0x0) at
../../gcc-svn/trunk/gcc/expr.c:6862
#8  0x08115bd1 in store_one_arg (arg=0xbf96e8f0, argblock=0xb7c9c070, flags=0,
variable_size=0, reg_parm_stack_space=0) at ../../gcc-svn/trunk/gcc/expr.h:504
#9  0x0811ad60 in expand_call (exp=0xb7d5a240, target=0x0, ignore=1) at
../../gcc-svn/trunk/gcc/calls.c:2654

It can be tracked from expand_call() down to expr.c:7303, where we re-assign
target to virtual-stack-vars in this highly suspicious part of code (Irix 6?):

  else
{
  /* Handle calls that pass values in multiple non-contiguous
 locations.  The Irix 6 ABI has examples of this.  */
  if (target == 0 || ! safe_from_p (target, exp, 1)
  || GET_CODE (target) == PARALLEL
  || modifier == EXPAND_STACK_PARM)
target
  = assign_temp (build_qualified_type (type,
   (TYPE_QUALS (type)
| (TREE_READONLY (exp)
   * TYPE_QUAL_CONST))),
 0, TREE_ADDRESSABLE (exp), 1);

  store_constructor (exp, target, 0, int_expr_size (exp));
  return target;
}

Just before the call to store_constructor, we have:

p debug_rtx (target)
(mem/s/c:BLK (plus:DI (reg/f:DI 54 virtual-stack-vars)
(const_int -16 [0xfff0])) [5 A128])


and in 

[Bug middle-end/32374] [4.3 Regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:396

2007-06-19 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2007-06-19 08:58 ---
FWIW, this shoot-in-the-dark patch fixes ICE:

Index: expr.c
===
--- expr.c  (revision 125789)
+++ expr.c  (working copy)
@@ -5062,8 +5062,10 @@ store_constructor (tree exp, rtx target,
cleared = 1;
  }

+#if 0
if (! cleared)
  emit_insn (gen_rtx_CLOBBER (VOIDmode, target));
+#endif

/* Store each element of the constructor into the
   corresponding field of TARGET.  */


-- 


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



[Bug tree-optimization/32353] [4.1/4.2 Regression] Miscompilation with RESULT_DECL

2007-06-19 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2007-06-19 09:08 ---
Subject: Bug 32353

Author: jakub
Date: Tue Jun 19 09:08:39 2007
New Revision: 125841

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125841
Log:
PR tree-optimization/32353
* tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.

* g++.dg/opt/nrv13.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/opt/nrv13.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-structalias.c


-- 


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



[Bug tree-optimization/32353] [4.1/4.2 Regression] Miscompilation with RESULT_DECL

2007-06-19 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2007-06-19 09:11 ---
Subject: Bug 32353

Author: jakub
Date: Tue Jun 19 09:11:22 2007
New Revision: 125842

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125842
Log:
PR tree-optimization/32353
* tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.

* g++.dg/opt/nrv13.C: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/opt/nrv13.C
Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog
branches/gcc-4_2-branch/gcc/tree-ssa-structalias.c


-- 


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



[Bug target/32392] Support using -mrecip w/o additional Newton-Raphson run

2007-06-19 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2007-06-19 09:15 ---
Confirmed.  For 2 NR steps to reach double precision (we'd miss it by some more
ulps than the 2.5 for float precision) we would need to do at least the second
NR in double precision.  Note that this would make sense only for double
precision input values that are exactly representable in float precision
(otherwise, why the extra precision?).  So practically not worth it.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-19 09:15:09
   date||


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



[Bug middle-end/32399] [4.3 Regression] ICE in build2_stat, at tree.c:3074

2007-06-19 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2007-06-19 09:17 ---
The testcase indeed looks undefined (but valid).


-- 


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



[Bug tree-optimization/32353] [4.1/4.2 Regression] Miscompilation with RESULT_DECL

2007-06-19 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2007-06-19 09:18 ---
Subject: Bug 32353

Author: jakub
Date: Tue Jun 19 09:18:13 2007
New Revision: 125843

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125843
Log:
PR tree-optimization/32353
* tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.

* g++.dg/opt/nrv13.C: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/opt/nrv13.C
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/gcc/tree-ssa-structalias.c


-- 


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



[Bug tree-optimization/32353] [4.1/4.2 Regression] Miscompilation with RESULT_DECL

2007-06-19 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2007-06-19 09:19 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c++/30252] [4.2 regression] miscompilation of sigc++-2.0 based code with -fstrict-aliasing

2007-06-19 Thread rguenth at gcc dot gnu dot org


--- Comment #43 from rguenth at gcc dot gnu dot org  2007-06-19 09:24 
---
Subject: Bug 30252

Author: rguenth
Date: Tue Jun 19 09:24:35 2007
New Revision: 125844

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125844
Log:
2007-06-19  Richard Guenther  [EMAIL PROTECTED]
Michael Matz  [EMAIL PROTECTED]

PR tree-optimization/30252
* tree-ssa-structalias.c (solution_set_add): Make sure to
preserve all relevant vars.
(handle_ptr_arith): Make sure to only handle positive
offsets.
(push_fields_onto_fieldstack): Create fields for empty
bases.

* g++.dg/opt/pr30252.C: New testcase.

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/opt/pr30252.C
Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog
branches/gcc-4_2-branch/gcc/tree-ssa-structalias.c


-- 


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



[Bug target/31152] -(xy) generates wrong code

2007-06-19 Thread rearnsha at gcc dot gnu dot org


--- Comment #4 from rearnsha at gcc dot gnu dot org  2007-06-19 09:41 
---
Confirmed.  This is a bug in the negscc pattern in arm.md.  It's only been
there since 1994!


-- 

rearnsha at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-19 09:41:02
   date||


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



[Bug c++/30252] [4.2 regression] miscompilation of sigc++-2.0 based code with -fstrict-aliasing

2007-06-19 Thread rguenth at gcc dot gnu dot org


--- Comment #44 from rguenth at gcc dot gnu dot org  2007-06-19 09:45 
---
Fixed on the 4.2 branch.  Danny will fix this in a different way on the trunk.


-- 

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=30252



[Bug c/32397] wrong instruction order generated

2007-06-19 Thread rosenfeld at grumpf dot hope-2000 dot org


--- Comment #2 from rosenfeld at grumpf dot hope-2000 dot org  2007-06-19 
10:52 ---
Subject: Re:  wrong instruction order generated

On Tue, Jun 19, 2007 at 07:56:01AM -, pinskia at gcc dot gnu dot org wrote:
 --- Comment #1 from pinskia at gcc dot gnu dot org  2007-06-19 07:56 
 ---
 ((Cyg_libm_ieee_double_shape_type *)x)-part is ovbiously an aliasing
 violation.

I doubt that. As you can see in the source file, x is a double and
Cyg_libm_ieee_double_shape_type is a union containing a double. 

To quote the standard,
 7 An object shall have its stored value accessed only by an lvalue
   expression that has one of the following types:
a type compatible with the effective type of the object,
[...]
an aggregate or union type that includes one of the aforementioned
 types among its members (including, recursively, a member of a
 subaggregate or contained union) [...]

So as far as I understand this should be perfectly legal by the ISO C
standard.

Maybe I'm missing somthing here, I read everywhere that using a union
for this kind of thing is a gcc extension. I wonder, if there is no
standard way to manipulate doubles by treating them as ints or bitfields
or something like that, how is one supposed to write a floating point
emulator in ISO C?


-- 


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



[Bug middle-end/31950] [4.3 Regression] ICE in tree-ssa-alias-warnings.c

2007-06-19 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2007-06-19 11:16 ---
Subject: Bug 31950

Author: rguenth
Date: Tue Jun 19 11:16:43 2007
New Revision: 125846

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125846
Log:
2007-06-19  Richard Guenther  [EMAIL PROTECTED]

PR middle-end/31950
* tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-alias-warnings.c


-- 


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



[Bug middle-end/31950] [4.3 Regression] ICE in tree-ssa-alias-warnings.c

2007-06-19 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2007-06-19 11:17 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c/32397] wrong instruction order generated

2007-06-19 Thread rask at sygehus dot dk


--- Comment #3 from rask at sygehus dot dk  2007-06-19 11:27 ---
You can use memcpy (int, float, min (sizeof (int), sizeof (float))) and vice
versa. I suppose you can also memcpy() into or out of a char array of the right
size.
If you were to use the GCC extension of using a union, it would look something
like this:

double x;
cyg_uint32 hx, lx;
Cyg_libm_ieee_double_shape_type tmp;

tmp.value = x;
hx = tmp.parts.msw
lx = tmp.parts.lsw


-- 


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



[Bug middle-end/32374] [4.3 Regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:396

2007-06-19 Thread ubizjak at gmail dot com


--- Comment #7 from ubizjak at gmail dot com  2007-06-19 11:54 ---
Proposed patch at http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01317.html


-- 


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



[Bug c++/32400] New: [4.3 Regression] ICE in expand_or_defer_fn, at cp/semantics.c:3220

2007-06-19 Thread jojelino at gmail dot com
svn snapshot from r125847


-- 
   Summary: [4.3 Regression] ICE in expand_or_defer_fn, at
cp/semantics.c:3220
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jojelino at gmail dot com


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



[Bug c++/32400] [4.3 Regression] ICE in expand_or_defer_fn, at cp/semantics.c:3220

2007-06-19 Thread jojelino at gmail dot com


--- Comment #1 from jojelino at gmail dot com  2007-06-19 12:10 ---
Created an attachment (id=13735)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13735action=view)
preprocessed source


-- 


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-19 Thread dominiq at lps dot ens dot fr


--- Comment #10 from dominiq at lps dot ens dot fr  2007-06-19 12:48 ---
Even the code in comment #8 is invalid: several variables are used but not set:
at least intp and sum.
If I set them to 0, gfortran gives the same results with or without -O3. (tests
done on PPC Darwin7).

In my opinion the bug is invalid, but I'll let others make the final call.


-- 


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



[Bug middle-end/32401] New: [PPC/Altivec] Non optimal code structure with -mabi=altivec

2007-06-19 Thread sparky at pld-linux dot org
With altivec enabled gcc prepares additional space on the stack. Unlike earlier
versions gcc 4.3 removes stack modification instructions if it isn't used. With
just -maltivec or with -mabi=altivec when altivec isn't used it works very
well. But with -mabi=altivec and altivec used gcc produces code with stucture
similar to one produced by eariler gcc versions with just stack modification
instructions removed. Seems like stack isn't optimized early enough.


This simple code:

void
test ( int len )
{
if (len) {
vector unsigned char vSetTo = {};
asm volatile ( : : v (vSetTo) ); /* do something */
}
}


gcc-4.3 -O2 -maltivec -mregnames test.c -S produces:

test:
cmpwi %cr7,%r3,0
beqlr- %cr7
vxor %v0,%v0,%v0
blr


while gcc-4.3 -O2 -maltivec -mabi=altivec -mregnames test.c -S produces:

test:
cmpwi %cr7,%r3,0
beq- %cr7,.L3  # -- should be beqlr
vxor %v0,%v0,%v0
.L3:
blr


The letter one has same structure as produced by earlier gcc versions, but
without stack modification instructions:

gcc 4.1.3 produces:

test:
cmpwi %cr7,%r3,0
stwu %r1,-16(%r1)
vxor %v0,%v0,%v0
beq- %cr7,.L4
.L4:
addi %r1,%r1,16
blr


-- 
   Summary: [PPC/Altivec] Non optimal code structure with -
mabi=altivec
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sparky at pld-linux dot org
 GCC build triplet: powerpc*-linux
  GCC host triplet: powerpc*-linux
GCC target triplet: powerpc*-linux


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



[Bug c++/32402] New: Error while allocating array of pointers to objects of a pure virtual class

2007-06-19 Thread p dot vestjens at gmail dot com
The compiler thinks we're allocating the actual abstract objects instead of an
array of pointers and reports the following error: cannot allocate an object
of abstract type '...'. Since we're actual allocating an array of pointers,
this should not be an error.

The following code (reproduce.cpp) demonstrates the problem:

class pure
{
public:
  pure() {}
  virtual bool isPure () = 0;
};

class notPure : public pure
{
public:
  notPure() {}
  virtual bool isPure () { return false; };
};

int main ()
{
  pure ** list;
  list = new (pure (*[3]));
  for (int i = 0; i   3; i ++) {
list [i] = new notPure();
  }
}

The error is reported on line 18 list = new (pure (*[3]));.

gcc -v results in:
Using built-in specs.
Target: i686-linux
Configured with: ../gcc-4.1.1/configure
--prefix=/p/TargetPlatforms/x86-Linux-cdk/cross-gcc/build/tools
--target=i686-linux --build=i686-pc-mingw32 --host=i686-pc-mingw32
--disable-multilib
--with-local-prefix=/p/TargetPlatforms/x86-Linux-cdk/cross-gcc/build/tools
--with-system-zlib --disable-libunwind-exceptions --disable-nls --enable-shared
--enable-languages=c,c++ --enable-__cxa_atexit --enable-c99 --enable-long-long
--enable-threads=posix --enable-win32-registry=oce-gcc4.1.1-glibc2.5
Thread model: posix
gcc version 4.1.1

We're cross compiling from Windows to Linux.
The command line is very basic: gcc reproduce.cpp
This results in the following compiler output:

reproduce.cpp: In function 'int main()':
reproduce.cpp:18: error: cannot allocate an object of abstract type 'pure'
reproduce.cpp:2: note:   because the following virtual functions are pure
within 'pure':
reproduce.cpp:5: note:  virtual bool pure::isPure()

The preprocessed file looks as follows:

# 1 reproduce.cpp
# 1 built-in
# 1 command line
# 1 reproduce.cpp
class pure
{
public:
  pure() {}
  virtual bool isPure () = 0;
};

class notPure : public pure
{
public:
  notPure() {}
  virtual bool isPure () { return false; };
};

int main ()
{
  pure ** list;
  list = new (pure (*[3]));
  for (int i = 0; i  3; i ++) {
list [i] = new notPure();
  }
}


-- 
   Summary: Error while allocating array of pointers to objects of a
pure virtual class
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: p dot vestjens at gmail dot com


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



[Bug c++/32402] Error while allocating array of pointers to objects of a pure virtual class

2007-06-19 Thread p dot vestjens at gmail dot com


--- Comment #1 from p dot vestjens at gmail dot com  2007-06-19 14:47 
---
Created an attachment (id=13736)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13736action=view)
Sourcefile demonstrating the problem


-- 


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



[Bug pending/32403] New:

2007-06-19 Thread gcc-bugzilla at gcc dot gnu dot org
NOTE: Defaulting component because reported component no longer exists


Environment:
System: Linux marko2 2.6.15-28-686 #1 SMP PREEMPT Thu Feb 1 16:14:07 UTC 2007
i686 GNU/Linux
Architecture: i686


host: i486-pc-linux-gnu
build: i486-pc-linux-gnu
target: m68hc11-unknown-none
configured with: ../src/configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --with-gnu-as --with-gnu-ld --enable-nls
--without-included-gettext --disable-checking --enable-languages=c
--build=i486-linux-gnu --host=i486-linux-gnu --target=m68hc11 --without-headers

How-To-Repeat:
When reporting a compiler error, preprocessor output mu


how to correct or work around the problem, if known (multiple lines)


-- 
   Product: gcc
   Version: 3.3.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: pending
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: marko at localhost dot localhost
 GCC build triplet: i486-pc-linux-gnu
  GCC host triplet: i486-pc-linux-gnu
GCC target triplet: m68hc11-unknown-none


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



[Bug fortran/32404] New: Wrong-code with sbdart (valgrind errors, different output)

2007-06-19 Thread burnus at gcc dot gnu dot org
Spin off from PR 32236.

ftp://ftp.icess.ucsb.edu/pub/esrg/sbdart/sbdart_2.4.tar.gz (33181 lines of
code)

Unpack source and do:
- Delete in tauaero.f:1601 the line
  data wlbaer/0.,0./
- Insert around drt.f:951 the lines
  weq = 0.0_kr
  wfull = 0.0_kr

If one compiles (-O0) the program with g95, sunf95, ifort and gfortran (4.1.3,
4.2.0, 4.3) and compares the output, one finds (drf.f, subroutine stdout1):

- sunf95, ifort and g95 produce identical output except for the 7th column

- gfortran's output differs also in the 7th column, but starting from some row
it also differs in the 4th column; the results for the 4th column are different
depending on the gfortran version

A possible reason might be that some variable has not been initialized,
however, using ifort -check all I could only find the two problems above (weq,
wfull) and g95 and g95 -freal=nan -flogical=true -finteger=123456
-pointer=invalid give the same result.

Some further debugging (in drf.f's stdout1) shows that topup - or more
precisely flup(ntop) - diverges at some point. flup is set via DISORT
(disort.f).

Both g95 and gfortran show quite a lot of uninitialized warnings in valgrind
(over 30), ifort only shows two, sunf95 four.


-- 
   Summary: Wrong-code with sbdart (valgrind errors, different
output)
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug fortran/32236] internal compiler error: in gfc_assign_data_value, at fortran/data.c:288

2007-06-19 Thread burnus at gcc dot gnu dot org


--- Comment #8 from burnus at gcc dot gnu dot org  2007-06-19 15:30 ---
Bob,

 Can you please tell me why the compiler flags tauaero.f:1517 while  
 the problem seems to be associated with the data statement at line  
 1601?

The line number shown when an internal compiler error occurs is often not
reliably; often something goes wrong at one place, but this is only triggered
when the compiler is at a completely different place. I found the line using
other compilers; but also the brand-new error message of the gfortran 4.3
compiler shows now:

tauaero.f:1601.17:
  data wlbaer/0.,0./
1
tauaero.f:1587.21:
  wlbaer(2)=0.,
2
Error: 'wlbaer' at (1) already is initialized at (2)

Thus either =0. in line 1587 or data wlbaer/0.,0./ needs to be removed.

 I have tried your suggestion (commenting out the data  
 statement), but the code does not appear to work correctly with this  
 modification.

I miss a good test case. If you have one, I'm really interested. However, I
found some divergence in the output compared with other compilers, see PR
32404.


-- 


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



[Bug pending/32403] foo

2007-06-19 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-06-19 16:02 ---
blah


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID
Summary||foo


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



[Bug target/32369] [frv] macro DF_LIVE_IN passed 2 arguments, but takes just 1

2007-06-19 Thread rask at gcc dot gnu dot org


--- Comment #4 from rask at gcc dot gnu dot org  2007-06-19 16:30 ---
Subject: Bug 32369

Author: rask
Date: Tue Jun 19 16:30:03 2007
New Revision: 125851

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125851
Log:
2007-06-19  Rask Ingemann Lambertsen  [EMAIL PROTECTED]

PR target/32369
* config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
(frv_ifcvt_modify_insn): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/frv/frv.c


-- 


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



[Bug fortran/20863] [4.2 only] Pointer problems in PURE procedures

2007-06-19 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2007-06-19 16:30 ---
Tobias points out to me that this is not a regression - closed and out.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/20082] unrecognizable insn

2007-06-19 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2007-06-19 16:32 ---
Sorry for my screw-up on the PR number - it was 20882 that was fixed.

Paul


-- 


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



[Bug fortran/20882] [4.2 only] PURE procedure containing pointer assignment to dummy with pointer component

2007-06-19 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-06-19 16:32 ---
This is not a regression, so that is it.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/32313] [4.3 Regression] Bootstrap failure running gengtype in stage 2.

2007-06-19 Thread daney at gcc dot gnu dot org


--- Comment #14 from daney at gcc dot gnu dot org  2007-06-19 16:36 ---
Subject: Bug 32313

Author: daney
Date: Tue Jun 19 16:36:42 2007
New Revision: 125852

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125852
Log:
PR target/32313
* config/mips/mips.md (cprestore): Mark $gp as used.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/mips/mips.md


-- 


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



[Bug target/32313] [4.3 Regression] Bootstrap failure running gengtype in stage 2.

2007-06-19 Thread daney at gcc dot gnu dot org


--- Comment #15 from daney at gcc dot gnu dot org  2007-06-19 16:43 ---
The second time is the charm.

There are still regressions caused by the dataflow merge, but at least we can
bootstrap now.


-- 

daney at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/32236] internal compiler error: in gfc_assign_data_value, at fortran/data.c:288

2007-06-19 Thread pault at gcc dot gnu dot org


--- Comment #9 from pault at gcc dot gnu dot org  2007-06-19 16:44 ---
This is not a regression so no backport.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug testsuite/32057] Random failure on gfortran.dg/secnds.f

2007-06-19 Thread rob1weld at aol dot com


--- Comment #13 from rob1weld at aol dot com  2007-06-19 17:11 ---
The goal of the tests is not to measure some time, but to check that
intervals are properly ordered, i.e., t1=dat1=t1a and t2a=dat2-dat1= t2.

If that is the goal then could we eliminate all influence of time (midnight /
leap seconds / end of year, and whatever random issues occur) by using a
procedure similar to what is described in:
gcc-4_3-trunk/libmudflap/testsuite/lib/mfdg.exp ?


# Indicate that this test case is to be rerun several times.  This
# is useful if it is nondeterministic.  This applies to rerunning the
# test program only, not rebuilding it.
# The embedded format is { dg-repetitions N }, where N is the number
# of repetitions.  It better be greater than zero.
#
proc dg-repetitions { line value } {
upvar dg-repetitions repetitions
set repetitions $value
}

#
# Indicate that this test case is to be run with a short timeout.
# The embedded format is { dg-timeout N }, where N is in seconds.
#
proc dg-timeout { line value } {
global dg-timeout
set dg-timeout $value
}

# dejagnu's config/unix.exp hard-codes 300 seconds as the timeout
# for any natively run executable.  That's too long for tests run
# multiple times and that may possibly hang.  So we override it here
# to provide some degree of control.


We could run the test 5 times and if we got at least one pass we could write
PASS: and use WARNING: to write the number of failures. If we get 5
failures then we just write FAIL:.

The last time I ran make -i check I got a pass on this test, the time before
a fail; previously it's been hit and miss. The above technique will catch
random failures better and avoid false positives.


-- 


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



[Bug middle-end/32327] [4.2 Regression] Incorrect stack sharing causing removal of live code

2007-06-19 Thread rth at gcc dot gnu dot org


--- Comment #26 from rth at gcc dot gnu dot org  2007-06-19 17:26 ---
(In reply to comment #10)
 Talked to Dan Berlin and Diego Novillo here at Google. They told me
 that all locals are promoted to function scope.

That *only* applies to register variables, not stack variables.

We very very much want to preserve scope of stack variables, because
we very very much want to share stack space between stack variables
of different scopes.  Failure to do so causes bad interactions with
inlining, and causes stack space consumtion to grow to unacceptable
levels.  I.e. you can't build kernels anymore.


-- 


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



[Bug target/32335] libgcc build failure, ICE in cselib_record_set, at cselib.c:1508

2007-06-19 Thread rask at gcc dot gnu dot org


--- Comment #9 from rask at gcc dot gnu dot org  2007-06-19 17:35 ---
Subject: Bug 32335

Author: rask
Date: Tue Jun 19 17:35:16 2007
New Revision: 125853

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125853
Log:
2007-06-19  Rask Ingemann Lambertsen  [EMAIL PROTECTED]

PR target/32335
* config/m32c/m32c.c: Include dataflow header file.
(m32c_emit_prologue): Adjust for prologue insn change.
* config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
once inside a PARALLEL. Assume frame size passed in operand 0
includes space to save the fb register.
(prologue_enter_24): Likewise.
(epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/m32c/m32c.c
trunk/gcc/config/m32c/prologue.md


-- 


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



[Bug middle-end/32327] [4.2 Regression] Incorrect stack sharing causing removal of live code

2007-06-19 Thread dnovillo at google dot com


--- Comment #27 from dnovillo at google dot com  2007-06-19 17:39 ---
Subject: Re:  [4.2 Regression] Incorrect stack sharing
 causing removal of live code

On 6/19/07 1:26 PM, rth at gcc dot gnu dot org wrote:
 --- Comment #26 from rth at gcc dot gnu dot org  2007-06-19 17:26 ---
 (In reply to comment #10)
 Talked to Dan Berlin and Diego Novillo here at Google. They told me
 that all locals are promoted to function scope.
 
 That *only* applies to register variables, not stack variables.

Yes, but our GIMPLE optimizers don't know that and we do not have a way
of enforcing that in GIMPLE.  There just are no scope boundaries in the
SSA web.  So, the end result is that in SSA we only have function scope.


 We very very much want to preserve scope of stack variables, because
 we very very much want to share stack space between stack variables
 of different scopes.  Failure to do so causes bad interactions with
 inlining, and causes stack space consumtion to grow to unacceptable
 levels.  I.e. you can't build kernels anymore.

Agreed.  We have to find a way of either tying the hands of code motion
transformations by making them use the SSA web *and* the TREE_BLOCKs, or
make stack slot sharing aware of live ranges.

Right now we have the unfortunate situation that an optimizer is making
a valid transformation which breaks the scope assumption that stack
sharing uses.

I am not sure if it would be practical to force code motion
optimizations to use anything other than the SSA web to do their
analysis.  Perhaps we could force scopes by building barriers on the SSA
web itself (say, by putting PHI nodes at scope boundaries, or something).

Alternatively, we could incorporate live-range analysis to stack slot
sharing.  That way, if code motion creates undue stack slot pressure, we
would merely emit suboptimal code, instead of wrong code.


-- 


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



[Bug rtl-optimization/32405] New: assertion failure in loop-iv.c; probable dataflow regression

2007-06-19 Thread bwilson at gcc dot gnu dot org
The following 2 testcases began failing for an xtensa-elf target when the
dataflow branch was merged:

gcc.c-torture/execute/920501-6.c
gcc.c-torture/execute/930921-1.c

Both tests fail at -O3 with internal compiler error: in get_biv_step,
at loop-iv.c:792. Neither the Xtensa port nor the loop-iv.c code
changed at the time of the regression in a way that obviously affects this. I'm
suspecting it is somehow related to the dataflow merge.

Here is what appears to be happening for 930921-1.c. The test program is:

f (x)
 unsigned x;
{
  return (unsigned) (((unsigned long long) x * 0xAAAB)  32)  1;
}


main ()
{
  unsigned i;


  for (i = 0; i  1; i++)
if (f (i) != i / 3)
  abort ();
  exit (0);
}


At -O3, function f is inlined into main and x * 0xAAAB is recognized as
a DImode induction variable.  I'm pretty sure the problem is related
to the lack of an adddi3 pattern in xtensa.md.  We rely on optabs.c to
expand DImode addition.  If I dump the RTL file, the induction
variable increment looks like:


;; ivtmp$55 = ivtmp$55 + 0x0aaab
(insn 26 25 27 930921-1.c:4 (set (reg:DI 50)
(mem/u/c/i:DI (symbol_ref/u:SI (*.LC1) [flags 0x2]) [2 S8 A64])) -1
(expr_list:REG_EQUAL (const_double -1431655765 [0xaaab] 0 [0x0] 0 [0x0] 0
[0x0] 0 [0x0] 0 [0x0])
(nil)))

(insn 27 26 28 930921-1.c:4 (clobber (reg:DI 51)) -1 (nil))

(insn 28 27 29 930921-1.c:4 (set (subreg:SI (reg:DI 51) 4)
(plus:SI (subreg:SI (reg:DI 45 [ ivtmp$55 ]) 4)
(subreg:SI (reg:DI 50) 4))) -1 (nil))


(insn 29 28 30 930921-1.c:4 (set (reg:SI 52)
(const_int 1 [0x1])) -1 (nil))


(jump_insn 30 29 31 930921-1.c:4 (set (pc)
(if_then_else (ltu (subreg:SI (reg:DI 51) 4)
(subreg:SI (reg:DI 45 [ ivtmp$55 ]) 4))
(label_ref 32)
(pc))) -1 (nil))


(insn 31 30 32 930921-1.c:4 (set (reg:SI 52)
(const_int 0 [0x0])) -1 (nil))


(code_label 32 31 33 6  [0 uses])

(insn 33 32 34 930921-1.c:4 (set (subreg:SI (reg:DI 51) 0)
(plus:SI (subreg:SI (reg:DI 45 [ ivtmp$55 ]) 0)
(subreg:SI (reg:DI 50) 0))) -1 (nil))


(insn 34 33 35 930921-1.c:4 (set (reg:SI 53)
(plus:SI (reg:SI 52)
(subreg:SI (reg:DI 51) 0))) -1 (nil))


(insn 35 34 36 930921-1.c:4 (set (subreg:SI (reg:DI 51) 0)
(reg:SI 53)) -1 (nil))


(insn 36 35 0 930921-1.c:4 (set (reg:DI 45 [ ivtmp$55 ])
(reg:DI 51)) -1 (expr_list:REG_EQUAL (plus:DI (reg:DI 45 [ ivtmp$55 ])
(reg:DI 50))
(nil)))


The failing assertion in get_biv_step() is:

gcc_assert ((*inner_mode == *outer_mode) != (*extend != UNKNOWN));

The outer_mode is DImode; the inner_mode is SImode; and extend is
UNKNOWN, since there are no SIGN_EXTEND or ZERO_EXTEND operations
involved here.  Is this code intended to work for DImode IVs when
the machine doesn't directly support DImode operations?  I don't know
if the problem is in this loop-iv.c code or whether it ought not
recognize the DImode induction variable in the first place.


-- 
   Summary: assertion failure in loop-iv.c; probable dataflow
regression
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bwilson at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: xtensa-elf


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



[Bug target/32406] New: [4.3 Regression] MIPS: FAIL in nestfunc-6.c at -O3

2007-06-19 Thread daney at gcc dot gnu dot org
Build from svn r125825 with:
http://gcc.gnu.org/viewcvs?view=revrevision=125852
applied.

Configured: ../trunk/configure --target=mipsel-linux
--with-sysroot=/usr/local/mipsel-linux-test
--prefix=/usr/local/mipsel-linux-test --with-arch=mips32 --with-float=soft
--disable-java-awt --without-x --disable-tls --enable-__cxa_atexit
--disable-jvmpi --disable-libmudflap --enable-languages=c,c++

gcc.c-torture/execute/nestfunc-6.c is FAILing at -O2, -O3, and -Os.  This is a
regression from:

http://gcc.gnu.org/ml/gcc-testresults/2007-06/msg00546.html

This is the test case:
---
typedef __SIZE_TYPE__ size_t;
extern void abort (void);
extern void exit (int);
extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));

int main ()
{
  __label__ nonlocal;
  int compare (const void *a, const void *b)
  {
goto nonlocal;
  }

  char array[3];
  qsort (array, 3, 1, compare);
  abort ();

 nonlocal:
  exit (0);
}


Here is the generated assembly:
 /home/daney/gccsvn/mipsel-trunk/gcc/xgcc
-B/home/daney/gccsvn/mipsel-trunk/gcc/ -O3 -S nestfunc-6.c
---
.file   1 nestfunc-6.c
.section .mdebug.abi32
.previous
.abicalls
.rdata
.align  2
$LTRAMP0:
.word   0x03e00821  # move   $1,$31
.word   0x04110001  # bgezal $0,.+8
.word   0x  # nop
.word   0x8fe30014  # lw $3,20($31)
.word   0x8fe20018  # lw $2,24($31)
.word   0x0060c821  # move   $25,$3
.word   0x0068  # jr $3
.word   0x0020f821  # move   $31,$1
.word   0x  # function address
.word   0x  # static chain value
.globl  _flush_cache
.text
.align  2
.globl  main
.entmain
.type   main, @function
main:
.frame  $sp,96,$31  # vars= 64, regs= 2/0, args= 16, gp= 8
.mask   0xc000,-4
.fmask  0x,0
.setnoreorder
.setnomacro

lui $28,%hi(__gnu_local_gp)
addiu   $sp,$sp,-96
addiu   $28,$28,%lo(__gnu_local_gp)
sw  $31,92($sp)
sw  $fp,88($sp)
.cprestore  16
lui $2,%hi($LTRAMP0)
addiu   $6,$2,%lo($LTRAMP0)
addiu   $3,$sp,40
addiu   $2,$sp,24
sw  $2,84($sp)
sw  $3,80($sp)
sw  $2,28($sp)
sw  $sp,32($sp)
move$7,$3
addiu   $8,$6,32
$L2:
lw  $2,0($6)
lw  $3,4($6)
lw  $4,8($6)
lw  $5,12($6)
addiu   $6,$6,16
sw  $2,0($7)
sw  $3,4($7)
sw  $4,8($7)
sw  $5,12($7)
bne $6,$8,$L2
addiu   $7,$7,16

lw  $2,4($6)
lw  $4,0($6)
sw  $2,4($7)
sw  $4,0($7)
lw  $2,80($sp)
lui $3,%hi(compare.1584)
addiu   $3,$3,%lo(compare.1584)
sw  $3,32($2)
lw  $3,80($sp)
addiu   $2,$sp,28
sw  $2,36($3)
lw  $25,%call16(_flush_cache)($28)
lw  $4,80($sp)
li  $5,40   # 0x28
jalr$25
li  $6,3# 0x3

lw  $28,16($sp)
lw  $4,84($sp)
lw  $25,%call16(qsort)($28)
lw  $7,80($sp)
li  $5,3# 0x3
jalr$25
li  $6,1# 0x1

lw  $28,16($sp)
lw  $25,%call16(abort)($28)
jalr$25
nop

$L3:
$L4:
lw  $25,%call16(exit)($28)
jalr$25
move$4,$0

.setmacro
.setreorder
.endmain
.align  2
.entcompare.1584
.type   compare.1584, @function
compare.1584:
.frame  $fp,8,$31   # vars= 0, regs= 1/0, args= 0, gp= 0
.mask   0x4000,-8
.fmask  0x,0
.setnoreorder
.setnomacro

addiu   $sp,$sp,-8
sw  $fp,0($sp)
lw  $fp,0($2)
lw  $sp,4($2)
lui $2,%hi($L3)
addiu   $2,$2,%lo($L3)
j   $2
nop

.setmacro
.setreorder
.endcompare.1584
.ident  GCC: (GNU) 4.3.0 20070618 (experimental)


Note that $gp ($28) is not restored at $L3 where it is used.  The compare
function does 'goto nonlocal;' which is a jump to $L3, but $gp will have the
wrong value and must be restored.

This worked before the dataflow merge because the compare function would load
$gp (unnecessarily).

I think the fix is to load $gp at $L3.


-- 
   Summary: [4.3 Regression] MIPS: FAIL in 

[Bug c++/32400] [4.3 Regression] ICE in expand_or_defer_fn, at cp/semantics.c:3220

2007-06-19 Thread jojelino at gmail dot com


--- Comment #2 from jojelino at gmail dot com  2007-06-19 18:13 ---
Created an attachment (id=13737)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13737action=view)
source file that causes ICE

reduced. just three line for ICE


-- 

jojelino at gmail dot com changed:

   What|Removed |Added

  Attachment #13735|0   |1
is obsolete||


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



[Bug c++/32400] [4.3 Regression] ICE in expand_or_defer_fn, at cp/semantics.c:3220

2007-06-19 Thread jojelino at gmail dot com


--- Comment #3 from jojelino at gmail dot com  2007-06-19 18:18 ---
(From update of attachment 13737)
removing static keyword at the top resolves problem.
but is it workaround?


-- 


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



[Bug tree-optimization/32367] [4.3 Regression] internal compiler error: in build_polynomial_chrec, at tree-chrec.h:113

2007-06-19 Thread spop at gcc dot gnu dot org


--- Comment #13 from spop at gcc dot gnu dot org  2007-06-19 18:35 ---
Subject: Bug 32367

Author: spop
Date: Tue Jun 19 18:35:39 2007
New Revision: 125855

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125855
Log:
PR tree-optimization/32367
* tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
of the chrec has no evolution in that loop.
* testsuite/gcc.dg/tree-ssa/pr32367.c: New.


Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr32367.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-chrec.h


-- 


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



[Bug middle-end/32327] [4.2 Regression] Incorrect stack sharing causing removal of live code

2007-06-19 Thread amacleod at redhat dot com


--- Comment #28 from amacleod at redhat dot com  2007-06-19 18:57 ---
Won't solve the problem currently, but I think the long term solution is to do
stack analysis when out-of-ssa and expand have been merged into a single
entity. The live range info out-of-ssa calculates can be used to do a decent
job of stack sharing regardless of scoping info.

Short term, we might be able to check to see if a stack variable is used
outside its scope when going out of ssa, and flag it for no sharing, or promote
it to file level, or the next appropriate scope level.  That would work as long
as we don't end up promoting too many things in the wrong routines :-). 

I'm not fond of trying to make the optimization passes aware of scopes on top
of everything else they are aware of, Id rather see it taken care of in one
place, and not dependent on scoping info.


-- 


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



[Bug ada/32407] New: ACATS cd92001 fails

2007-06-19 Thread anhvofrcaus at gmail dot com
The detailed content of the log is shown below.

splitting
/home/voax/linux/build-4.3.0/gcc/testsuite/ada/acats/tests/cd/cd92001.a into:
   cd92001.adb
BUILD cd92001.adb
gnatmake --GCC=/home/voax/linux/build-4.3.0/gcc/xgcc
-B/home/voax/linux/build-4.3.0/gcc/ -gnatws -O2
-I/home/voax/linux/build-4.3.0/gcc/testsuite/ada/acats/support cd92001.adb
-largs --GCC=/home/voax/linux/build-4.3.0/gcc/xgcc
-B/home/voax/linux/build-4.3.0/gcc/
/home/voax/linux/build-4.3.0/gcc/xgcc -c -B/home/voax/linux/build-4.3.0/gcc/
-gnatws -O2 -I/home/voax/linux/build-4.3.0/gcc/testsuite/ada/acats/support
cd92001.adb
gnatbind -aO./ -I/home/voax/linux/build-4.3.0/gcc/testsuite/ada/acats/support
-I- -x cd92001.ali
gnatlink cd92001.ali --GCC=/home/voax/linux/build-4.3.0/gcc/xgcc
-B/home/voax/linux/build-4.3.0/gcc/
RUN cd92001

,.,. CD92001 ACATS 2.5 07-06-18 18:43:09
 CD92001 Check object attribute: X'Valid.
   * CD92001 Expected 'Valid =FALSE for Default item  1.
   * CD92001 Expected 'Valid =FALSE for Default item  2.
   * CD92001 Expected 'Valid =FALSE for Default item  3.
   * CD92001 Expected 'Valid =FALSE for Default item  4.
   * CD92001 Expected 'Valid =FALSE for Default item  5.
   * CD92001 Expected 'Valid =FALSE for Default item  6.
   * CD92001 Expected 'Valid =FALSE for Default item  7.
   * CD92001 Expected 'Valid =FALSE for Default item  8.
   * CD92001 Expected 'Valid =FALSE for Default item  9.
   * CD92001 Expected 'Valid =FALSE for Default item  10.
   * CD92001 Expected 'Valid =FALSE for Default item  11.
   * CD92001 Expected 'Valid =FALSE for Default item  12.
   * CD92001 Expected 'Valid =FALSE for Default item  13.
   * CD92001 Expected 'Valid =FALSE for Default item  14.
   * CD92001 Expected 'Valid =FALSE for Default item  15.
   * CD92001 Expected 'Valid =FALSE for Default item  16.
   * CD92001 Expected 'Valid =FALSE for Default item  17.
   * CD92001 Expected 'Valid =FALSE for Default item  18.
   * CD92001 Expected 'Valid =FALSE for Default item  19.
   * CD92001 Expected 'Valid =FALSE for Default item  20.
   * CD92001 Expected 'Valid =FALSE for Default item  21.
   * CD92001 Expected 'Valid =FALSE for Default item  22.
   * CD92001 Expected 'Valid =FALSE for Default item  23.
   * CD92001 Expected 'Valid =FALSE for Default item  24.
   * CD92001 Expected 'Valid =FALSE for Default item  25.
   * CD92001 Expected 'Valid =FALSE for Default item  26.
   * CD92001 Expected 'Valid =FALSE for Default item  27.
   * CD92001 Expected 'Valid =FALSE for Default item  28.
   * CD92001 Expected 'Valid =FALSE for Default item  29.
   * CD92001 Expected 'Valid =FALSE for Default item  30.
   * CD92001 Expected 'Valid =FALSE for Default item  31.
   * CD92001 Expected 'Valid =FALSE for Default item  32.
   * CD92001 Expected 'Valid =FALSE for Default item  33.
   * CD92001 Expected 'Valid =FALSE for Default item  34.
   * CD92001 Expected 'Valid =FALSE for Default item  35.
   * CD92001 Expected 'Valid =FALSE for Default item  36.
   * CD92001 Expected 'Valid =FALSE for Default item  37.
   * CD92001 Expected 'Valid =FALSE for Default item  38.
   * CD92001 Expected 'Valid =FALSE for Default item  39.
   * CD92001 Expected 'Valid =FALSE for Default item  40.
   * CD92001 Expected 'Valid =FALSE for Default item  41.
   * CD92001 Expected 'Valid =FALSE for Default item  42.
   * CD92001 Expected 'Valid =FALSE for Default item  43.
   * CD92001 Expected 'Valid =FALSE for Default item  44.
   * CD92001 Expected 'Valid =FALSE for Default item  45.
   * CD92001 Expected 'Valid =FALSE for Default item  46.
   * CD92001 Expected 'Valid =FALSE for Default item  47.
   * CD92001 Expected 'Valid =FALSE for Default item  48.
   * CD92001 Expected 'Valid =FALSE for Default item  49.
   * CD92001 Expected 'Valid =FALSE for Default item  50.
   * CD92001 Expected 'Valid =FALSE for Default item  51.
   * CD92001 Expected 'Valid =FALSE for Default item  52.
   * CD92001 Expected 'Valid =FALSE for Default item  53.
   * CD92001 Expected 'Valid =FALSE for Default item  54.
   * CD92001 Expected 'Valid =FALSE for Default item  55.
   * CD92001 Expected 'Valid =FALSE for Default item  56.
   * CD92001 Expected 'Valid =FALSE for Default item  57.
   * CD92001 Expected 'Valid =FALSE for Default item  58.
   * CD92001 Expected 'Valid =FALSE for Default item  59.
   * CD92001 Expected 'Valid =FALSE for Default item  60.
   * CD92001 Expected 'Valid =FALSE for Default item  61.
   * CD92001 Expected 'Valid =FALSE for Default item  62.
   * CD92001 Expected 'Valid =FALSE for Default item  63.
   * CD92001 Expected 'Valid =FALSE for Default item  64.
   * CD92001 Expected 'Valid =FALSE for Default item  65.
   * CD92001 Expected 'Valid =FALSE for Default item  66.
   * CD92001 Expected 'Valid =FALSE for Default item  67.
   * CD92001 Expected 'Valid =FALSE for Default item  68.
   * CD92001 Expected 'Valid =FALSE for Default item  69.
   * CD92001 Expected 'Valid =FALSE for Default item  70.
   * CD92001 Expected 'Valid =FALSE for Default item 

[Bug rtl-optimization/32296] [4.3 Regression] Bootstrap failure in stage1 on hppa*-*-*

2007-06-19 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #14 from dave at hiauly1 dot hia dot nrc dot ca  2007-06-19 
19:56 ---
Subject: Re:  [4.3 Regression] Bootstrap failure in stage1 on hppa*-*-*

  We need to know that the return pointer (r2) is not used and that
  the function is a leaf function (i.e., that the incoming value in
  r2 is unchanged).  Calls clobber r2.
  
  Dave
 
 Sounds like the following patch would work:
 
 diff -r 149399c845b5 gcc/config/pa/pa.c
 --- a/gcc/config/pa/pa.cTue Jun 12 15:49:27 2007 -0700
 +++ b/gcc/config/pa/pa.cWed Jun 13 18:37:17 2007 -0700
 @@ -4415,7 +4415,7 @@ hppa_can_use_return_insn_p (void)
  {
return (reload_completed
(compute_frame_size (get_frame_size (), 0) ? 0 : 1)
 -  df_hard_reg_used_count (2) == 1
 +  DF_REG_DEF_COUNT (2) == 0
! frame_pointer_needed);
  }
 
 
 This essentially checks if r2 is ever written within the function
 (including the calls since r2 is included in the CALL_USED_REGS).

This is an update.  Since the dataflow merge I've been unable to
find a way to handle generation of the prologue/epilogue/return insns
that works on all hppa targets.  However, debugging time has been
limited.

I had one successful build on hppa2.0w-hp-hpux11.11.  However,
I haven't had a successful build on hppa64-hp-hpux11.11 or
hppa-unknown-linux-gnu.  The hppa64 problem is PR 32398.

The linux problem is wierd.  In stage2, I get the following
failure:

/bin/sh: line 1:  4487 Segmentation fault  (core dumped) ./xsinfo
../../sinf
o.h
make[3]: *** [ada/sinfo.h] Error 139

The above fault is a stack overflow.  The problem is wierd in the sense
that the error doesn't occur when I run ./xsinfo ../../sinfo.h from
an interactive shell.  It only occurs when the command is run by make.
Increasing the stack limit didn't help.  This suggests a problem with
the environment passed to xsinfo.

Dave


-- 


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



[Bug rtl-optimization/32296] [4.3 Regression] Bootstrap failure in stage1 on hppa*-*-*

2007-06-19 Thread hjl at lucon dot org


--- Comment #15 from hjl at lucon dot org  2007-06-19 20:10 ---
(In reply to comment #14)


 The linux problem is wierd.  In stage2, I get the following
 failure:
 
 /bin/sh: line 1:  4487 Segmentation fault  (core dumped) ./xsinfo
 ../../sinf
 o.h
 make[3]: *** [ada/sinfo.h] Error 139
 
 The above fault is a stack overflow.  The problem is wierd in the sense
 that the error doesn't occur when I run ./xsinfo ../../sinfo.h from
 an interactive shell.  It only occurs when the command is run by make.
 Increasing the stack limit didn't help.  This suggests a problem with
 the environment passed to xsinfo.
 

make may change stack limit. You can write a simple Makefile to check
the real stack limit of processes spawned by make.


-- 


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



[Bug c++/32408] New: Template Parsing Error

2007-06-19 Thread chsalvia at gmail dot com
GCC may have a defective template parsing routine which seems to mistake the
'' token in an expression for the beginning of a template argument.  The error
only seems to happen when a templated function evaluates a member of a
templated class or struct with a '' symbol.

Here is a simple code snippet that reproduces the problem:

template class T
struct templated_struct 
{
int count;
};

template class T
int template_func()
{
templated_structT s;
if (s.count  0) return 0;
return 0;
}

int main()
{
template_funcint ();
return 0;
}

The compiler generates the follow error message when trying to compile the
above code:

test4.cc: In function ‘int template_func()’:
test4.cc:16: error: parse error in template argument list
test4.cc: In function ‘int template_func() [with T = int]’:
test4.cc:22:   instantiated from here
test4.cc:16: error: ‘count’ is not a member template function

Note that the above code compiles just fine if you replace the '' token in the
IF statement with an '' or an '==', thus demonstrating that GCC seems to be
confusing the '' token for a template argument.

A temporary workaround is to put a set of parenthesis around s.count.


-- 
   Summary: Template Parsing Error
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: chsalvia at gmail dot com


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



[Bug c++/32409] New: Template Parsing Error

2007-06-19 Thread chsalvia at gmail dot com
GCC may have a defective template parsing routine which seems to mistake the
'' token in an expression for the beginning of a template argument.  The error
only seems to happen when a templated function evaluates a member of a
templated class or struct with a '' symbol.

Here is a simple code snippet that reproduces the problem:

template class T
struct templated_struct 
{
int count;
};

template class T
int template_func()
{
templated_structT s;
if (s.count  0) return 0;
return 0;
}

int main()
{
template_funcint ();
return 0;
}

The compiler generates the follow error message when trying to compile the
above code:

test4.cc: In function ‘int template_func()’:
test4.cc:16: error: parse error in template argument list
test4.cc: In function ‘int template_func() [with T = int]’:
test4.cc:22:   instantiated from here
test4.cc:16: error: ‘count’ is not a member template function

Note that the above code compiles just fine if you replace the '' token in the
IF statement with an '' or an '==', thus demonstrating that GCC seems to be
confusing the '' token for a template argument.

A temporary workaround is to put a set of parenthesis around s.count.


-- 
   Summary: Template Parsing Error
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: chsalvia at gmail dot com


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



[Bug rtl-optimization/32296] [4.3 Regression] Bootstrap failure in stage1 on hppa*-*-*

2007-06-19 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #16 from dave at hiauly1 dot hia dot nrc dot ca  2007-06-19 
20:39 ---
Subject: Re:  [4.3 Regression] Bootstrap failure in stage1 on hppa*-*-*

 make may change stack limit.

You are right.  Make bumps the soft limit to unlimited when the hard
limit is unlimited.

Dave


-- 


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



[Bug target/32277] indir-call-prof fails on ia64-linux-gnu

2007-06-19 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2007-06-19 21:12 ---
I proposed XFAIL'ing the test at one point but that patch was not accepted.

See http://gcc.gnu.org/ml/gcc-patches/2007-01/msg02016.html

I get the same failure on IA64 HP-UX.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-19 21:12:30
   date||


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



[Bug c++/32408] Template Parsing Error

2007-06-19 Thread schwab at suse dot de


--- Comment #1 from schwab at suse dot de  2007-06-19 21:22 ---
*** Bug 32409 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c++/32409] Template Parsing Error

2007-06-19 Thread schwab at suse dot de


--- Comment #1 from schwab at suse dot de  2007-06-19 21:22 ---


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


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/32408] Template Parsing Error

2007-06-19 Thread pcarlini at suse dot de


--- Comment #2 from pcarlini at suse dot de  2007-06-19 22:04 ---
Apparently you provided the wrong snippet, this one compiles just fine and
well, doesn't have 22 lines... ;)


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug rtl-optimization/32405] assertion failure in loop-iv.c; probable dataflow regression

2007-06-19 Thread rakdver at kam dot mff dot cuni dot cz


--- Comment #1 from rakdver at kam dot mff dot cuni dot cz  2007-06-19 
22:07 ---
Subject: Re:   New: assertion failure in loop-iv.c; probable dataflow
regression

 The failing assertion in get_biv_step() is:
 
 gcc_assert ((*inner_mode == *outer_mode) != (*extend != UNKNOWN));
 
 The outer_mode is DImode; the inner_mode is SImode; and extend is
 UNKNOWN, since there are no SIGN_EXTEND or ZERO_EXTEND operations
 involved here.  Is this code intended to work for DImode IVs when
 the machine doesn't directly support DImode operations?  I don't know
 if the problem is in this loop-iv.c code or whether it ought not
 recognize the DImode induction variable in the first place.

this looks more like some latent problem exposed by df branch merge.  I
will have a look.


-- 


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



[Bug rtl-optimization/32405] assertion failure in loop-iv.c; probable dataflow regression

2007-06-19 Thread rakdver at gcc dot gnu dot org


-- 

rakdver at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rakdver at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-19 22:26:15
   date||


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



[Bug c++/32410] New: Const functions in template don't give access errors with this until instantiated.

2007-06-19 Thread coppro at users dot sourceforge dot net
If you create a const member function to a template class, it seems to be able
to change a non-mutable member of the function by using the this pointer. The
following illegal code compiles:

template typename T
class Class
 {
  unsigned int i;
 public:
  void foo () const
   {
this-i++;
   }
 };

However, if Classwhatever::foo is instantiated, then it gives an error for
changing the constant data member. However, if you remove the this- line,
the access errors occur even without an instantion. This is inconsistent
behavior. They should both cause errors at the same point.


-- 
   Summary: Const functions in template don't give access errors
with this until instantiated.
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: coppro at users dot sourceforge dot net


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



[Bug c++/32408] Template Parsing Error

2007-06-19 Thread chsalvia at gmail dot com


--- Comment #3 from chsalvia at gmail dot com  2007-06-19 23:08 ---
Sorry.  It seems this is actually a namespace conflict issue.  If you add
include the iostream header file and add using namespace std the code will
not compile, due to a conflict with std::count.

#include iostream
using namespace std;

template class T
struct templated_struct 
{
int count;
};

template class T
int template_func()
{
templated_structT s;
if (s.count  0) return 0;
return 0;
}

int main()
{
template_funcint ();
return 0;
}

Now I'm not completely sure if this should be considered a bug.  However, since
count is clearly a member of templated_struct, there shouldn't be a namespace
conflict here.  Also, if you replace '' with '' or '==', it compiles fine
with no namespace conflict, which means gcc seems to be confusing '' with a
template argument.


-- 


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



[Bug c++/32408] Template Parsing Error

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2007-06-19 23:10 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/10200] Weird clash with same names in different scopes

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #13 from pinskia at gcc dot gnu dot org  2007-06-19 23:10 
---
*** Bug 32408 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||chsalvia at gmail dot com


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



[Bug c++/32410] Const functions in template don't give access errors with this until instantiated.

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-06-19 23:13 ---
This is correct as *this is dependent so the compiler cannot resolve that
until instantation time so this is not a bug.

This is inconsistent behavior.

Yes but i here is not depdendent. While this-i is.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug rtl-optimization/32296] [4.3 Regression] Bootstrap failure in stage1 on hppa*-*-*

2007-06-19 Thread danglin at gcc dot gnu dot org


--- Comment #17 from danglin at gcc dot gnu dot org  2007-06-19 23:30 
---
Created an attachment (id=13738)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13738action=view)
Patch under test


-- 


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



[Bug rtl-optimization/32296] [4.3 Regression] Bootstrap failure in stage1 on hppa*-*-*

2007-06-19 Thread danglin at gcc dot gnu dot org


--- Comment #18 from danglin at gcc dot gnu dot org  2007-06-19 23:32 
---
The stack overflow takes some time and I was able to attach gdb:

0x402a6c58 in read_encoded_value_with_base (encoding=11 '\v', base=0,
p=0x60384 , val=0xc019ea8c) at ../../../gcc/libgcc/../gcc/unwind-pe.h:200
200 ../../../gcc/libgcc/../gcc/unwind-pe.h: No such file or directory.
in ../../../gcc/libgcc/../gcc/unwind-pe.h
(gdb) bt
#0  0x402a6c58 in read_encoded_value_with_base (encoding=11 '\v', base=0,
p=0x60384 , val=0xc019ea8c) at ../../../gcc/libgcc/../gcc/unwind-pe.h:200
#1  0x402a70ac in linear_search_fdes (ob=0xc019ea14, this_fde=0x60378,
pc=0x2546b) at ../../../gcc/libgcc/../gcc/unwind-dw2-fde.c:812
#2  0x402a79b4 in _Unwind_IteratePhdrCallback (info=value optimized out,
size=value optimized out, ptr=0xc019e8cc)
at ../../../gcc/libgcc/../gcc/unwind-dw2-fde-glibc.c:389
#3  0x4025b3c8 in dl_iterate_phdr () from /lib/libc.so.6
#4  0x402a8f70 in _Unwind_Find_FDE (pc=0x2546b, bases=0xc019e3a4)
at ../../../gcc/libgcc/../gcc/unwind-dw2-fde-glibc.c:420
#5  0x402a42b0 in uw_frame_state_for (context=0xc019e230, fs=0xc019e418)
at ../../../gcc/libgcc/../gcc/unwind-dw2.c:1121
#6  0x402a611c in _Unwind_RaiseException (exc=0x42ac3a88)
at ../../../gcc/libgcc/../gcc/unwind.inc:103
#7  0x0001da88 in ada.exceptions.exception_propagation.propagate_exception (
from_signal_handler=value optimized out) at a-exexpr.adb:584
#8  0x0001dac8 in ada.exceptions.process_raise_exception (
e=value optimized out, from_signal_handler=false) at a-except.adb:776
#9  0x0001db28 in __gnat_raise_nodefer_with_msg (e=0xb) at a-except.adb:829
#10 0x0001e208 in __gnat_raise_exception (e=0x0,
message=value optimized out) at a-except.adb:859
#11 0x00027fec in ada.text_io.get_line (file=0x74e20, item=
  {P_ARRAY = 0x0, P_BOUNDS = 0x0}) at a-textio.adb:630
---Type return to continue, or q return to quit---
#12 0x0002546c in ada.strings.unbounded.text_io.get_line (file=0x74e20)
at a-suteio.adb:72
#13 0x0001b540 in xsinfo__getline___832 ()
#14 0x0001ad7c in _ada_xsinfo ()


-- 


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



[Bug c/4076] -Wunused doesn't warn about static function only called by itself.

2007-06-19 Thread mrs at apple dot com


--- Comment #20 from mrs at apple dot com  2007-06-19 23:36 ---
The patch was approved today on the gcc-patches list.


-- 


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



[Bug target/32347] ICE on gcc/testsuite/gcc-dg/vmx/ops.c

2007-06-19 Thread malitzke at metronets dot com


--- Comment #12 from malitzke at metronets dot com  2007-06-19 23:57 ---
Why is this still unconfirmed after the corrobation by Mrs Johnson?

Personally I could not care less if it is swept under the rug, like so many
other
PR's. Without-altivec would suit me fine as altivec is, to me, just a competive
and unnecessary competitive response, by then Motorola, to Intel's SSE, which
to me is just gumming up the X86 part of the compiler.


-- 


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



[Bug target/32347] ICE on gcc/testsuite/gcc-dg/vmx/ops.c

2007-06-19 Thread pinskia at gcc dot gnu dot org


--- Comment #13 from pinskia at gcc dot gnu dot org  2007-06-20 00:27 
---
This is a target bug.  Nothing can change it from being a target bug unless it
turns out to be a middle-end bug on how addressing works inside the compiler.
The main reason why it has not been confirmed, is because I and others have
been busy with some of your other bugs and other things (like traveling to
Japan).


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Component|c   |target
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-20 00:27:59
   date||


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



[Bug target/32406] [4.3 Regression] MIPS: FAIL in nestfunc-6.c at -O3

2007-06-19 Thread hp at gcc dot gnu dot org


--- Comment #1 from hp at gcc dot gnu dot org  2007-06-20 02:53 ---
I saw your comments on IRC at an attempt of using nonlocal_goto_receiver.
You don't want to make a new pattern with that name, just rename
exception_receiver; the obvious one-line patch.  That pattern already has the
necessary restore of $gp (not just a clobber).  With a nonlocal_goto_receiver,
the pattern exception_receiver is not used (grep for yourself!), so it doesn't
hurt or something.


-- 

hp at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hp at gcc dot gnu dot org


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



[Bug fortran/32302] [4.2 Regression] Incorrect result with -O2

2007-06-19 Thread pault at gcc dot gnu dot org


--- Comment #14 from pault at gcc dot gnu dot org  2007-06-20 05:02 ---
Subject: Bug 32302

Author: pault
Date: Wed Jun 20 05:02:39 2007
New Revision: 125870

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125870
Log:
2007-06-20  Paul Thomas  [EMAIL PROTECTED]

PR fortran/32302
* trans-common.c (build_common_decl): If resizing of common
decl is needed, update the TREE_TYPE.

2007-06-20  Paul Thomas  [EMAIL PROTECTED]

PR fortran/32302
* gfortran.dg/common_resize_1.f90: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/common_resize_1.f
Modified:
branches/gcc-4_2-branch/gcc/fortran/ChangeLog
branches/gcc-4_2-branch/gcc/fortran/trans-common.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/32302] [4.2 Regression] Incorrect result with -O2

2007-06-19 Thread pault at gcc dot gnu dot org


--- Comment #15 from pault at gcc dot gnu dot org  2007-06-20 05:03 ---
Fixed on trunk and 4.2

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug other/32411] New: GCC Collect2 adds extra -lm's to link commands even when not linking with -lm.

2007-06-19 Thread rob1weld at aol dot com
The page http://gcc.gnu.org/gcc-4.3/changes.html#mpfropts says libm is being
replaced with libmpfr. I set out to remove all the excess references to -lm
in the configure scripts and Makefiles produced.

I found that I could remove -lm from everywhere and GCC _compiled_ OK. When
I ran the testsuite there where a lot of extra errors in Gfortran so I put the
un-modified configure file back and re-compiled GCC.

I noticed that everything still compiled OK but the errors in libstdc++ where
not well explained in the logs. I investigated and found that collect2 may have
some problems with including -lm even when it is not specified on the command
line.


GNU C version 4.3.0 20070619 (experimental), GMP version 4.2.1, MPFR version
2.3.0-dev.
GNU assembler version 2.17.50 (i686-pc-linux-gnu) using BFD version (GNU
Binutils) 2.17.50.20070426


# /opt/gcc-4_3-build-2/gcc/collect2 -v  
collect2 version 4.3.0 20070619 (experimental) (i386 Linux/ELF)
/usr/bin/ld -v
GNU ld (GNU Binutils) 2.17.50.20070426

See these tests results for a further explanation:
http://gcc.gnu.org/ml/gcc-testresults/2007-06/msg00919.html


-- 
   Summary: GCC Collect2 adds extra -lm's to link commands even
when not linking with -lm.
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rob1weld at aol dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug middle-end/32258] Testsuite reports - FAIL: gcc.dg/torture/builtin-pow-mpfr-1.c

2007-06-19 Thread rob1weld at aol dot com


--- Comment #19 from rob1weld at aol dot com  2007-06-20 05:09 ---
Just tried MPFR version 2.3.0 - it works fine.


-- 


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



[Bug middle-end/32024] ICE - libgcc2.c:557: internal compiler error: in fold_checksum_tree, at fold-const.c:12652

2007-06-19 Thread rob1weld at aol dot com


--- Comment #9 from rob1weld at aol dot com  2007-06-20 05:15 ---
Still occurs:

gcc version 4.3.0 20070619 (experimental)
/root/downloads/gcc-4_3-trunk/libgcc/../gcc/libgcc2.c: In function '__muldi3':
/root/downloads/gcc-4_3-trunk/libgcc/../gcc/libgcc2.c:557: internal compiler
error: in fold_checksum_tree, at fold-const.c:12775


-- 


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



[Bug boehm-gc/31999] Make -i check finds one, and fails to find another, boehm-gc problem

2007-06-19 Thread rob1weld at aol dot com


--- Comment #2 from rob1weld at aol dot com  2007-06-20 05:30 ---
Bug part 1 - FIXED
I was still getting the undefined reference to `GC_local_malloc' errors in
gcc version 4.3.0 20070614 but it may be fixed in gcc version 4.3.0
20070619.


Bug part 1 - NOT - FIXED(?)
2): I don't know that boehm is integrated with GCC in accordance with the
recommendations provided in the boehm DOCs.


Bug part 3 - Seems FIXED(?)
internal compiler error: in uses_jv_markobj_p, at java/boehm.c:245


-- 


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



[Bug rtl-optimization/28011] [4.1/4.2 Regression] [SH] g++ generates wrong code, if '-fno-exceptions' and '-O' options are specified

2007-06-19 Thread kkojima at gcc dot gnu dot org


--- Comment #4 from kkojima at gcc dot gnu dot org  2007-06-20 05:47 ---
Subject: Bug 28011

Author: kkojima
Date: Wed Jun 20 05:47:09 2007
New Revision: 125871

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125871
Log:
PR rtl-optimization/28011
Backport from mainline.
* reload.c (push_reload): Set dont_share if IN appears in OUT
also when IN is a PLUS rtx.
(reg_overlap_mentioned_for_reload_p): Return true if X and IN
are same PLUS rtx.


Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/reload.c


-- 


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



[Bug rtl-optimization/28011] [4.1/4.2 Regression] [SH] g++ generates wrong code, if '-fno-exceptions' and '-O' options are specified

2007-06-19 Thread kkojima at gcc dot gnu dot org


--- Comment #5 from kkojima at gcc dot gnu dot org  2007-06-20 05:52 ---
Subject: Bug 28011

Author: kkojima
Date: Wed Jun 20 05:52:05 2007
New Revision: 125872

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125872
Log:
PR rtl-optimization/28011
Backport from mainline.
* reload.c (push_reload): Set dont_share if IN appears in OUT
also when IN is a PLUS rtx.
(reg_overlap_mentioned_for_reload_p): Return true if X and IN
are same PLUS rtx.


Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/reload.c


-- 


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



[Bug rtl-optimization/28011] [4.1/4.2 Regression] [SH] g++ generates wrong code, if '-fno-exceptions' and '-O' options are specified

2007-06-19 Thread kkojima at gcc dot gnu dot org


--- Comment #6 from kkojima at gcc dot gnu dot org  2007-06-20 05:54 ---
Fixed.


-- 

kkojima at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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