[Bug target/40657] allocate local variables with fewer instructions

2009-07-07 Thread carrot at google dot com


--- Comment #5 from carrot at google dot com  2009-07-07 06:44 ---
Could we do the optimization in function thumb1_expand_prologue? If we find
this opportunity in function thumb1_expand_prologue, we can remove the sp
manipulations from prologue and epilogue. We also should add extra registers to
push/pop operands.


-- 


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



[Bug middle-end/40669] New: [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread jakub at gcc dot gnu dot org
double _Complex
test (int d, int t, double *x, double *y, double *z, int n,
  double _Complex (*fnp) (double))
{
  int m = n / 2;
  double min = y[t], max = z[t], med = x[m * d + t];
  double _Complex result = 0.0;

  if (n == 0)
return 0.0;

  if (min  med)
result += test (d, (t + 1) % d, x + (m + 1) * d, y, z, n - m - 1, fnp);
  else if (max  med)
result += test (d, (t + 1) % d, x, y, z, m, fnp);
  else
{
  result += fnp (y[0] + x[m]);
  result += test (d, (t + 1) % d, x + (m + 1) * d, y, z, n - m - 1, fnp);
}
  return result;
}

ICEs at -O2 -ffast-math on x86_64-linux, in 4.4/4.5 with:
x.i: In function 'test':
x.i:22:1: internal compiler error: in gimple_assign_set_rhs1, at gimple.h:1683
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
and in 4.3 with:
x.i: In function 'test':
x.i:4: internal compiler error: in set_ssa_val_to, at tree-ssa-sccvn.c:1071
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Compiles just fine with 4.1 and 4.2.


-- 
   Summary: [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1
from eliminate_tail_call
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: jakub at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: x86_64-linux


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.4.1


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



[Bug regression/40667] Performance regression: stack frames are generated even with -fomit-frame-pointer

2009-07-07 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-07-07 09:07 ---
Why do you limit your stack boundary artificially?


-- 


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



[Bug target/40134] symbols not resolved when building shared libraries (link with -lgcc_s -lgcc?)

2009-07-07 Thread debian-gcc at lists dot debian dot org


--- Comment #2 from debian-gcc at lists dot debian dot org  2009-07-07 
09:08 ---
proposed patch at http://gcc.gnu.org/ml/gcc-patches/2009-07/msg00322.html


-- 


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-07-07 09:15 ---
With my local 4.3 copy it prints

t.i: In function ‘test’:
t.i:22: error: PHI def is not a GIMPLE value
add_acc.0_64 = PHI COMPLEX_EXPR 0.0, 0.0(0), add_acc.0_60(7),
add_acc.0_64(6), add_acc.0_64(4)

COMPLEX_EXPR 0.0, 0.0;

t.i:22: error: invalid operand to binary operator
add_acc.0_64

t.i:22: error: invalid operand to binary operator
add_acc.0_64

t.i:22: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

which is because COMPLEX_EXPR 0.0, 0.0 should be COMPLEX_CST 0.0, 0.0 to
be valid.  Didn't I fix that lately


-- 

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 |2009-07-07 09:15:44
   date||


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-07-07 09:23 ---
Yeah, PR40328.  Then we are left with

t.i: In function ‘test’:
t.i:22: error: invalid operand to binary operator
add_acc.0_64

t.i:22: error: invalid operand to binary operator
add_acc.0_64

t.i:22: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

which means the decl doesn't have DECL_GIMPLE_REG_P set.

I'll take care of 4.3.


-- 


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



[Bug target/40670] New: Load floating point constant 0 directly

2009-07-07 Thread carrot at google dot com
Compile following function with options -Os -mthumb -march=armv5te

float return_zero()
{
  return 0;
}

Gcc generates:

ldr r0, .L2
bx  lr
.L3:
.align  2
.L2:
.word   0

Floating point 0 is also integer 0. So the function body can be simplified as

   mov r0, 0
   bx  lr

Now we can remove the memory load and constant pool. The result code is smaller
and faster.

The memory load and constant pool is expanded in pass machine_reorg.


-- 
   Summary: Load floating point constant 0 directly
   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=40670



[Bug target/40670] Load floating point constant 0 directly

2009-07-07 Thread carrot at google dot com


--- Comment #1 from carrot at google dot com  2009-07-07 09:38 ---
Created an attachment (id=18149)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18149action=view)
test case


-- 


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2009-07-07 09:46 ---
Created an attachment (id=18150)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18150action=view)
gcc45-pr40669.patch

Patch I'm going to bootstrap/regtest.


-- 


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|NEW |ASSIGNED


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-07-07 10:01 ---
4.4 will need a backport of PR40328 as well.  Your attached patch is ok.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||40328


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



[Bug c/40602] crti.o: No such file

2009-07-07 Thread mikpe at it dot uu dot se


--- Comment #2 from mikpe at it dot uu dot se  2009-07-07 10:18 ---
(In reply to comment #1)
 Now I'm trying to compile gcc-4.4.0 configured as follows:
 
 ../gcc-4.4.0/configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
 --target=x86_64-pc-linux-gnu --enable-languages=c --disable-multilib
 
 make fails with the same error message.
 
 crti.o is located at /usr/lib64/crti.o
 
 this is the output of cat LOG | grep crti.o | grep ENOENT | grep lib64 after
 having issued strace -f make 2 LOG:
 
 [pid 32046]
 access(/sources/gcc-build/gcc/../lib/gcc/x86_64-pc-linux-gnu/4.4.0/../../../../x86_64-pc-linux-gnu/lib/../lib64/crti.o,
 R_OK) = -1 ENOENT (No such file or directory)
 [pid 32046]
 access(/sources/gcc-build/gcc/../lib/gcc/x86_64-pc-linux-gnu/4.4.0/../../../../lib64/crti.o,
 R_OK) = -1 ENOENT (No such file or directory)
 [pid 32046] access(/lib/../lib64/crti.o, R_OK) = -1 ENOENT (No such file or
 directory)
 [pid 32046] access(/usr/lib/../lib64/crti.o, R_OK) = -1 ENOENT (No such file
 or directory)
 
 As you can see it tries to access /usr/lib64/crti.o, but inexplicably it can't
 find it.

Check that /usr/lib/ exists. If it doesn't then /usr/lib/../lib64/ will ENOENT
rather than resolve to /usr/lib64/. Also check that /usr/lib isn't a symlink,
in which case /usr/lib/.. may not be /usr .


-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread manu at gcc dot gnu dot org


--- Comment #6 from manu at gcc dot gnu dot org  2009-07-07 10:25 ---
(In reply to comment #5)
 
 Thus code is undefined you have an acess of a char array as a struct.  
 Yes you are only taking the address of an element but it is still  
 considered an acess by the standards.

I see that users repeatedly fall for this. Could we detect what type is
accessed as what and provide an informative note? Something like:

warning: dereferencing type-punned pointer might break strict-aliasing rules
note: accessing 'char *' as 'structure *' is undefined

Andrew, do you think this would be difficult to implement?


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org


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



[Bug c/40602] crti.o: No such file

2009-07-07 Thread pluto at agmk dot net


--- Comment #3 from pluto at agmk dot net  2009-07-07 10:33 ---
sounds like PR36485.


-- 

pluto at agmk dot net changed:

   What|Removed |Added

 CC||pluto at agmk dot net


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



[Bug c/40602] crti.o: No such file

2009-07-07 Thread booleandomain at gmail dot com


--- Comment #4 from booleandomain at gmail dot com  2009-07-07 10:39 ---
I created a symlink from /usr/lib to /usr/lib64 and now gcc is built fine!
Thanks a lot!

(Probably this bug is going to be marked as invalid...)


-- 


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



[Bug debug/40666] [4.4.1 Regression] Ada rts build failure

2009-07-07 Thread ebotcazou at gcc dot gnu dot org


--- Comment #1 from ebotcazou at gcc dot gnu dot org  2009-07-07 10:45 
---
Did this work with 4.4.0?


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-07 10:45:08
   date||


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



[Bug debug/40666] [4.4.1 Regression] Ada rts build failure

2009-07-07 Thread ebotcazou at gcc dot gnu dot org


--- Comment #2 from ebotcazou at gcc dot gnu dot org  2009-07-07 10:45 
---
Fixing.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ebotcazou at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-07-07 10:45:08 |2009-07-07 10:45:21
   date||


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



[Bug debug/40666] [4.4.1 regression] Ada tools build failure

2009-07-07 Thread ebotcazou at gcc dot gnu dot org


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.4.1 Regression] Ada rts  |[4.4.1 regression] Ada tools
   |build failure   |build failure
   Target Milestone|--- |4.4.1


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



[Bug target/40668] 64-bit sparc miscompiles memcpy of argument inside switch

2009-07-07 Thread mikpe at it dot uu dot se


--- Comment #3 from mikpe at it dot uu dot se  2009-07-07 11:35 ---
Confirmed, with gcc-4.3-20090705 it works, with gcc-4.4-20090630 it fails.
Compiling with -S and comparing the .s files it looks like 4.4 completely
mis-schedules the code for put_uint32:

put_uint32:
.register   %g2, #scratch
.register   %g3, #scratch
ldub[%sp+2175], %g1
ldub[%sp+2176], %g3
ldub[%sp+2177], %g2
ldub[%sp+2178], %g4
st  %o0, [%sp+2175]
stb %g4, [%o1+3]
stb %g1, [%o1]
stb %g3, [%o1+1]
jmp %o7+8
 stb%g2, [%o1+2]

Notice how the store of %o0 to the four bytes at %sp+2175 comes after the
corresponding byte loads, so %g1 to %g4 are loaded with garbage, likely zeroes.

In contrast, gcc-4.3 generates the store before the loads:

put_uint32:
.register   %g2, #scratch
.register   %g3, #scratch
st  %o0, [%sp+2175]
ldub[%sp+2176], %g3
ldub[%sp+2177], %g4
ldub[%sp+2178], %g2
ldub[%sp+2175], %g1
stb %g2, [%o1+3]
stb %g1, [%o1]
stb %g3, [%o1+1]
jmp %o7+8
 stb%g4, [%o1+2]


-- 

mikpe at it dot uu dot se changed:

   What|Removed |Added

 CC||mikpe at it dot uu dot se


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2009-07-07 12:18 ---
Subject: Bug 40669

Author: jakub
Date: Tue Jul  7 12:18:38 2009
New Revision: 149319

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149319
Log:
PR middle-end/40669
* tree-tailcall.c (adjust_return_value_with_ops,
create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
if it has complex or vector type.

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

Added:
trunk/gcc/testsuite/gcc.dg/pr40669.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-tailcall.c


-- 


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



[Bug testsuite/40671] New: [4.5 Regression] internal compiler error: in extract_insn, at recog.c:2089 on powerpc

2009-07-07 Thread dominiq at lps dot ens dot fr
Probably due to revision 148869 the following tests fail on
powerpc-apple-darwin9 with -m32

FAIL: gcc.dg/vect/vect-82_64.c (internal compiler error)
FAIL: gcc.dg/vect/vect-83_64.c (internal compiler error)
FAIL: gcc.target/powerpc/darwin-misaligned.c (internal compiler error)
FAIL: gcc.target/powerpc/macho-lo-sum.c (internal compiler error)
FAIL: gcc.target/powerpc/ppc64-double-1.c (internal compiler error)
FAIL: gcc.target/powerpc/rs6000-fpint-2.c (internal compiler error)

See for instance http://gcc.gnu.org/ml/gcc-regression/2009-06/msg00188.html .

With -m64, only ppc64-double-1.c fails.

The failures are:

[karma] f90/bug% gcc45 -O3 -mpowerpc64
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c: In
function 'main':
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c:25:1:
error: unrecognizable insn:
(insn 5 4 6 3
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c:22
(set:DI (reg:DI 121)
(plus:DI (reg:DI 31 r31)
(high:DI (const:DI (unspec:DI [
(symbol_ref:DI (L_ms$non_lazy_ptr) [flags 0x400]
var_decl 0x4150ad20 ms)
] 50) -1 (nil))
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c:25:1:
internal compiler error: in extract_insn, at recog.c:2089
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
[karma] f90/bug% gcc45 -O3 -mpowerpc64
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/vect-82_64.c 
   In file included from
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/vect-82_64.c:6:0:
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h: In function
'sig_ill_handler':
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h:11:1: error:
unrecognizable insn:
(insn/f 14 13 15 2 /opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h:9
(parallel [
(set (mem/c:SI (plus:SI (reg/f:DI 1 r1)
(const_int -64 [0xffc0])) [3 S4 A8])
(reg/f:DI 1 r1))
(set (reg/f:DI 1 r1)
(plus:SI (reg/f:DI 1 r1)
(const_int -64 [0xffc0])))
]) -1 (expr_list:REG_FRAME_RELATED_EXPR (set (reg/f:DI 1 r1)
(plus:DI (reg/f:DI 1 r1)
(const_int -64 [0xffc0])))
(nil)))
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h:11:1: internal
compiler error: in extract_insn, at recog.c:2089
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
[karma] f90/bug% gcc45 -O3 -mpowerpc64
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/vect-83_64.c
In file included from
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/vect-83_64.c:6:0:
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h: In function
'sig_ill_handler':
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h:11:1: error:
unrecognizable insn:
(insn/f 14 13 15 2 /opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h:9
(parallel [
(set (mem/c:SI (plus:SI (reg/f:DI 1 r1)
(const_int -64 [0xffc0])) [3 S4 A8])
(reg/f:DI 1 r1))
(set (reg/f:DI 1 r1)
(plus:SI (reg/f:DI 1 r1)
(const_int -64 [0xffc0])))
]) -1 (expr_list:REG_FRAME_RELATED_EXPR (set (reg/f:DI 1 r1)
(plus:DI (reg/f:DI 1 r1)
(const_int -64 [0xffc0])))
(nil)))
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/vect/tree-vect.h:11:1: internal
compiler error: in extract_insn, at recog.c:2089
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
[karma] f90/bug% gcc45 -O3 -mpowerpc64
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c: In
function 'main':
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c:25:1:
error: unrecognizable insn:
(insn 5 4 6 3
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c:22
(set:DI (reg:DI 121)
(plus:DI (reg:DI 31 r31)
(high:DI (const:DI (unspec:DI [
(symbol_ref:DI (L_ms$non_lazy_ptr) [flags 0x400]
var_decl 0x4150ad20 ms)
] 50) -1 (nil))
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c:25:1:
internal compiler error: in extract_insn, at recog.c:2089
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
[karma] f90/bug% gcc45 -O3 -mpowerpc64

[Bug middle-end/40328] [4.5 Regression] internal compiler error: in set_ssa_val_to, at tree-ssa-sccvn.c:1811

2009-07-07 Thread rguenth at gcc dot gnu dot org


--- Comment #9 from rguenth at gcc dot gnu dot org  2009-07-07 12:44 ---
Subject: Bug 40328

Author: rguenth
Date: Tue Jul  7 12:44:32 2009
New Revision: 149321

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149321
Log:
2009-07-07  Richard Guenther  rguent...@suse.de

PR middle-end/40328
PR tree-optimization/40669
* tree-tailcall.c (adjust_accumulator_values): Properly
set DECL_GIMPLE_REG_P.
(adjust_return_value): Likewise.
(tree_optimize_tail_calls_1): Likewise.
* fold-const.c (fold_convert): Fold the built COMPLEX_EXPR.

* gcc.dg/pr40669.c: New testcase.
* gcc.dg/torture/pr40328.c: Likewise.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/pr40669.c
branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/torture/pr40328.c
Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/fold-const.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
branches/gcc-4_3-branch/gcc/tree-tailcall.c


-- 


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-07-07 12:44 ---
Subject: Bug 40669

Author: rguenth
Date: Tue Jul  7 12:44:32 2009
New Revision: 149321

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149321
Log:
2009-07-07  Richard Guenther  rguent...@suse.de

PR middle-end/40328
PR tree-optimization/40669
* tree-tailcall.c (adjust_accumulator_values): Properly
set DECL_GIMPLE_REG_P.
(adjust_return_value): Likewise.
(tree_optimize_tail_calls_1): Likewise.
* fold-const.c (fold_convert): Fold the built COMPLEX_EXPR.

* gcc.dg/pr40669.c: New testcase.
* gcc.dg/torture/pr40328.c: Likewise.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/pr40669.c
branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/torture/pr40328.c
Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/fold-const.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
branches/gcc-4_3-branch/gcc/tree-tailcall.c


-- 


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



[Bug fortran/40551] Wrong code due to missing copy-in/copy-out stried array to assumed-size dummy

2009-07-07 Thread burnus at gcc dot gnu dot org


--- Comment #12 from burnus at gcc dot gnu dot org  2009-07-07 12:47 ---
 You were right - contiguous does need initializing.  Not for this case but
 some of the other uses that I referred to.

Paul, what is the plan? You had a 4.4 and 4.5 check in, contiguous is not
initialized in 4.5. Do you want to fix that? Or can this PR be closed?


-- 


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



[Bug debug/40666] [4.4.1 regression] Ada tools build failure

2009-07-07 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #3 from dave at hiauly1 dot hia dot nrc dot ca  2009-07-07 
13:35 ---
Subject: Re:  [4.4.1 Regression] Ada rts build failure

 Did this work with 4.4.0?

Yes.

Dave


-- 


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



[Bug middle-end/40328] [4.5 Regression] internal compiler error: in set_ssa_val_to, at tree-ssa-sccvn.c:1811

2009-07-07 Thread jakub at gcc dot gnu dot org


--- Comment #10 from jakub at gcc dot gnu dot org  2009-07-07 14:07 ---
Subject: Bug 40328

Author: jakub
Date: Tue Jul  7 14:07:19 2009
New Revision: 149329

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149329
Log:
PR middle-end/40669
* tree-tailcall.c (adjust_return_value_with_ops,
create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
if it has complex or vector type.

Backport from mainline:
2009-06-03  Richard Guenther  rguent...@suse.de

PR middle-end/40328
* fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.

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

Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr40669.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/fold-const.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/tree-tailcall.c


-- 


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread jakub at gcc dot gnu dot org


--- Comment #7 from jakub at gcc dot gnu dot org  2009-07-07 14:07 ---
Subject: Bug 40669

Author: jakub
Date: Tue Jul  7 14:07:19 2009
New Revision: 149329

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149329
Log:
PR middle-end/40669
* tree-tailcall.c (adjust_return_value_with_ops,
create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
if it has complex or vector type.

Backport from mainline:
2009-06-03  Richard Guenther  rguent...@suse.de

PR middle-end/40328
* fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.

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

Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr40669.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/fold-const.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/tree-tailcall.c


-- 


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2009-07-07 14:09 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work|4.3.4 4.5.0 |4.3.4 4.4.1 4.5.0
 Resolution||FIXED


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



[Bug middle-end/40669] [4.3/4.4/4.5 Regression] ICE in gimple_assign_set_rhs1 from eliminate_tail_call

2009-07-07 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail||4.3.3 4.4.0
  Known to work||4.3.4 4.5.0
   Target Milestone|4.4.1   |4.3.4


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



[Bug regression/40667] Performance regression: stack frames are generated even with -fomit-frame-pointer

2009-07-07 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2009-07-07 14:41 ---
I think it is related to PR 39137.


-- 


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



[Bug target/40672] New: constant address loads moved into loop unnecessarily

2009-07-07 Thread froydnj at gcc dot gnu dot org
The testcase below:

typedef unsigned char uint8_t;

#define UART3_LSR (*(volatile uint8_t *)(0x4902+20))
#define UART3_RBR (*(volatile uint8_t *)(0x4902+0))

int IsSerialBufferFull(void)
{
  return (UART3_LSR  0x20) == 0;
}

void SendSerialByte(uint8_t byte)
{
  while (IsSerialBufferFull())
;
  UART3_RBR = byte;
}

when compiled with arm-none-eabi-gcc -O2 results in suboptimal code for
SendSerialByte:

SendSerialByte:
@ Function supports interworking.
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, #1224736768
add r3, r3, #131072
.L3:
ldrbr2, [r3, #20]   @ zero_extendqisi2
tst r2, #32
mov r2, #1224736768
add r2, r2, #131072
beq .L3
strbr0, [r2, #0]
bx  lr
.size   SendSerialByte, .-SendSerialByte

The load of the constant for UART3_RBR (mov r2/add r2) should not be moved into
the loop, since it's not needed until after the loop.  Furthermore, the
necessary value is already available in r3.

The same problem doesn't happen on other platforms, e.g. mips-sde-elf gives:

andi$4,$4,0x00ff
li  $2,1224867840   # 0x4902
.L6:
lbu $3,20($2)
andi$3,$3,0x20
beq $3,$0,.L6
nop

sb  $4,0($2)
j   $31
nop

or powerpc-eabi:

lis 9,0x4902
ori 9,9,20
.L4:
lbz 0,0(9)
andi. 11,0,32
beq+ 0,.L4
lis 9,0x4902
stb 3,0(9)
blr

(which is not quite perfect, but better than the arm-none-eabi code...).


-- 
   Summary: constant address loads moved into loop unnecessarily
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: froydnj at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: arm-none-eabi


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



[Bug target/40672] constant address loads moved into loop unnecessarily

2009-07-07 Thread drow at gcc dot gnu dot org


--- Comment #1 from drow at gcc dot gnu dot org  2009-07-07 15:03 ---
It looks, roughly speaking, like the two nearby addresses are initially
commonized.  In the process, the use after the loop ends up sharing a REG with
the use in the loop.  Then the use in the loop is changed to use a new copy,
and the initialization in the loop feeds the out-of-loop copy.  And the use in
the loop gets materialized above the loop as it should.

In a quick look I didn't work out which RTL pass is at fault.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||drow at gcc dot gnu dot org


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



[Bug fortran/40551] Wrong code due to missing copy-in/copy-out stried array to assumed-size dummy

2009-07-07 Thread burnus at gcc dot gnu dot org


--- Comment #13 from burnus at gcc dot gnu dot org  2009-07-07 15:27 ---
(In reply to comment #12)
  You were right - contiguous does need initializing.  Not for this case but
  some of the other uses that I referred to.
 Paul, what is the plan? You had a 4.4 and 4.5 check in, contiguous is not
 initialized in 4.5. Do you want to fix that?

I somehow missed that it was checked in as part of PR 40646,
http://gcc.gnu.org/viewcvs?view=revrevision=149262.

Thus: I think this PR be closed, can it?


-- 


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



[Bug target/40648] misaligned store vectorizer patch introduced 10% runtime regression on Polyhedron test_fpu

2009-07-07 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2009-07-07 15:47 ---
The issue is likely the sequence

  load upper half of cache line 1
  load lower half of cache line 2
  store upper half of cache line 1
  store lower half of cache line 2   ---
  load upper half of cache line 2---
  load lower half of cache line 3
   ...

where the marked lines probably cause internal delays.

Not using unaligned stores for this kind of data dependence or peeling
for alignment will probably help here.


-- 


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



[Bug fortran/40673] New: Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread ronis at ronispc dot chem dot mcgill dot ca
Building lapack-3.2.1 results in a testsuite routine that fails with:

Testing DOUBLE PRECISION LAPACK linear equation routines
./xlintstd  dtest.in  dtest.out 21
/bin/sh: line 1: 21385 Illegal instruction (core dumped) ./xlintstd
dtest.in dtest.out 21
make[1]: *** [dtest.out] Error 132

I've  tried several different optimization combinations, all giving the same
result:

FORTRAN  = gfortran -fimplicit-none
#OPTS = -O3 -march=pentium4 -msse2 -mfpmath=sse -funroll-loops
-fomit-frame-pointer -floop-interchange -floop-strip-mine -floop-block -Wunused
OPTS = -O3 -march=native -funroll-loops -fomit-frame-pointer
-floop-interchange -floop-strip-mine -floop-block -Wunused

I've also dropped the -floop-interchange -floop-strip-mine -floop-block flags
and played with -march (native vs pentium4).   I get the same result


-- 
   Summary: Lapack-3.2.1 testsuite fails with illegal instruction
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ronis at ronispc dot chem dot mcgill dot ca
 GCC build triplet: i686-linux-gnu
  GCC host triplet: i686-linux-gnu
GCC target triplet: i686-linux-gnu


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



[Bug target/40672] constant address loads moved into loop unnecessarily

2009-07-07 Thread ramana at gcc dot gnu dot org


--- Comment #2 from ramana at gcc dot gnu dot org  2009-07-07 16:07 ---
confirmed with trunk revision 149279.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-07 16:07:17
   date||


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



[Bug fortran/40673] Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread kargl at gcc dot gnu dot org


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|critical|normal


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



[Bug target/40668] 64-bit sparc miscompiles memcpy of argument inside switch

2009-07-07 Thread mikpe at it dot uu dot se


--- Comment #4 from mikpe at it dot uu dot se  2009-07-07 16:28 ---
A reghunt identified Jakub's (added to cc: list) r142481 (PR38367 fix) as the
source of this regression.


-- 

mikpe at it dot uu dot se changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu dot org


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread mikulas at artax dot karlin dot mff dot cuni dot cz


--- Comment #7 from mikulas at artax dot karlin dot mff dot cuni dot cz  
2009-07-07 16:31 ---
  extern int c;
  int a(void)
  {
 return *(short *)(void *)c;
  }

 This is a very bad example of a false positive as you are acessing an
 int as a short; that is undefined. I will look at your code later on,
 my laptop for home is currently broken.

Whether it is a false positive or not depends on the context.
For example, if I call function a() from function b():
int b(void)
{
c = 0x12345678;
__asm__ volatile (:::memory);
return a();
}
the code is valid and the function b() must return a fixed value depending on
the endianity of the machine. That __asm__ statement works as a barrier that
prevents the compiler from reordering two accesses to c.

So I am not against the warning. The warning is good. The problem is that there
is no way to shut up the warning.


-- 


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



[Bug regression/40667] Performance regression: stack frames are generated even with -fomit-frame-pointer

2009-07-07 Thread mikulas at artax dot karlin dot mff dot cuni dot cz


--- Comment #3 from mikulas at artax dot karlin dot mff dot cuni dot cz  
2009-07-07 16:48 ---
Why do you limit your stack boundary artificially?

Because if I don't use FP code there is no point in aligning the stack.
Aligning the stack wastes stack space and code size and doesn't improve
performance of integer code in any way.


-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread pinskia at gcc dot gnu dot org


--- Comment #9 from pinskia at gcc dot gnu dot org  2009-07-07 16:54 ---
So you say that converting the char * pointer to struct * pointer is understood
as accessing the stored value by the standard?

No.
Let's look at the code:
char buffer[512];

(void *)((struct structure *)(void *)buffer)-x

You are accessing a character array via a struct structure and then taking
the address.  This why it is undefined.  Even though it does not look like an
access in the assembly as it is a-b is an addition, it is an access according
to the C/C++ standard.  Also aliasing is not transitive, that is you can access
anything via a character type but you cannot access a character by everything
(only character types themselves).


the code is valid and the function b() must return a fixed value depending on
the endianity of the machine. That __asm__ statement works as a barrier that
prevents the compiler from reordering two accesses to c.

Actually even with the memory barrier is still undefined according to the C/C++
standards, it does not mean we won't do what you expect but it means we don't
have to do what you expect it to do.  This is why we warn about it.


-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread mikulas at artax dot karlin dot mff dot cuni dot cz


--- Comment #8 from mikulas at artax dot karlin dot mff dot cuni dot cz  
2009-07-07 16:45 ---
 Thus code is undefined you have an acess of a char array as a struct.
 Yes you are only taking the address of an element but it is still
 considered an acess by the standards.

Why is it undefined?

An object shall have its store value accessed only by an lvalue that has one
of the following types ... * a character type

So you say that converting the char * pointer to struct * pointer is understood
as accessing the stored value by the standard?

The only possible problem could be some hypothetical computer that cannot hold
misaligned pointers to structs (common computers allow unaligned pointers and
trap only on dereferencing unaligned pointers, not on generating them). But
once I know that I have a computer that allows unaligned pointers to structs,
there should be a method how to shut the warning up (with (void *) cast).


-- 


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



[Bug target/40673] Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2009-07-07 17:28 ---
What happens if you compile with only '-O -pipe'


-- 


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



[Bug c++/40674] New: [LTO] 27_io/basic_filebuf/imbue/char/13171-2.cc hangs

2009-07-07 Thread hjl dot tools at gmail dot com
On LTO branh, as of revision 149328

27_io/basic_filebuf/imbue/char/13171-2.cc

hangs on Linux/ia64.


-- 
   Summary: [LTO] 27_io/basic_filebuf/imbue/char/13171-2.cc hangs
   Product: gcc
   Version: lto
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
GCC target triplet: ia64-*-linux-gnu


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



[Bug c++/40674] [LTO] 27_io/basic_filebuf/imbue/char/13171-2.cc hangs

2009-07-07 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2009-07-07 17:31 ---
27_io/basic_filebuf/imbue/wchar_t/14975-2.cc also hangs.


-- 


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



[Bug target/40673] Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2009-07-07 17:32 ---
Please add (minimized) testcase and all other info, as explained in [1].

Also, please post /proc/cpuid.

[1] http://gcc.gnu.org/bugs.html


-- 


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



[Bug c++/40639] Cannot parse dependent type for enum-base in C++0x

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #2 from jason at gcc dot gnu dot org  2009-07-07 17:55 ---
Subject: Bug 40639

Author: jason
Date: Tue Jul  7 17:55:26 2009
New Revision: 149341

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149341
Log:
PR c++/37816
* decl.c (build_enumerator): Don't add enumerators for a
scoped enum to the enclosing class.

PR c++/40639
* decl.c (start_enum): Allow dependent underlying type.

PR c++/40633
* decl.c (finish_enum): Finish scope even in a template.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/enum4.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum5.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum6.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum7.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/40633] [c++0x] ICE with scoped enum inside a template

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #1 from jason at gcc dot gnu dot org  2009-07-07 17:55 ---
Subject: Bug 40633

Author: jason
Date: Tue Jul  7 17:55:26 2009
New Revision: 149341

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149341
Log:
PR c++/37816
* decl.c (build_enumerator): Don't add enumerators for a
scoped enum to the enclosing class.

PR c++/40639
* decl.c (start_enum): Allow dependent underlying type.

PR c++/40633
* decl.c (finish_enum): Finish scope even in a template.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/enum4.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum5.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum6.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum7.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/37816] [c++0x] Invalid handling of scoped enums defined at class scope

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #2 from jason at gcc dot gnu dot org  2009-07-07 17:55 ---
Subject: Bug 37816

Author: jason
Date: Tue Jul  7 17:55:26 2009
New Revision: 149341

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149341
Log:
PR c++/37816
* decl.c (build_enumerator): Don't add enumerators for a
scoped enum to the enclosing class.

PR c++/40639
* decl.c (start_enum): Allow dependent underlying type.

PR c++/40633
* decl.c (finish_enum): Finish scope even in a template.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/enum4.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum5.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum6.C
trunk/gcc/testsuite/g++.dg/cpp0x/enum7.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread mikulas at artax dot karlin dot mff dot cuni dot cz


--- Comment #10 from mikulas at artax dot karlin dot mff dot cuni dot cz  
2009-07-07 18:07 ---
So you mean that that -x operator is invalid and break the standard?

Anyway the standard means if you write your code according to the standard =
the code will run correctly, but the inverse implication doesn't apply. It is
sometimes required to break the C standard.

For example, you write unsigned char *framebuffer = vga_getgraphmem(); and
now you want to access the framebuffer. According to the standard, you could
only do it by bytes. But that means one bus cycle to the videocard for every
byte transfered. So people understand that common processors allow aligned
accesses to 2, 4 or 8 bytes and that common videocards have their framebuffer
base address aligned on same larger boundary --- and they simply cast the
pointer to u_int32_t or u_int64_t and access the videoram faster. Each time you
watch some video, remember those undefined memory accesses that are hapenning
for you to get faster performance :)

Another example --- the C standard says how it's not allowed to even produce a
pointer that points before the allocated array or more than one entry after the
last entry of the array and how it's not allowed to subtract two pointers from
different arrays. It is perfectly rational --- unless you are writing the
memory allocator itself! Then you inevitably must do some operations that are
considered undefined by the standard.

Regarding that int * to short * cast --- obviously, the code may run on some
computer that has tagged memory and traps if access with invalid type is done.
But common computers don't have tagged memory and the programmer should be
allowed to do such casts if he understands the implications (for example, if
its done only in arch-specific part of an operating system, it is perfectly
legal). So there should be a method to silence the warning.


-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread pinskia at gcc dot gnu dot org


--- Comment #11 from pinskia at gcc dot gnu dot org  2009-07-07 18:18 
---
(In reply to comment #10)
 For example, you write unsigned char *framebuffer = vga_getgraphmem(); and
 now you want to access the framebuffer. According to the standard, you could
 only do it by bytes. But that means one bus cycle to the videocard for every
 byte transfered. So people understand that common processors allow aligned
 accesses to 2, 4 or 8 bytes and that common videocards have their framebuffer
 base address aligned on same larger boundary --- and they simply cast the
 pointer to u_int32_t or u_int64_t and access the videoram faster. Each time 
 you
 watch some video, remember those undefined memory accesses that are hapenning
 for you to get faster performance :)

Not fully, you missed part of the standard that takes about the effective type. 
Basically if there is no declared type for an object, the effective type is the
type which is used for storing and then only that can be read back with that
type or character type or the other cases the standard mentions.  The effective
type changes when another store happens.

In both of original cases in this bug report, there is a declared type which is
also the effective type.

And it is not about the cast between the pointer types which causes it to be
undefined but rather the accesses.  


-- 

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



[Bug target/40673] Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread ronis at ronispc dot chem dot mcgill dot ca


--- Comment #3 from ronis at ronispc dot chem dot mcgill dot ca  2009-07-07 
18:41 ---
As per comment 2, here's my /proc/cupinfo.  As to finding a minimized testcase,
this is nontrivial as I don't know if the problem is in a lapack routine or in
the testsuite routine itself.   The package is large but publicly available at:
 http://www.netlib.org/lapack/lapack.tgz

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 15
model   : 2
model name  : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping: 9
cpu MHz : 2999.999
cache size  : 512 KB
physical id : 0
siblings: 2
core id : 0
cpu cores   : 1
apicid  : 0
initial apicid  : 0
fdiv_bug: no
hlt_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 2
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
bogomips: 5999.99
clflush size: 64
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 15
model   : 2
model name  : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping: 9
cpu MHz : 2999.999
cache size  : 512 KB
physical id : 0
siblings: 2
core id : 0
cpu cores   : 1
apicid  : 1
initial apicid  : 1
fdiv_bug: no
hlt_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 2
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
bogomips: 5999.15
clflush size: 64
power management:


-- 


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



[Bug target/40673] Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread ronis at ronispc dot chem dot mcgill dot ca


--- Comment #4 from ronis at ronispc dot chem dot mcgill dot ca  2009-07-07 
18:45 ---
As per comment #1, I compiled with '-O -pipe' (lapack added -fimplicit-none). 
I get the same behavior.


-- 


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



[Bug regression/35671] GCC 4.4.x vs. 4.2.x performance regression

2009-07-07 Thread t dot artem at mailcity dot com


--- Comment #9 from t dot artem at mailcity dot com  2009-07-07 18:45 
---
Qt 4.5.2 /lib directory (without *.debug files) occupies

GCC 4.2.4: 43,649,379 bytes in 107 files
GCC 4.4.0: 46,544,895 bytes in 107 files

I don't like it at all. Compilation flags are still the same: -march=pentium2
-O2 -pipe -ftree-vectorize

I hope GCC 4.5.0 will become sane again.


-- 


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



[Bug fortran/40675] New: sign intrinsic fails for value of 0.0

2009-07-07 Thread gdsjaar at sandia dot gov
sahp7641 /var/scratch2/gcc4/bin/gfortran -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.4.0/configure --prefix=/var/scratch2/gcc4/
--enable-languages=c++,c,fortran --with-mpfr=/var/scratch2
Thread model: posix
gcc version 4.4.0 (GCC)

The sign intrinsic gives an incorrect value when the second argument is 0.0:

  program main
  val = 0.0
  test = sign(0.5, val) - sign(0.5, -val)

  test2 = mysign(0.5, val)
  if (test .ne. test2) then
write (*,*) 'fail'
  else
write (*,*) 'pass'
  end if
  stop
  end

  real function mysign(a, b)
C ...Returns `ABS(A)*s', where s is +1 if `B.GE.0', -1 otherwise. 
  if (b .ge. 0) then
s = 1.0
  else
s = -1.0
  end if
  mysign = abs(a) * s
  return
  end

The function 'mysign' implements the definition of the sign function listed at
http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Sign-Intrinsic.html.

When run with gfortran (versions 4.1.2 and 4.4.0 at least), the executable
prints 'fail'.  When built with g77 or intel fortran, it prints 'pass' as
expected.

The reason I classified this as a major bug is that old fortran vector codes
use the following idiom to detect a zero value:

test = sign(0.5, val) + sign(0.5, -val)
ratio = value2 / (val + test)

If val is zero, then test would be 1.0 and ratio ends up with a defined value. 
Later on outside the vector loop, error checking is done to catch the potential
bad values.


-- 
   Summary: sign intrinsic fails for value of 0.0
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gdsjaar at sandia dot gov
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug target/40673] Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread ubizjak at gmail dot com


--- Comment #5 from ubizjak at gmail dot com  2009-07-07 18:57 ---
Unfortunately, it is nearly impossible to debug your problem without the
testcase, since the problem can not be analyzed.

Can you at least run the breaking case through a gdb? It will show invalid
instruction at the point of breakage.


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-07-07 19:02 ---
Zeros have sign for FP value.  Though I don't know if that is true for Fortran
standard ...


-- 


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



[Bug target/40668] 64-bit sparc miscompiles memcpy of argument inside switch

2009-07-07 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2009-07-07 19:05 ---
Created an attachment (id=18151)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18151action=view)
gcc44-pr40668.patch

Untested patch that fixes this testcase.  I believe my commit was correct, but
apparently it can be modified later on without adjusting MEM_OFFSET.
I don't have a working SPARC box around ATM, so I can't bootstrap/regtest it
there.


-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread mikulas at artax dot karlin dot mff dot cuni dot cz


--- Comment #12 from mikulas at artax dot karlin dot mff dot cuni dot cz  
2009-07-07 19:40 ---
So if there was char *buffer = malloc(512) instead of char buffer[512], would
it be correct to cast it to the pointer to structure?

 And it is not about the cast between the pointer types which causes it to be
 undefined but rather the accesses.

What is considered the access in that code? Is it the - operator? 
operator? = operator? Cast operator? Or anything else?


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread kargl at gcc dot gnu dot org


--- Comment #2 from kargl at gcc dot gnu dot org  2009-07-07 19:43 ---
(In reply to comment #0)
 sahp7641 /var/scratch2/gcc4/bin/gfortran -v
 Using built-in specs.
 Target: x86_64-unknown-linux-gnu
 Configured with: ../gcc-4.4.0/configure --prefix=/var/scratch2/gcc4/
 --enable-languages=c++,c,fortran --with-mpfr=/var/scratch2
 Thread model: posix
 gcc version 4.4.0 (GCC)
 
 The sign intrinsic gives an incorrect value when the second argument is 0.0:
 
   program main
   val = 0.0
   test = sign(0.5, val) - sign(0.5, -val)
 
   test2 = mysign(0.5, val)
   if (test .ne. test2) then
 write (*,*) 'fail'
   else
 write (*,*) 'pass'
   end if
   stop
   end
 
   real function mysign(a, b)
 C ...Returns `ABS(A)*s', where s is +1 if `B.GE.0', -1 otherwise. 
   if (b .ge. 0) then
 s = 1.0
   else
 s = -1.0
   end if
   mysign = abs(a) * s
   return
   end
 
 The function 'mysign' implements the definition of the sign function listed at
 http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Sign-Intrinsic.html.
 
 When run with gfortran (versions 4.1.2 and 4.4.0 at least), the executable
 prints 'fail'.  When built with g77 or intel fortran, it prints 'pass' as
 expected.
 
 The reason I classified this as a major bug is that old fortran vector codes
 use the following idiom to detect a zero value:
 
 test = sign(0.5, val) + sign(0.5, -val)
 ratio = value2 / (val + test)
 
 If val is zero, then test would be 1.0 and ratio ends up with a defined 
 value. 
 Later on outside the vector loop, error checking is done to catch the 
 potential
 bad values.

If you fix your code you will get the expected result, which is 'fail'.
You get 'fail' with your broken code by accident.

Also note that the g77 documentation is irrelevant.  The Fortran 95
standard defines the behavior of SIGN().  In particular, see case (iv).

  13.14.98SIGN (A, B)

  Description.  Absolute value of A times the sign of B.

  Class.  Elemental function.

  Arguments.
 A  shall be of type integer or real.
 B  shall be of the same type and kind type parameter as A.

  Result Characteristics. Same as A.

  Result Value.
  Case   (i):  If B  0, the value of the result is |A|.
  Case  (ii):  If B  0, the value of the result is -|A|.
  Case (iii):  If B is of type integer and B=0, the value of
   the result is |A|.
  Case  (iv):  If B is of type real and is zero, then
  (a) If the processor cannot distinguish between positive and
  negative real zero, the value of the result is |A|.

  (b) If B is positive real zero, the value of the result
  is |A|.

  (c) If B is negative real zero, the value of the result
  is -|A|.

Try adding a few PRINT statements to you code.  It may help you
understand the results.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|major   |normal


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



[Bug target/40673] Lapack-3.2.1 testsuite fails with illegal instruction

2009-07-07 Thread ronis at ronispc dot chem dot mcgill dot ca


--- Comment #6 from ronis at ronispc dot chem dot mcgill dot ca  2009-07-07 
19:45 ---
Turns out that the problem isn't in lapack/gfortran at all; rather the tests
link to blas (here atlas) and one of my blas libs was corrupted.   I
rebuilt/reinstalled atlas and the problem goes away, even with the more
aggressive optimization flags.

Thanks for your help.


-- 

ronis at ronispc dot chem dot mcgill dot ca changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread gdsjaar at sandia dot gov


--- Comment #3 from gdsjaar at sandia dot gov  2009-07-07 19:51 ---
Subject: Re:  sign intrinsic fails for value of 0.0

kargl at gcc dot gnu dot org wrote:
 --- Comment #2 from kargl at gcc dot gnu dot org  2009-07-07 19:43 ---
 (In reply to comment #0)
   
 sahp7641 /var/scratch2/gcc4/bin/gfortran -v
 Using built-in specs.
 Target: x86_64-unknown-linux-gnu
 Configured with: ../gcc-4.4.0/configure --prefix=/var/scratch2/gcc4/
 --enable-languages=c++,c,fortran --with-mpfr=/var/scratch2
 Thread model: posix
 gcc version 4.4.0 (GCC)

 The sign intrinsic gives an incorrect value when the second argument is 0.0:

   program main
   val = 0.0
   test = sign(0.5, val) - sign(0.5, -val)

   test2 = mysign(0.5, val)
   if (test .ne. test2) then
 write (*,*) 'fail'
   else
 write (*,*) 'pass'
   end if
   stop
   end

   real function mysign(a, b)
 C ...Returns `ABS(A)*s', where s is +1 if `B.GE.0', -1 otherwise. 
   if (b .ge. 0) then
 s = 1.0
   else
 s = -1.0
   end if
   mysign = abs(a) * s
   return
   end

 The function 'mysign' implements the definition of the sign function listed 
 at
 http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Sign-Intrinsic.html.

 When run with gfortran (versions 4.1.2 and 4.4.0 at least), the executable
 prints 'fail'.  When built with g77 or intel fortran, it prints 'pass' as
 expected.

 The reason I classified this as a major bug is that old fortran vector codes
 use the following idiom to detect a zero value:

 test = sign(0.5, val) + sign(0.5, -val)
 ratio = value2 / (val + test)

 If val is zero, then test would be 1.0 and ratio ends up with a defined 
 value. 
 Later on outside the vector loop, error checking is done to catch the 
 potential
 bad values.
 

 If you fix your code you will get the expected result, which is 'fail'.
 You get 'fail' with your broken code by accident.

 Also note that the g77 documentation is irrelevant.  The Fortran 95
 standard defines the behavior of SIGN().  In particular, see case (iv).

   13.14.98SIGN (A, B)

   Description.  Absolute value of A times the sign of B.

   Class.  Elemental function.

   Arguments.
  A  shall be of type integer or real.
  B  shall be of the same type and kind type parameter as A.

   Result Characteristics. Same as A.

   Result Value.
   Case   (i):  If B  0, the value of the result is |A|.
   Case  (ii):  If B  0, the value of the result is -|A|.
   Case (iii):  If B is of type integer and B=0, the value of
the result is |A|.
   Case  (iv):  If B is of type real and is zero, then
   (a) If the processor cannot distinguish between positive and
   negative real zero, the value of the result is |A|.

   (b) If B is positive real zero, the value of the result
   is |A|.

   (c) If B is negative real zero, the value of the result
   is -|A|.

 Try adding a few PRINT statements to you code.  It may help you
 understand the results.
   
OK, so I should instead be submitting a bug report for intel and g77 and 
pgi.  gfortran is the only correct implementation?

   


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread dominiq at lps dot ens dot fr


--- Comment #4 from dominiq at lps dot ens dot fr  2009-07-07 19:53 ---
Steven beats me with the f95 standard: sign(0.5,-0.0) shall give -0.5.

Note that the code in comment #0 gives 'pass' with ifort but fails with g77.
I think the code is invalid since mysign is implicitely typed as integer.
In addition I don't understand how it works with ifort:
if sign(0.5,0.0) and sign(0.5,-0.0) are expected to give 0.5, then test=0.0 and
test2=0.5.

May be one could consider to ignore signed zero in SIGN with -std=legacy(?).


-- 


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



[Bug other/40010] Parallel make issue when building man pages

2009-07-07 Thread rwild at gcc dot gnu dot org


--- Comment #2 from rwild at gcc dot gnu dot org  2009-07-07 19:57 ---
Subject: Bug 40010

Author: rwild
Date: Tue Jul  7 19:57:15 2009
New Revision: 149345

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149345
Log:
gcc/
2009-06-23  Mark Loeser  m...@halcy0n.com

PR build/40010
* Makefile.in (gcc.pod): Depend on gcc-vers.texi.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/Makefile.in


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread dominiq at lps dot ens dot fr


--- Comment #5 from dominiq at lps dot ens dot fr  2009-07-07 19:59 ---
 OK, so I should instead be submitting a bug report for intel and g77 and 
 pgi.  gfortran is the only correct implementation?

The key point is: If the processor cannot distinguish between positive and
negative real zero.
gfortran can do the distinction, but I would be very surprised that g77 can do
the distinction, so its behavior seems standard conforming.


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread kargl at gcc dot gnu dot org


--- Comment #6 from kargl at gcc dot gnu dot org  2009-07-07 20:05 ---
(In reply to comment #3)

 OK, so I should instead be submitting a bug report for intel and g77 and 
 pgi.  gfortran is the only correct implementation?

g77 is no longer supported.  You can do want you want with bug
reports to intel and pgi.  But you should fix your code.  Here's
the output with a few PRINTs added to your original code.

REMOVE:kargl[214] ./z
  0.5000 -0.5000
   1.000  1.05696461E+09
 fail

Here's the output after I fixed your code.
REMOVE:kargl[216] ./z
  0.5000 -0.5000
   1.000  0.5000
 fail

Here's the fixed code.

  program main
  real, external :: mysign
  val = 0.0
  test = sign(0.5, val) - sign(0.5, -val)
  test2 = mysign(0.5, val)

  print *, sign(0.5, val), sign(0.5, -val)
  print *, test, test2

  if (test .ne. test2) then
write (*,*) 'fail'
  else
write (*,*) 'pass'
  end if
  stop
  end

  real function mysign(a, b)
C ...Returns `ABS(A)*s', where s is +1 if `B.GE.0', -1 otherwise. 
  if (b .ge. 0) then
s = 1.0
  else
s = -1.0
  end if
  mysign = abs(a) * s
  return
  end


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread kargl at gcc dot gnu dot org


--- Comment #7 from kargl at gcc dot gnu dot org  2009-07-07 20:09 ---
(In reply to comment #5)
  OK, so I should instead be submitting a bug report for intel and g77 and 
  pgi.  gfortran is the only correct implementation?
 
 The key point is: If the processor cannot distinguish between positive and
 negative real zero.
 gfortran can do the distinction, but I would be very surprised that g77 can do
 the distinction, so its behavior seems standard conforming.


For the Fortran 77 standard:

  4.1.3 Data Type Properties

  The mathematical and representation properties for each of the data
  types are specified in the following sections.  For real, double
  precision, and integer data, the value zero is considered neither
  positive nor negative.  The value of a signed zero is the same as
  the value of an unsigned zero.


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread gdsjaar at sandia dot gov


--- Comment #8 from gdsjaar at sandia dot gov  2009-07-07 20:13 ---
Subject: Re:  sign intrinsic fails for value of 0.0

OK, sorry for the buggy example code.  It illustrates the folly of 
improving the code after doing the runs. A better fixed code 
illustrating my point is:

  program main
  val = 0.0
  test = sign(0.5, val) - sign(0.5, -val)

  test2 = ysign(0.5, val) - ysign(0.5, -val)
  if (test .ne. test2) then
write (*,*) 'fail'
  else
write (*,*) 'pass'
  end if
  stop
  end

  real function ysign(a, b)
C ...Returns `ABS(A)*s', where s is +1 if `B.GE.0', -1 otherwise.
  if (b .ge. 0) then
s = 1.0
  else
s = -1.0
  end if
  ysign = abs(a) * s
  return
  end



kargl at gcc dot gnu dot org wrote:
 --- Comment #6 from kargl at gcc dot gnu dot org  2009-07-07 20:05 ---
 (In reply to comment #3)

   
 OK, so I should instead be submitting a bug report for intel and g77 and 
 pgi.  gfortran is the only correct implementation?
 

 g77 is no longer supported.  You can do want you want with bug
 reports to intel and pgi.  But you should fix your code.  Here's
 the output with a few PRINTs added to your original code.

 REMOVE:kargl[214] ./z
   0.5000 -0.5000
1.000  1.05696461E+09
  fail

 Here's the output after I fixed your code.
 REMOVE:kargl[216] ./z
   0.5000 -0.5000
1.000  0.5000
  fail

 Here's the fixed code.

   program main
   real, external :: mysign
   val = 0.0
   test = sign(0.5, val) - sign(0.5, -val)
   test2 = mysign(0.5, val)

   print *, sign(0.5, val), sign(0.5, -val)
   print *, test, test2

   if (test .ne. test2) then
 write (*,*) 'fail'
   else
 write (*,*) 'pass'
   end if
   stop
   end

   real function mysign(a, b)
 C ...Returns `ABS(A)*s', where s is +1 if `B.GE.0', -1 otherwise. 
   if (b .ge. 0) then
 s = 1.0
   else
 s = -1.0
   end if
   mysign = abs(a) * s
   return
   end


   


-- 


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



[Bug c/40676] New: internal compiler error: verify_ssa error: definition in block 5 does not dominate use in block 7

2009-07-07 Thread marcus at jet dot franken dot de
extracted from Wine

/home/marcus/projects/gcc.trunk/BIN/bin/gcc -c  -O2   dialog.i 
dialog.i: In function 'xmsi_dialog_create':
dialog.i:33:1: error: definition in block 5 does not dominate use in block 7
for SSA_NAME: .MEM_21 in statement:
# VUSE .MEM_21
D.2749_15 = *szDialogName_13;
dialog.i:33:1: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 
   Summary: internal compiler error: verify_ssa error: definition in
block 5 does not dominate use in block 7
   Product: gcc
   Version: 4.5.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: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug c/40676] internal compiler error: verify_ssa error: definition in block 5 does not dominate use in block 7

2009-07-07 Thread marcus at jet dot franken dot de


--- Comment #1 from marcus at jet dot franken dot de  2009-07-07 20:14 
---
Created an attachment (id=18152)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18152action=view)
dialog.i

gcc -c -O2 dialog.i


-- 


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



[Bug c/40677] New: flag -mmultiple is ignored

2009-07-07 Thread edmar at freescale dot com
The compiler fails to generate lmw/stmw when compiling the attached test case.
(no_global_regs_above) never returns true.

Obvious fix with attached patch.
Note: I have no write privilege.

Compiled with:
gcc -Os -mcpu=601 -S test.c


-- 
   Summary: flag -mmultiple is ignored
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: edmar at freescale dot com
  GCC host triplet: powerpc-unknown-linux-gnu-gcc
GCC target triplet: powerpc-unknown-linux-gnu-gcc


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



[Bug c/40677] flag -mmultiple is ignored

2009-07-07 Thread edmar at freescale dot com


--- Comment #1 from edmar at freescale dot com  2009-07-07 20:21 ---
Created an attachment (id=18153)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18153action=view)
test case


-- 


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



[Bug tree-optimization/40676] [4.5 Regression] internal compiler error: verify_ssa error: definition in block 5 does not dominate use in block 7

2009-07-07 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
  Component|c   |tree-optimization
   Keywords||ice-on-valid-code
Summary|internal compiler error:|[4.5 Regression] internal
   |verify_ssa error: definition|compiler error: verify_ssa
   |in block 5 does not dominate|error: definition in block 5
   |use in block 7  |does not dominate use in
   ||block 7
   Target Milestone|--- |4.5.0


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



[Bug c/40677] flag -mmultiple is ignored

2009-07-07 Thread edmar at freescale dot com


--- Comment #2 from edmar at freescale dot com  2009-07-07 20:22 ---
Created an attachment (id=18154)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18154action=view)
patch to fix bug


-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-07 Thread pinskia at gcc dot gnu dot org


--- Comment #13 from pinskia at gcc dot gnu dot org  2009-07-07 20:24 
---
(In reply to comment #12)
 So if there was char *buffer = malloc(512) instead of char buffer[512], would
 it be correct to cast it to the pointer to structure?

Yes.

  And it is not about the cast between the pointer types which causes it to be
  undefined but rather the accesses.
 
 What is considered the access in that code? Is it the - operator? 
 operator? = operator? Cast operator? Or anything else?

The following three operators are causes an access to happen even if  is used
afterwards:
-, ., and *

Thanks,
Andrew PInski


-- 


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



[Bug debug/40666] [4.4.1 regression] Ada tools build failure

2009-07-07 Thread ebotcazou at gcc dot gnu dot org


--- Comment #4 from ebotcazou at gcc dot gnu dot org  2009-07-07 20:46 
---
Subject: Bug 40666

Author: ebotcazou
Date: Tue Jul  7 20:46:06 2009
New Revision: 149346

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149346
Log:
PR debug/40666
* dbxout.c (dbxout_symbol) PARM_DECL: Deal with parameters pointing
to variables for debugging purposes.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dbxout.c


-- 


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



[Bug debug/40666] [4.4.1 regression] Ada tools build failure

2009-07-07 Thread ebotcazou at gcc dot gnu dot org


--- Comment #5 from ebotcazou at gcc dot gnu dot org  2009-07-07 20:46 
---
Subject: Bug 40666

Author: ebotcazou
Date: Tue Jul  7 20:46:41 2009
New Revision: 149347

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149347
Log:
PR debug/40666
* dbxout.c (dbxout_symbol) PARM_DECL: Deal with parameters pointing
to variables for debugging purposes.

Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/dbxout.c


-- 


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



[Bug fortran/40675] sign intrinsic fails for value of 0.0

2009-07-07 Thread twscofi at sandia dot gov


--- Comment #9 from twscofi at sandia dot gov  2009-07-07 20:54 ---
(In reply to comment #6)
 
 g77 is no longer supported.  

Per
http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gfortran/GNU-Fortran-and-G77.html#GNU-Fortran-and-G77

[Gfrortran] is an entirely new program that has been designed to ..., as well
as providing backwards compatibility for Fortran 77 

An example of legacy fortran 77 support would be fno-sign-zero does not print
the negative sign of zero values for compatibility with F77


A slightly different test:

  program main
  val = 0.0
  test = sign(0.5, val) - sign(0.5, -val)
  write (*,*) 'With val = ', val, ' test = ', test
  if (test .eq. 1) then 
 write(*,*) 'fail'
  elseif (test .eq. 0) then
 write(*,*) 'pass'
  endif

  stop
  end

gfortran -std=legacy fsign.f
./a.out
 With val =0.000  test =   1.
 fail

I'm not sure that -std=legacy would be the best way to implement this, but it
would work for me.


-- 

twscofi at sandia dot gov changed:

   What|Removed |Added

 CC||twscofi at sandia dot gov


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



[Bug debug/40666] [4.4.1 regression] Ada tools build failure

2009-07-07 Thread ebotcazou at gcc dot gnu dot org


--- Comment #6 from ebotcazou at gcc dot gnu dot org  2009-07-07 20:57 
---
Reopen if not.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35828] [C++0x] ICE on default template template parameter in template function

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #8 from jason at gcc dot gnu dot org  2009-07-07 22:04 ---
Subject: Bug 35828

Author: jason
Date: Tue Jul  7 22:03:42 2009
New Revision: 149351

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149351
Log:
PR c++/35828
* pt.c (tsubst_decl): Don't abort if we didn't change anything
in a TEMPLATE_DECL's args.

Added:
trunk/gcc/testsuite/g++.dg/template/defarg12.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/40639] Cannot parse dependent type for enum-base in C++0x

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2009-07-07 22:08 ---
Subject: Bug 40639

Author: jason
Date: Tue Jul  7 22:08:01 2009
New Revision: 149352

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149352
Log:
PR c++/37816
* decl.c (build_enumerator): Don't add enumerators for a
scoped enum to the enclosing class.

PR c++/40639
* decl.c (start_enum): Allow dependent underlying type.

PR c++/40633
* decl.c (finish_enum): Finish scope even in a template.


Added:
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum4.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum4.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum5.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum5.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum6.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum6.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum7.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum7.C
Modified:
branches/gcc-4_4-branch/gcc/   (props changed)
branches/gcc-4_4-branch/gcc/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/decl.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C  
(props changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c   (props
changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/  
(props changed)

Propchange: branches/gcc-4_4-branch/gcc/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c
('svn:mergeinfo' modified)

Propchange:
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/
('svn:mergeinfo' modified)


-- 


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



[Bug c++/40633] [c++0x] ICE with scoped enum inside a template

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #2 from jason at gcc dot gnu dot org  2009-07-07 22:08 ---
Subject: Bug 40633

Author: jason
Date: Tue Jul  7 22:08:01 2009
New Revision: 149352

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149352
Log:
PR c++/37816
* decl.c (build_enumerator): Don't add enumerators for a
scoped enum to the enclosing class.

PR c++/40639
* decl.c (start_enum): Allow dependent underlying type.

PR c++/40633
* decl.c (finish_enum): Finish scope even in a template.


Added:
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum4.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum4.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum5.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum5.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum6.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum6.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum7.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum7.C
Modified:
branches/gcc-4_4-branch/gcc/   (props changed)
branches/gcc-4_4-branch/gcc/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/decl.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C  
(props changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c   (props
changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/  
(props changed)

Propchange: branches/gcc-4_4-branch/gcc/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c
('svn:mergeinfo' modified)

Propchange:
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/
('svn:mergeinfo' modified)


-- 


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



[Bug c++/37816] [c++0x] Invalid handling of scoped enums defined at class scope

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2009-07-07 22:08 ---
Subject: Bug 37816

Author: jason
Date: Tue Jul  7 22:08:01 2009
New Revision: 149352

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149352
Log:
PR c++/37816
* decl.c (build_enumerator): Don't add enumerators for a
scoped enum to the enclosing class.

PR c++/40639
* decl.c (start_enum): Allow dependent underlying type.

PR c++/40633
* decl.c (finish_enum): Finish scope even in a template.


Added:
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum4.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum4.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum5.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum5.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum6.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum6.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/enum7.C
  - copied unchanged from r149341, trunk/gcc/testsuite/g++.dg/cpp0x/enum7.C
Modified:
branches/gcc-4_4-branch/gcc/   (props changed)
branches/gcc-4_4-branch/gcc/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/decl.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C  
(props changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c   (props
changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/  
(props changed)

Propchange: branches/gcc-4_4-branch/gcc/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c
('svn:mergeinfo' modified)

Propchange:
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/
('svn:mergeinfo' modified)


-- 


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



[Bug c++/35828] [C++0x] ICE on default template template parameter in template function

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #9 from jason at gcc dot gnu dot org  2009-07-07 22:11 ---
Subject: Bug 35828

Author: jason
Date: Tue Jul  7 22:11:31 2009
New Revision: 149353

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149353
Log:
PR c++/35828
* pt.c (tsubst_decl): Don't abort if we didn't change anything
in a TEMPLATE_DECL's args.


Added:
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/defarg12.C
  - copied unchanged from r149351,
trunk/gcc/testsuite/g++.dg/template/defarg12.C
Modified:
branches/gcc-4_4-branch/gcc/   (props changed)
branches/gcc-4_4-branch/gcc/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007   (props changed)
branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/cp/pt.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/   (props changed)
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C  
(props changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c   (props
changed)
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/  
(props changed)

Propchange: branches/gcc-4_4-branch/gcc/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c
('svn:mergeinfo' modified)

Propchange:
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/
('svn:mergeinfo' modified)


-- 


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



[Bug c++/40633] [c++0x] ICE with scoped enum inside a template

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2009-07-07 22:12 ---
Fixed for 4.4.1.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c++/37816] [c++0x] Invalid handling of scoped enums defined at class scope

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #4 from jason at gcc dot gnu dot org  2009-07-07 22:13 ---
Fixed for 4.4.1.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org
 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.4.1


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



[Bug c++/37946] [c++0x] ICE with enum class

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #4 from jason at gcc dot gnu dot org  2009-07-07 22:13 ---
Done.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/40639] Cannot parse dependent type for enum-base in C++0x

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #4 from jason at gcc dot gnu dot org  2009-07-07 22:14 ---
Fixed for 4.4.1.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/35828] [C++0x] ICE on default template template parameter in template function

2009-07-07 Thread jason at gcc dot gnu dot org


--- Comment #10 from jason at gcc dot gnu dot org  2009-07-07 22:16 ---
Fixed for 4.4.1.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/31246] -Wunreachable-code warnings for compiler-generated code

2009-07-07 Thread manu at gcc dot gnu dot org


--- Comment #29 from manu at gcc dot gnu dot org  2009-07-07 22:18 ---
Subject: Bug 31246

Author: manu
Date: Tue Jul  7 22:18:35 2009
New Revision: 149354

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149354
Log:
2009-07-08  Manuel López-Ibáñez  m...@gcc.gnu.org

PR c++/31246
* gimplify.c (gimplify_expr): Propagate no_warning flag when
gimplifying.
* gimple (gimple_build_call_from_tree): Likewise.
* tree-cfg.c (remove_useless_stmts_warn_notreached): Check
no_warning flag before warning.
cp/
* init.c (build_new_1): Set TREE_NO_WARNING for compiler-generated
code.
* cp-gimplify.c (genericize_eh_spec_block): Likewise.

testsuite/  
* g++.dg/warn/pr31246.C: New.
* g++.dg/warn/pr31246-2.C: New.

Added:
trunk/gcc/testsuite/g++.dg/warn/pr31246-2.C
trunk/gcc/testsuite/g++.dg/warn/pr31246.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/cp/init.c
trunk/gcc/gimple.c
trunk/gcc/gimplify.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-cfg.c


-- 


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



[Bug c++/31246] -Wunreachable-code warnings for compiler-generated code

2009-07-07 Thread manu at gcc dot gnu dot org


--- Comment #30 from manu at gcc dot gnu dot org  2009-07-07 22:20 ---
FIXED in GCC 4.5.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug c++/36833] unexpected warning: guard 13936 owner may be used uninitialized in this function

2009-07-07 Thread manu at gcc dot gnu dot org


--- Comment #8 from manu at gcc dot gnu dot org  2009-07-07 22:42 ---
I cannot reproduce this in GCC 4.4.0 or GCC 4.5 revision 149265. This was
probably FIXED at some moment but the testcase is too large for the testsuite.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug fortran/40678] New: ICE on invalid code, gfc_conv_variable

2009-07-07 Thread thomas dot orgis at awi dot de
Gfortran does not like me forgetting () on function calls.
Simple test code:

module ice

implicit none


contains

subroutine in_the
logical :: there_is

there_is = sunshine ! () are missing!
end subroutine

function sunshine()
logical :: sunshine

sunshine = .true.
end function

end module


$ LANG=C gfortran -c -o gccice.o gccice.f90 
gccice.f90: In function 'in_the':
gccice.f90:17: internal compiler error: in gfc_conv_variable, at
fortran/trans-expr.c:483
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 
   Summary: ICE on invalid code, gfc_conv_variable
   Product: gcc
   Version: 4.3.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: thomas dot orgis at awi dot de
  GCC host triplet: x86_64-unknown-linux-gnu


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



[Bug target/40668] 64-bit sparc miscompiles memcpy of argument inside switch

2009-07-07 Thread mikpe at it dot uu dot se


--- Comment #6 from mikpe at it dot uu dot se  2009-07-07 23:10 ---
(In reply to comment #5)
 Created an attachment (id=18151)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18151action=view) [edit]
 gcc44-pr40668.patch
 
 Untested patch that fixes this testcase.

Thanks. This fixes the issue in a cross-compiler to sparc64-linux. I'm
currently bootstrapping 4.4-20090630 plus this patch on an Ultra5, I'll follow
up once that's complete (it will take quite a while).


-- 


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



[Bug target/40670] Load floating point constant 0 directly

2009-07-07 Thread rth at gcc dot gnu dot org


--- Comment #2 from rth at gcc dot gnu dot org  2009-07-07 23:38 ---
I'll go farther than that and say that all single-precision fp numbers
destined for integer registers should be passed through the normal 
constant splitting routines.

For instance, all positive powers of two satisfy the (0xff  lowbit) test.


-- 

rth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-07-07 23:38:48
   date||


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



[Bug fortran/40591] Procedure(interface): Rejected if interface is indirectly hostassociated

2009-07-07 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2009-07-08 04:38 ---
Subject: Bug 40591

Author: pault
Date: Wed Jul  8 04:38:06 2009
New Revision: 149362

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149362
Log:
2008-07-08  Paul Thomas  pa...@gcc.gnu.org

PR fortran/40591
* decl.c (match_procedure_interface):  Correct the association
or creation of the interface procedure's symbol.

2008-07-08  Paul Thomas  pa...@gcc.gnu.org

PR fortran/40591
* gfortran.dg/proc_ptr_21.f90: New test.


Added:
trunk/gcc/testsuite/gfortran.dg/proc_ptr_21.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug lto/39049] ICE with an empty function

2009-07-07 Thread bje at gcc dot gnu dot org


--- Comment #1 from bje at gcc dot gnu dot org  2009-07-08 04:42 ---
Working in r149354.


-- 

bje at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
Summary|ICE with an empty function  |ICE with an empty function


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



[Bug bootstrap/39022] lto-plugin is built unconditionally

2009-07-07 Thread bje at gcc dot gnu dot org


--- Comment #1 from bje at gcc dot gnu dot org  2009-07-08 04:53 ---
Confirmed in r149354.


-- 


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



[Bug lto/39016] [LTO] ICE in output_expr_operand because of BLOCK Expressions.

2009-07-07 Thread bje at gcc dot gnu dot org


--- Comment #1 from bje at gcc dot gnu dot org  2009-07-08 05:28 ---
Working in r149354.


-- 

bje at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



  1   2   >