[Bug target/46072] AIX linker chokes on debug info for uninitialized static variables

2011-01-25 Thread michael.haubenwallner at salomon dot at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46072

Michael Haubenwallner michael.haubenwallner at salomon dot at changed:

   What|Removed |Added

 CC||michael.haubenwallner at
   ||salomon dot at

--- Comment #3 from Michael Haubenwallner michael.haubenwallner at salomon dot 
at 2011-01-25 08:29:49 UTC ---
Same here with gcc-4.2.4 on AIX5.3 after upgrading from TL10 to TL12.

(need to figure out the exact details of the problem myself yet)

Which information is necessary here to help this getting fixed?


[Bug fortran/47448] Invalid check for ASSIGNMENT(=)

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47448

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||rejects-valid
Summary|Accepts invalid |Invalid check for
   |ASSIGNMENT(=) which |ASSIGNMENT(=)
   |overrides intrinsic |
   |assignment  |

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
08:30:41 UTC ---
Draft patch. The typo seems to go back to the commit for PR 37425, committed
2009-08-10.

However, it seems only to be an accepts-invalid regression. Before the valid
and the invalid form were rejected, currently only the valid form is rejected -
the invalid is accepted.

--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -654,11 +654,12 @@ gfc_check_operator_interface (gfc_symbol *sym,
gfc_intrinsic_op op,

   /* Allowed are (per F2003, 12.3.2.1.2 Defined assignments):
 - First argument an array with different rank than second,
-- Types and kinds do not conform, and
+- First argument is a scalar and second an array,
+- Types and kinds do not conform, or
 - First argument is of derived type.  */
   if (sym-formal-sym-ts.type != BT_DERIVED
   sym-formal-sym-ts.type != BT_CLASS
-  (r1 == 0 || r1 == r2)
+  (r2 == 0 || r1 == r2)
   (sym-formal-sym-ts.type == sym-formal-next-sym-ts.type
  || (gfc_numeric_ts (sym-formal-sym-ts)
   gfc_numeric_ts (sym-formal-next-sym-ts


[Bug middle-end/45422] [4.6 Regression] compile time increases 3x.

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45422

--- Comment #32 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
09:02:57 UTC ---
IMHO for P1 purposes we should just look at compile time regressions from 4.5
here at this point.  On the #c1 testcase I get with --enable-checking=release
current trunk and current 4.5 branch on x86_64-linux:

4.6 x86_64 -m64 -O3 -fbounds-check -ftime-report
 df live regs  :   1.87 ( 3%) usr   0.02 ( 1%) sys   1.66 ( 3%) wall   
   0 kB ( 0%) ggc
 parser:   1.04 ( 2%) usr   0.20 ( 9%) sys   1.24 ( 2%) wall  
53425 kB ( 6%) ggc
 tree VRP  :   1.82 ( 3%) usr   0.09 ( 4%) sys   2.02 ( 3%) wall  
63870 kB ( 8%) ggc
 tree PTA  :   1.02 ( 2%) usr   0.01 ( 0%) sys   0.98 ( 2%) wall   
5498 kB ( 1%) ggc  
 tree SSA incremental  :   1.23 ( 2%) usr   0.12 ( 6%) sys   1.11 ( 2%) wall   
6733 kB ( 1%) ggc
 tree CCP  :   1.33 ( 2%) usr   0.03 ( 1%) sys   1.33 ( 2%) wall   
4989 kB ( 1%) ggc
 complete unrolling:   1.07 ( 2%) usr   0.16 ( 8%) sys   1.28 ( 2%) wall  
88755 kB (11%) ggc
 tree iv optimization  :  10.99 (19%) usr   0.09 ( 4%) sys  11.09 (19%) wall 
138994 kB (16%) ggc  
 CSE   :   1.28 ( 2%) usr   0.01 ( 0%) sys   1.28 ( 2%) wall   
 229 kB ( 0%) ggc
 combiner  :   2.00 ( 3%) usr   0.00 ( 0%) sys   1.95 ( 3%) wall  
31554 kB ( 4%) ggc  
 integrated RA :   3.68 ( 6%) usr   0.01 ( 0%) sys   3.78 ( 6%) wall  
19906 kB ( 2%) ggc
 reload:   2.04 ( 4%) usr   0.00 ( 0%) sys   2.18 ( 4%) wall   
7106 kB ( 1%) ggc
 reload CSE regs   :   2.04 ( 4%) usr   0.02 ( 1%) sys   2.01 ( 3%) wall  
12188 kB ( 1%) ggc
 scheduling 2  :   2.55 ( 4%) usr   0.01 ( 0%) sys   2.61 ( 4%) wall   
 895 kB ( 0%) ggc
 TOTAL :  57.47 2.1159.60
845009 kB

4.5 x86_64 -m64 -O3 -fbounds-check -ftime-report
 df live regs  :   1.58 ( 4%) usr   0.00 ( 0%) sys   1.39 ( 3%) wall   
   0 kB ( 0%) ggc 
 parser:   1.02 ( 2%) usr   0.18 ( 9%) sys   1.21 ( 3%) wall  
55472 kB ( 7%) ggc 
 tree VRP  :   1.39 ( 3%) usr   0.13 ( 6%) sys   1.73 ( 4%) wall  
56478 kB ( 8%) ggc
 tree PRE  :   1.03 ( 2%) usr   0.04 ( 2%) sys   1.24 ( 3%) wall   
7286 kB ( 1%) ggc
 complete unrolling:   1.32 ( 3%) usr   0.21 (10%) sys   1.55 ( 3%) wall  
91137 kB (12%) ggc
 tree iv optimization  :   5.45 (12%) usr   0.09 ( 4%) sys   5.43 (12%) wall  
95576 kB (13%) ggc
 expand:   2.62 ( 6%) usr   0.16 ( 8%) sys   2.76 ( 6%) wall  
58104 kB ( 8%) ggc
 CSE   :   1.18 ( 3%) usr   0.01 ( 0%) sys   0.94 ( 2%) wall   
 261 kB ( 0%) ggc
 combiner  :   1.53 ( 3%) usr   0.00 ( 0%) sys   1.48 ( 3%) wall  
19953 kB ( 3%) ggc
 integrated RA :   3.21 ( 7%) usr   0.00 ( 0%) sys   3.55 ( 8%) wall  
11410 kB ( 2%) ggc
 reload:   2.13 ( 5%) usr   0.04 ( 2%) sys   2.00 ( 4%) wall   
7273 kB ( 1%) ggc
 reload CSE regs   :   1.67 ( 4%) usr   0.01 ( 0%) sys   1.55 ( 3%) wall  
10032 kB ( 1%) ggc
 scheduling 2  :   2.65 ( 6%) usr   0.02 ( 1%) sys   2.66 ( 6%) wall   
1063 kB ( 0%) ggc
 TOTAL :  44.55 2.0546.62
747832 kB

4.6 x86_64 -m32 -O3 -fbounds-check -ftime-report
 df live regs  :   1.24 ( 2%) usr   0.02 ( 1%) sys   1.05 ( 2%) wall   
   0 kB ( 0%) ggc
 parser:   1.05 ( 2%) usr   0.18 ( 9%) sys   1.23 ( 2%) wall  
53861 kB ( 7%) ggc
 tree VRP  :   1.48 ( 3%) usr   0.05 ( 2%) sys   1.78 ( 3%) wall  
52970 kB ( 7%) ggc
 tree iv optimization  :   9.92 (19%) usr   0.15 ( 7%) sys   9.98 (18%) wall 
125735 kB (17%) ggc
 CSE   :   1.46 ( 3%) usr   0.00 ( 0%) sys   1.42 ( 3%) wall   
 329 kB ( 0%) ggc
 combiner  :   1.41 ( 3%) usr   0.01 ( 0%) sys   1.35 ( 2%) wall  
20981 kB ( 3%) ggc
 integrated RA :   2.89 ( 6%) usr   0.00 ( 0%) sys   2.83 ( 5%) wall  
14083 kB ( 2%) ggc
 reload:   2.59 ( 5%) usr   0.02 ( 1%) sys   2.58 ( 5%) wall  
18918 kB ( 3%) ggc
 reload CSE regs   :   2.62 ( 5%) usr   0.00 ( 0%) sys   2.91 ( 5%) wall  
13557 kB ( 2%) ggc
 scheduling 2  :   2.49 ( 5%) usr   0.01 ( 0%) sys   2.45 ( 5%) wall   
 953 kB ( 0%) ggc
 TOTAL :  52.36 2.0254.39
744417 kB

4.5 x86_64 -m32 -O3 -fbounds-check -ftime-report
 df live regs  :   1.41 ( 3%) usr   0.02 ( 1%) sys   1.43 ( 3%) wall   
   0 kB ( 0%) ggc
 parser:   1.02 ( 2%) usr   0.18 ( 9%) sys   1.19 ( 2%) wall  
55913 kB ( 8%) ggc
 tree VRP  :   1.44 ( 3%) usr   0.14 ( 7%) sys   1.39 ( 3%) wall  
54451 kB ( 8%) ggc
 tree iv optimization  :   7.76 (17%) usr   0.11 ( 5%) sys   8.02 (17%) wall 
107362 kB (15%) ggc
 expand:   2.66 ( 6%) usr   0.08 ( 4%) sys   2.73 ( 6%) wall  
56088 kB ( 8%) ggc
 CSE   :   1.41 ( 3%) usr   0.00 ( 

[Bug gcov-profile/38292] [4.3/4.4/4.5/4.6 Regression] corrupted profile info with -O[23] -fprofile-use

2011-01-25 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38292

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW
 CC||manu at gcc dot gnu.org

--- Comment #16 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-01-25 
09:20:23 UTC ---
(In reply to comment #15)
 hmm, can't set the status back to NEW, just to RESOLVED. ...
 

You have to use your gcc account (I think).


[Bug fortran/47439] Fun with scratch files on Windows MKTEMP only allows for 26 files

2011-01-25 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47439

--- Comment #1 from Janne Blomqvist jb at gcc dot gnu.org 2011-01-25 09:28:14 
UTC ---
Seems the reason for Windows _mktemp() behavior is due to replicating some
age-old BSD behavior. From the Linux mktemp(3) manpage:

BUGS
   Never use mktemp().  Some implementations follow 4.3BSD and replace
XX by the current process ID and a  single
   letter,  so  that  at most 26 different names can be returned.  Since on
the one hand the names are easy to guess,
   and on the other hand there is a race between testing whether the name
exists and opening the file, every  use  of
   mktemp() is a security risk.  The race is avoided by mkstemp(3).

(Needless to say, libgfortran use mkstemp() ifavailable, mktemp() is just a
fallback.)


[Bug rtl-optimization/47454] New: registers are not allocated according to its preferred order

2011-01-25 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47454

   Summary: registers are not allocated according to its preferred
order
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: car...@google.com
Target: arm-linux-androideabi


Created attachment 23115
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23115
testcase

The attached test case is extracted from zlib, when compiled by gcc4.6 with
options -march=armv7-a -mthumb -Os, I got the following code

push{r4, r5, r6, r7, r8, lr}
movr6, r0
movr4, r1
cmpr0, #0
beq.L2
ldrr5, [r0, #0]
cmpr5, #0
beq.L2
cmpr1, #0
bge.L3
negsr4, r1
movsr7, #0
b.L4
.L3:
asrsr7, r1, #4
addsr7, r7, #1
cmpr1, #47
itle
andler4, r1, #15
.L4:
addsr3, r4, #0
subr8, r4, #8
itne
movner3, #1
cmpr8, #7
itels
movlsr8, #0
andhir8, r3, #1
cmpr8, #0
bne.L2
ldrr1, [r5, #8]
cbzr1, .L5
ldrr3, [r5, #4]
cmpr3, r4
beq.L5
ldrr3, [r6, #4]
ldrr0, [r6, #8]
blxr3
strr8, [r5, #8]
.L5:
strr7, [r5, #0]
movr0, r6
strr4, [r5, #4]
pop{r4, r5, r6, r7, r8, lr}
binflateReset
.L2:
mvnr0, #1
pop{r4, r5, r6, r7, r8, pc}

Note that register r8 is used many times, but register r2 is never used. In
thumb2 r8 is high register, its usage will cause 32bit instructions. If we
replace r8 with r2, a lot of code size will be reduced in this case.

In arm.h REG_ALLOC_ORDER is defined as
3,  2,  1,  0, 12, 14,  4,  5, 6,  7,  8, 10,  9, 11, 13, 15 ...

We can see that r2 should be used before r8, but the result is not.


[Bug middle-end/45422] [4.6 Regression] compile time increases 3x.

2011-01-25 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45422

--- Comment #33 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-01-25 09:47:10 UTC ---
I just note that the timings reported by David and Jakub are not for the
compile options I originally reported.

With 4.6 (20110117) I now have 

gfortran -c -ftime-report -cpp -fbounds-check -g -O3 -ffast-math -funroll-loops
-ftree-vectorize -march=native -ffree-form PR45422.F90
TOTAL : 102.15 

while with the options used by David / Jakub I have timings similar to theirs.

gfortran -O3 -fbounds-check -ftime-report -c PR45422.F90
 TOTAL :  42.87

With 4.5 timings remain ~44s


[Bug tree-optimization/47411] [4.5 Regression] Bootstrap failure on x86-64/Darwin

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47411

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
09:48:12 UTC ---
Author: rguenth
Date: Tue Jan 25 09:48:07 2011
New Revision: 169222

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169222
Log:
2011-01-25  Richard Guenther  rguent...@suse.de

PR tree-optimization/47411
Backport from mainline
2010-06-30  Michael Matz  m...@suse.de

PR bootstrap/44699
* tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.

Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/tree-vrp.c


[Bug bootstrap/44699] [4.6 Regression] Bootstrap failure for x86_64-apple-darwin10: ICE while compiling genmodes.c

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44699

--- Comment #18 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
09:48:12 UTC ---
Author: rguenth
Date: Tue Jan 25 09:48:07 2011
New Revision: 169222

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169222
Log:
2011-01-25  Richard Guenther  rguent...@suse.de

PR tree-optimization/47411
Backport from mainline
2010-06-30  Michael Matz  m...@suse.de

PR bootstrap/44699
* tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.

Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/tree-vrp.c


[Bug tree-optimization/47411] [4.5 Regression] Bootstrap failure on x86-64/Darwin

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47411

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
09:49:29 UTC ---
Should be fixed.


[Bug tree-optimization/47265] [4.6 Regression] Error: SSA name in freelist but still referenced

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47265

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||zsojka at seznam dot cz

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
09:50:52 UTC ---
*** Bug 47443 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/47443] [4.6 Regression] ICE: SSA name in freelist but still referenced or SIGSEGV with -fstack-check=generic

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47443

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution||DUPLICATE

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
09:50:52 UTC ---
Apparently dup of PR47265, at least forward_propagate_addr_expr recurses there
too and after returning from the recursion suddenly one needed imm use
disappeared.

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


[Bug middle-end/45422] [4.6 Regression] compile time increases 3x.

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45422

--- Comment #34 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
09:52:23 UTC ---
-march=native is ambiguous, please see with -v what actually is being used.


[Bug rtl-optimization/47414] [4.6 Regression] wrong code with -O -freorder-blocks -fschedule-insns2 -fno-early-inlining -fstrict-aliasing -ftracer

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47414

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
09:55:58 UTC ---
Author: rguenth
Date: Tue Jan 25 09:55:54 2011
New Revision: 169223

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169223
Log:
2011-01-25  Richard Guenther  rguent...@suse.de

PR middle-end/47414
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
correct type for TBAA.

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



[Bug rtl-optimization/47414] [4.6 Regression] wrong code with -O -freorder-blocks -fschedule-insns2 -fno-early-inlining -fstrict-aliasing -ftracer

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47414

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
09:56:16 UTC ---
Fixed.


[Bug c++/37773] -Wfatal-errors aborts too early

2011-01-25 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37773

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #5 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-01-25 
09:57:03 UTC ---
(In reply to comment #3)
 Works as desigened.  Really ;)

So what is the point of -fmax-errors=N ? 

Shouldn't the documentation of Wfatal-errors say: This option is not for users
but for compiler developers only?

BTW, clang also supports -Wfatal-errors=option.


[Bug middle-end/45422] [4.6 Regression] compile time increases 3x.

2011-01-25 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45422

--- Comment #35 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-01-25 10:03:02 UTC ---
(In reply to comment #34)
 -march=native is ambiguous, please see with -v what actually is being used.

This was mentioned in the initial comment:
-march=k8-sse3 -mcx16 -msahf
--param l1-cache-size=64 --param l1-cache-line-size=64 --param
l2-cache-size=1024 -mtune=k8

The latest timings are on a newer machine (old one is gone now) which has:
-march=amdfam10 -mcx16 -msahf -mpopcnt -mabm --param l1-cache-size=64 --param
l1-cache-line-size=64 --param l2-cache-size=512 -mtune=amdfam10


[Bug c++/37773] -Wfatal-errors aborts too early

2011-01-25 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37773

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-25 
10:08:42 UTC ---
(In reply to comment #5)
 (In reply to comment #3)
  Works as desigened.  Really ;)
 
 So what is the point of -fmax-errors=N ? 

Eh? Surely -fmax-errors *is* the option intended to be useful to users who want
to limit the error output.

Just because -Wfatal-errors is designed for something different, doesn't mean
-fmax-errors has no point.


[Bug tree-optimization/47265] [4.6 Regression] Error: SSA name in freelist but still referenced

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47265

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
10:10:30 UTC ---
Alternative solution would be to remember the count of imm uses before doing
FOR_EACH_IMM_USE and if the loop does not iterate that many times, return
conservatively that not all uses have been seen.


[Bug lto/44334] rnflow.f90 ~27% slower with -fwhole-program -flto after revision 159852

2011-01-25 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44334

--- Comment #45 from rguenther at suse dot de rguenther at suse dot de 
2011-01-25 10:20:01 UTC ---
On Tue, 25 Jan 2011, howarth at nitro dot med.uc.edu wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44334
 
 --- Comment #44 from Jack Howarth howarth at nitro dot med.uc.edu 
 2011-01-25 03:13:39 UTC ---
 Testing...
 
 Index: gcc/params.def
 ===
 --- gcc/params.def(revision 169185)
 +++ gcc/params.def(working copy)
 @@ -182,7 +182,7 @@ DEFPARAM(PARAM_LARGE_FUNCTION_INSNS,
  DEFPARAM(PARAM_LARGE_FUNCTION_GROWTH,
   large-function-growth,
   Maximal growth due to inlining of large function (in percent),
 - 100, 0, 0)
 + 400, 0, 0)
  DEFPARAM(PARAM_LARGE_UNIT_INSNS,
   large-unit-insns,
   The size of translation unit to be considered large,
 
 shows only a major improvement for fatigue (30%). This same improvement can be
 achieved at -m32 and -m64 with just an increase of large-function-growth to
 200.

We certainly won't adjust params at this stage.  There are other cases
(that c-ray one) where more aggressive inlining helps, but we should
avoid regressing for -O2 and only tune -O3 params eventually.


[Bug tree-optimization/47411] [4.5 Regression] Bootstrap failure on x86-64/Darwin

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47411

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
10:24:59 UTC ---
Author: rguenth
Date: Tue Jan 25 10:24:56 2011
New Revision: 169224

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169224
Log:
2011-01-25  Richard Guenther  rguent...@suse.de

PR middle-end/47411
* gcc.dg/torture/pr47411.c: New testcase.

Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.dg/torture/pr47411.c
Modified:
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug tree-optimization/47411] [4.5 Regression] Bootstrap failure on x86-64/Darwin

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47411

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
10:26:23 UTC ---
Author: rguenth
Date: Tue Jan 25 10:26:20 2011
New Revision: 169225

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169225
Log:
2011-01-25  Richard Guenther  rguent...@suse.de

PR middle-end/47411
* gcc.dg/torture/pr47411.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr47411.c
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/47265] [4.6 Regression] Error: SSA name in freelist but still referenced

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47265

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
10:27:41 UTC ---
Actually, there is a far easier fix.  Either add
  if (all  !has_zero_uses (name))
all = false;
to the end of forward_propagate_addr_expr, or we could iterate some more,
either like this:
--- gcc/tree-ssa-forwprop.c.jj 2011-01-15 11:26:42.0 +0100
+++ gcc/tree-ssa-forwprop.c 2011-01-25 11:22:02.828495766 +0100
@@ -1061,6 +1061,8 @@ forward_propagate_addr_expr (tree name, 
   bool all = true;
   bool single_use_p = has_single_use (name);

+  do
+  {
   FOR_EACH_IMM_USE_STMT (use_stmt, iter, name)
 {
   bool result;
@@ -1113,6 +1115,7 @@ forward_propagate_addr_expr (tree name, 
  gsi_remove (gsi, true);
}
 }
+  } while (all  !has_zero_uses (name));

   return all;
 }

or say just once or say 4 times:
  int i;
  for (i = 0; i  4; i++)
{
  FOR_EACH_IMM_USE_STMT (use_stmt, iter, name)
{
  ...
}
  if (!all || has_zero_uses (name))
return all;
}
  return false;


[Bug tree-optimization/47265] [4.6 Regression] Error: SSA name in freelist but still referenced

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47265

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug tree-optimization/47265] [4.6 Regression] Error: SSA name in freelist but still referenced

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47265

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
10:47:29 UTC ---
(In reply to comment #5)
 Actually, there is a far easier fix.  Either add
   if (all  !has_zero_uses (name))
 all = false;
 to the end of forward_propagate_addr_expr, or we could iterate some more,
 either like this:
 --- gcc/tree-ssa-forwprop.c.jj 2011-01-15 11:26:42.0 +0100
 +++ gcc/tree-ssa-forwprop.c 2011-01-25 11:22:02.828495766 +0100
 @@ -1061,6 +1061,8 @@ forward_propagate_addr_expr (tree name, 
bool all = true;
bool single_use_p = has_single_use (name);
 
 +  do
 +  {
FOR_EACH_IMM_USE_STMT (use_stmt, iter, name)
  {
bool result;
 @@ -1113,6 +1115,7 @@ forward_propagate_addr_expr (tree name, 
   gsi_remove (gsi, true);
 }
  }
 +  } while (all  !has_zero_uses (name));
 
return all;
  }
 
 or say just once or say 4 times:
   int i;
   for (i = 0; i  4; i++)
 {
   FOR_EACH_IMM_USE_STMT (use_stmt, iter, name)
 {
   ...
 }
   if (!all || has_zero_uses (name))
 return all;
 }
   return false;

Or simply

  return all  has_zero_uses (name);

?


[Bug fortran/47455] New: internal compiler error: in fold_convert_loc, at fold-const.c: 2028

2011-01-25 Thread thenlich at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47455

   Summary: internal compiler error: in fold_convert_loc, at
fold-const.c: 2028
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: thenl...@users.sourceforge.net


The following example results in an internal compiler error.

Version: gcc version 4.6.0 20110122 (experimental) (GCC)
Platform: i686-pc-mingw32
Expected result: Produce proper source diagnostics/error message for the error.

module class_t
type :: tx
integer, dimension(:), allocatable :: i
end type tx
type :: t
type(tx), pointer :: x
contains
procedure :: calc
procedure :: find_x
end type t
contains
subroutine calc(this)
class(t), target :: this
this%x = this%find_x()
end subroutine calc
function find_x(this)
class(t), intent(in) :: this
type(tx), pointer :: find_x
find_x = null()
end function find_x
end module class_t

$ gfortran -c class_t.f90
class_t.f90: In function 'calc':
class_t.f90:14:0: internal compiler error: in fold_convert_loc, at
fold-const.c:2028
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug c/47438] function arguments memory alignment problem.

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47438

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
10:50:00 UTC ---
And you are using a parameter that was not initialized (passed).


[Bug c++/47444] False warning: array subscript is above array bounds

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47444

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
10:57:27 UTC ---
Well.  You might argue that the wording should be 'may be' in all cases
where the offending statement might not be executed (which is certainly
undecidable as you can't know whether the function is executed at all).
But it also isn't the way we handle other warnings (in particular the
uninitialized variable uses).

Thus I think we should not fix this bug (and it is a non-bug, as certainly
the code in question isn't obviously dead).

Interprocedual analysis could see that we call the function with a boolean
value (thus, either 0 or 1).

That said - we can't suit everyone with this kind of warnings.


[Bug tree-optimization/47447] [4.3/4.4 Regression] Unable to coalesce ssa_names x and y ICE in tree-ssa-coalesce.c when -O3 is used

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47447

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Known to work||4.2.4, 4.5.0, 4.5.1, 4.6.0
   Keywords||ice-on-valid-code
   Last reconfirmed||2011.01.25 11:00:44
 Ever Confirmed|0   |1
Summary|Unable to coalesce |[4.3/4.4 Regression]
   |ssa_names x and y ICE  |Unable to coalesce
   |in tree-ssa-coalesce.c when |ssa_names x and y ICE
   |-O3 is used |in tree-ssa-coalesce.c when
   ||-O3 is used
   Target Milestone|--- |4.3.6
  Known to fail||4.3.0, 4.3.5, 4.4.0, 4.4.4

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:00:44 UTC ---
Confirmed.


[Bug c/47409] volatile struct member bug

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47409

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:03:10 UTC ---
We should at least make sure to use memcpy for the array part in

struct {
  volatile int i;
  int a[10];
} a, b;
a = b;

do we really want to blow up code-size (and compile-time) for

struct {
  volatile int a[100];
} a, b;
a = b;

?  And what's the difference of the above to

volatile struct {
  int a[100];
} a, b;
a = b;

?

What do other compilers do for the above?  Is there a DR?


[Bug pch/47430] [4.6 Regression] Random PCH related bootstrap failures on powerpc64-linux

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47430

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:07:04 UTC ---
2) make sure other PCH is not read during compilation that is writing PCH

makes sense to me anyway


[Bug tree-optimization/47428] [4.6 Regression] ICE: tree check: expected ssa_name, have integer_cst in copy_phis_for_bb, at tree-inline.c:1986

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47428

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:09:08 UTC ---
(In reply to comment #4)
 Created attachment 23100 [details]
 gcc46-pr47427.patch
 
 Different untested fix.

Looks good.


[Bug tree-optimization/47426] [4.6 Regression] wrong code with -O2 -fipa-pta

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47426

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:10:34 UTC ---
Mine (it's not really a regression).


[Bug target/47424] [4.6 Regression] Glibc miscompiled

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47424

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Keywords||wrong-code
   Last reconfirmed||2011.01.25 11:11:25
 Ever Confirmed|0   |1
   Target Milestone|--- |4.6.0
  Build||x86_64-*-linux

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:11:25 UTC ---
Testcase?


[Bug lto/47423] Many testsuite failures caused by missing gxx_visibility_sj0

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47423

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||EH, lto
 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011.01.25 11:18:37
 CC||hubicka at gcc dot gnu.org,
   ||rguenth at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:18:37 UTC ---
Does

Index: cgraphbuild.c
===
--- cgraphbuild.c   (revision 169155)
+++ cgraphbuild.c   (working copy)
@@ -141,6 +141,11 @@ record_eh_tables (struct cgraph_node *no
 {
   eh_region i;

+  if (DECL_FUNCTION_PERSONALITY (node-decl))
+ipa_record_reference (node, NULL,
+ cgraph_node (DECL_FUNCTION_PERSONALITY (node-decl)),
+ NULL, IPA_REF_ADDR, NULL);
+
   i = fun-eh-region_tree;
   if (!i)
 return;

fix it?  If we'd LTO libsupc++ we have to makr the personality function
as address-taken.


[Bug java/47456] New: internal compiler error: Segmentation fault while using jna

2011-01-25 Thread steve.reinke at iws dot fraunhofer.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47456

   Summary: internal compiler error: Segmentation fault while
using jna
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: java
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: steve.rei...@iws.fraunhofer.de


i tried to use the java native compiler 1.1.1 application for compiling java
code to native code. i use gcj for compiling for windows.
in the application i use jna. in the line where i try to load the dmx4all.dll
the compiler breaks with the following error:

creating Main.exe for Windows
- processing 3D_Viewer_NEW.jar
de/fraunhofer/iws/dmxcontrol/DMXControl.java:29: internal compiler error:
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.

failed...

that's why I'm reporting this bug. can you help me or fix this bug so that i
can compile my project?

the version of the compiler is gcc-122233-win.zip. i got it from your
homepage.

regards

steve reinke


[Bug fortran/47455] [4.6 Regression][OOP] internal compiler error: in fold_convert_loc, at fold-const.c:2028

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47455

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 CC||burnus at gcc dot gnu.org,
   ||janus at gcc dot gnu.org
Summary|internal compiler error: in |[4.6 Regression][OOP]
   |fold_convert_loc, at|internal compiler error: in
   |fold-const.c: 2028  |fold_convert_loc, at
   ||fold-const.c:2028

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
11:19:44 UTC ---
(I have not checked the validity of the code, but ifort 11.1, gfortran 4.5 and
NAG 5.1 accept the code.)


[Bug java/47456] internal compiler error: Segmentation fault while using jna

2011-01-25 Thread steve.reinke at iws dot fraunhofer.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47456

steve.reinke at iws dot fraunhofer.de changed:

   What|Removed |Added

   Severity|normal  |blocker


[Bug c/47418] warning: array subscript is above array bounds at O2 with sin6_addr

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47418

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.25 11:24:58
 Ever Confirmed|0   |1

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:24:58 UTC ---
VRP sees

bb 2:
  D.2725_3 = u.sa_data[15];
  D.2726_4 = (int) D.2725_3;
  D.2728_6 = u.sa_data[14];
  D.2729_7 = (int) D.2728_6;
...
  D.2769_47 = u.sa_data[0];
  D.2770_48 = (int) D.2769_47;
  test_func (0, D.2770_48, D.2768_46, D.2765_43, D.2762_40, D.2759_37,
D.2756_34, D.2753_31, D.2750_28, D.2747_25, D.2744_22, D.2741_19, D.2738_16,
D.2735_13, D.2732_10, D.2729_7, D.2726_4);
  return 0;

because of our fancy way of re-building non-addressed components.

With 4.6 the warning is gone and we instead have (thanks to MEM-REF):

bb 2:
  D.2695_3 = MEM[(char *)u + 15B];
  D.2696_4 = (int) D.2695_3;
  D.2698_6 = MEM[(char *)u + 14B];
  D.2699_7 = (int) D.2698_6;
...
  D.2740_48 = (int) D.2739_47;
  test_func (0, D.2740_48, D.2738_46, D.2735_43, D.2732_40, D.2729_37,
D.2726_34, D.2723_31, D.2720_28, D.2717_25, D.2714_22, D.2711_19, D.2708_16,
D.2705_13, D.2702_10, D.2699_7, D.2696_4);
  return 0;

thus, no more array access and still non-address-taken u.  4.4 also warns
about

small-test.c: In function 'main':
small-test.c:18: warning: array subscript is above array bounds
small-test.c:18: warning: array subscript is above array bounds
small-test.c:18: warning: array subscript is above array bounds
small-test.c:18: warning: 'u' is used uninitialized in this function

4.3 doesn't warn at all.

Confirmed.  I'd close it as fixed in 4.6 and add a testcase (no time for
that right now).


[Bug c++/47417] [4.6 Regression][C++0x] error: use of deleted function 'S::S(const S)'

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47417

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||rejects-valid
   Target Milestone|--- |4.6.0


[Bug c++/47416] [4.6 Regression] ICE in build_data_member_initialization, at cp/semantics.c:5509

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47416

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


[Bug c/47438] function arguments memory alignment problem.

2011-01-25 Thread dbms007 at hanmail dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47438

--- Comment #4 from doh-hyun koh dbms007 at hanmail dot net 2011-01-25 
11:28:51 UTC ---
#include stdio.h

int Test1(tranNo, name, path, sSpId, spId, spPg, type, size, parm)
long tranNo;
char* name, *path;
short sSpId, spId, spPg, type;
long size;
char* parm;
{
printf(--- size : %ld\n, size);
}


int Test2(tranNo, name, path, sSpId, spId, spPg, size, type, parm)
long tranNo;
char* name, *path;
short sSpId, spId, spPg;
long size;
short type;
char* parm;
{
printf(--- size : %ld\n, size);
}

main()
{
int xx = 7974288;
Test1(xx);
Test2(xx);
}


compiler option 
gcc -O -m64 test.c

Would u please try again ?


[Bug tree-optimization/47413] Constant Propagation and Virtual Function Tables

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47413

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.25 11:35:50
 CC||rguenth at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
11:35:50 UTC ---
With GCC 4.6 I see

bb 3:
  obj_11-vtab = vtab1337;
  D.3820_15 = f1337 (obj_11);
  printf (%d\n[0], D.3820_15);

so it calls f1337 directly, but it doesn't inline it.

We are partly confused by the CFG caused by the NULL test:

bb 2:
  obj_11 = malloc (8);
  if (obj_11 == 0B)
goto bb 4;
  else
goto bb 3;

bb 3:
  obj_11-vtab = vtab1337;

bb 4:
  # obj_12 = PHI 0B(2), obj_11(3)
  if (obj_12 == 0B)
goto bb 6;
  else
goto bb 5;

bb 5:
  D.3822_13 = obj_12-vtab;
  D.3821_14 = D.3822_13-f;
  D.3820_15 = D.3821_14 (obj_12);

so it takes several iterations through different optimizers to eventually
constant propagate the function address (jump-threading the test in BB4,
which only happens late by DOM).


[Bug fortran/47455] [4.6 Regression][OOP] internal compiler error: in fold_convert_loc, at fold-const.c:2028

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47455

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
   Target Milestone|--- |4.6.0


[Bug fortran/25071] dummy argument larger than actual argument

2011-01-25 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25071

Janne Blomqvist jb at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||jb at gcc dot gnu.org
 Resolution|FIXED   |

--- Comment #7 from Janne Blomqvist jb at gcc dot gnu.org 2011-01-25 12:01:17 
UTC ---
Reopening..

(In reply to comment #6)
 I believe this is fixed by PR30940.
 
 The first example gives:
 Warnung: Actual argument contains too few elements for dummy argument 'i' 
 (4/6)
 at (1)
 
 The second example:
 Warnung: Character length of actual argument shorter than of dummy argument 
 'y'
 (10/20) at (1)
 
 It currently gives only warnings since I failed to get any comments when an
 error and when only a warning should be given.

Sorry for being 'a bit' late with comments, but IMHO this should be an error
and not just a warning, because

1) The standard says so

2) Other compilers reject it (so we can't argue that we must support this
common extension)

3) Not rejecting it makes it really easy to corrupt memory. Consider

program x
  character(len=10) :: a, b, c
  a = 1234567890
  b = a
  c = a
  call xx2(b)
  print *, '::', a, '::', b, '::', c, '::'
contains
  subroutine xx2(name)
character(len=20), intent(inout) :: name
name = 'hi'
  end subroutine xx2
end program

This prints (gfortran 4.4, x86_64 Linux):

$ ./chardummy2
 ::567890::hi::1234567890::

That is, blanking out the remaining 18 characters at the end of the character b
passed to xx2 overwrites part of the character a (why are only 4 characters
overwritten and not all 10? because they are allocated 4/8/16? byte aligned on
the stack). Note that neither bounds checking nor valgrind detects this error.

 
 Missing is the check for array element designators: PR32616.

I haven't looked, but maybe PR30940 and PR32616 would need to be fixed as well?


[Bug tree-optimization/47428] [4.6 Regression] ICE: tree check: expected ssa_name, have integer_cst in copy_phis_for_bb, at tree-inline.c:1986

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47428

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
12:01:57 UTC ---
Author: jakub
Date: Tue Jan 25 12:01:54 2011
New Revision: 169226

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169226
Log:
PR tree-optimization/47427
PR tree-optimization/47428
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
coalesce if the new root var would be TREE_READONLY.

* gcc.c-torture/compile/pr47427.c: New test.
* gcc.c-torture/compile/pr47428.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr47427.c
trunk/gcc/testsuite/gcc.c-torture/compile/pr47428.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-copyrename.c


[Bug tree-optimization/47427] [4.6 Regression] ICE in process_constraint, at tree-ssa-structalias.c:2901

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47427

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
12:01:57 UTC ---
Author: jakub
Date: Tue Jan 25 12:01:54 2011
New Revision: 169226

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169226
Log:
PR tree-optimization/47427
PR tree-optimization/47428
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
coalesce if the new root var would be TREE_READONLY.

* gcc.c-torture/compile/pr47427.c: New test.
* gcc.c-torture/compile/pr47428.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr47427.c
trunk/gcc/testsuite/gcc.c-torture/compile/pr47428.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-copyrename.c


[Bug fortran/25071] dummy argument larger than actual argument

2011-01-25 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25071

--- Comment #8 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-01-25 12:12:59 UTC ---
(In reply to comment #7)
 Reopening..

actually, I think this is a kind of error that should be caught at run-time
with -fcheck=arguments (not to say bounds). I guess that's not so easy to
implement, as it seem to imply that additional hidden subroutine arguments need
to be passed around.


[Bug fortran/25071] dummy argument larger than actual argument

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25071

--- Comment #9 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
12:41:11 UTC ---
(In reply to comment #8)
 actually, I think this is a kind of error that should be caught at run-time
 with -fcheck=arguments (not to say bounds). I guess that's not so easy to
 implement, as it seem to imply that additional hidden subroutine arguments 
 need
 to be passed around.

Well, that assumes that one compiles all files with the checking option. I like
the idea better to have a global (static, SAVE) derived-type (struct) variable
which contains the arguments and a function pointer. If loc(current function)
== loc(function pointer) then the argument checking is done - else it is for a
different function and no checking is done.


[Bug c++/47417] [4.6 Regression][C++0x] error: use of deleted function 'S::S(const S)'

2011-01-25 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47417

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-25 
12:43:56 UTC ---
which version of Boost are you using? I don't know if it's fixed now but older
releases (e.g. 1.42) did not support the current rvalue-reference model and
unordered_map has no copy-constructor, only a move constructor:

unordered_map(unordered_map other)

With the latest rvalue-reference model that cannot bind to an lvalue.

If you want to use GCC 4.6.0 and -std=c++0x then you need to use a version of
Boost that can handle it.


[Bug tree-optimization/47427] [4.6 Regression] ICE in process_constraint, at tree-ssa-structalias.c:2901

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47427

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
12:46:19 UTC ---
Fixed.


[Bug tree-optimization/47428] [4.6 Regression] ICE: tree check: expected ssa_name, have integer_cst in copy_phis_for_bb, at tree-inline.c:1986

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47428

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
12:46:46 UTC ---
Fixed.


[Bug c++/47417] [4.6 Regression][C++0x] error: use of deleted function 'S::S(const S)'

2011-01-25 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47417

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords|rejects-valid   |
 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-25 
12:51:09 UTC ---
Boost trunk seems to have the same problem still, so this is a bug in Boost:
unordered_map has no copy constructor when BOOST_HAS_RVALUE_REFS is defined

you could workaround it with a user-provided copy constructor:

S(const S s) : m_(s.m_, s.m_.get_allocator()) { }


[Bug target/46072] AIX linker chokes on debug info for uninitialized static variables

2011-01-25 Thread michael.haubenwallner at salomon dot at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46072

--- Comment #4 from Michael Haubenwallner michael.haubenwallner at salomon dot 
at 2011-01-25 12:52:22 UTC ---
What exactly is the difference for gcc between not initializing a static
variable and initializing it to zero?

This is the difference in the generated assembler file:

  $ cat mytest.c
static int myvar;

int main(void)
{
return myvar;
}

#if defined(IVAL)
static int myvar = IVAL;
#endif

For the compilation:

  $ gcc -g mytest.c -DIVAL=0
(success)
  $ gcc -g mytest.c
ld: 0711-593 SEVERE ERROR: Symbol C_BSTAT (entry 29) in object
/tmp//cc26KLXk.o:
The symbol refers to a csect with symbol number 0, which was not
found. The new symbol cannot be associated with a csect and
is being ignored.
collect2: ld returned 12 exit status
(fail)

For the analysis:

  $ gcc -g -S mytest.c -o mytestu.s
  $ gcc -g -S mytest.c -o mytest0.s -DIVAL=0
  $ diff -u mytestu.s mytest0.s 
--- mytestu.s   2011-01-25 13:39:43.0 +0100
+++ mytest0.s   2011-01-25 13:40:01.0 +0100
@@ -42,7 +42,7 @@
.byte 31
.align 2
  FE..main:
-   .bs _mytest.bss_
+   .bs _mytest.rw_[RW]
.stabx  myvar:S-1,myvar,133,0
.es
  _section_.text:

Both gcc-4.5.1 and gcc-4.2.4 do make this difference.


[Bug c++/47444] False warning: array subscript is above array bounds

2011-01-25 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47444

--- Comment #5 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-01-25 
12:58:12 UTC ---
(In reply to comment #4)
 Well.  You might argue that the wording should be 'may be' in all cases
 where the offending statement might not be executed (which is certainly
 undecidable as you can't know whether the function is executed at all).
 But it also isn't the way we handle other warnings (in particular the
 uninitialized variable uses).

This is strange. We *precisely* says is uninitialized when it can be proved
that it happens and may be uninitialized when it is just some code-paths or
we cannot prove that it doesn't happen. And we certainly (or used to, I haven't
been following these bugs lately) classify as bugs when the wrong message is
printed.

 Thus I think we should not fix this bug (and it is a non-bug, as certainly
 the code in question isn't obviously dead).
 
 Interprocedual analysis could see that we call the function with a boolean
 value (thus, either 0 or 1).
 
 That said - we can't suit everyone with this kind of warnings.

Then I guess we should just point out people to static analysis tools, like
http://clang-analyzer.llvm.org/, which are more suited for this task than GCC.


[Bug tree-optimization/47265] [4.6 Regression] Error: SSA name in freelist but still referenced

2011-01-25 Thread matz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47265

--- Comment #7 from Michael Matz matz at gcc dot gnu.org 2011-01-25 12:58:33 
UTC ---
FWIW removing the second recursive call doesn't regress the testsuite.


[Bug c++/47444] False warning: array subscript is above array bounds

2011-01-25 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47444

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-25 
13:07:06 UTC ---
If you want to, although Clang can't analyze C++


[Bug tree-optimization/47426] [4.6 Regression] wrong code with -O2 -fipa-pta

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47426

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
13:16:58 UTC ---
The problem is that i_1(D) has an empty points-to set.  It doesn't even
receive constraints which is because the function is static but it
escapes from getfoo which results in us failing to add NONLOCAL
parameter inputs.


[Bug c++/47444] False warning: array subscript is above array bounds

2011-01-25 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47444

--- Comment #7 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-01-25 
13:16:55 UTC ---
(In reply to comment #6)
 If you want to, although Clang can't analyze C++

The difference is that by design, Clang aims to do it at some moment in the
future, it is a matter of time, resources and contributors, whereas by design
GCC aims to not do it.

I see a lot of frustrated users trying to use GCC for what it is not meant to
be used and getting their bugs closed as invalid.


[Bug tree-optimization/47265] [4.6 Regression] Error: SSA name in freelist but still referenced

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47265

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
13:19:35 UTC ---
Have you gathered statistics how much less does forwprop propagate though?
I'm ATM running an instrumented bootstrap/regtest to see how many replacement
hits result from the iterations, if iteration proves not to be worthwhile, I'd
say just the return all  has_zero_uses (name); change would be safest for
4.6.


[Bug c++/47457] New: g++ calls without optimisation incorrectly from explicitly optimised code

2011-01-25 Thread vas.gurevich at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47457

   Summary: g++ calls without optimisation incorrectly from
explicitly optimised code
   Product: gcc
   Version: 4.4.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vas.gurev...@gmail.com


Created attachment 23116
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23116
preprocessed source

When build this code without optimisation, like that,
g++ -o optimizetest optimizetest.cpp
looks like function call from optimised function passes wrong parameters to
static inline function

#include stdio.h

static inline void bar(int a)
{
printf(%d\n, a);
}

void foo() __attribute__((optimize(O2)));

void foo()
{
int a = 10;
bar(a);
}

int main(int, char**)
{
foo();
return 0;
}

If compile with more than 0 optimisation level this works fine and prints 10,
otherwise when compile without optimisation this produces garbage instead of
10.


[Bug c++/47457] g++ calls without optimisation incorrectly from explicitly optimised code

2011-01-25 Thread vas.gurevich at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47457

--- Comment #1 from Vasily Gurevich vas.gurevich at gmail dot com 2011-01-25 
13:23:58 UTC ---
Created attachment 23117
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23117
optimizetest.cpp

Source file


[Bug fortran/47455] [4.6 Regression][OOP] internal compiler error: in fold_convert_loc, at fold-const.c:2028

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47455

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
13:24:39 UTC ---
Regarding the regression:

  FAILS: 2010-05-03-r158988
  WORKS: 2010-04-29-r158905

  That includes a huge merge by Paul (r158910, 2010-04-29) - seemingly the
  OOP branch merge.

 * * *

The failure occurs for the assignment in gfc_trans_scalar_assign, which is
called by gfc_trans_assignment_1 for:
expr1 is BT_DERIVED with this-x
expr2 is EXPR_FUNCTION with this-_vptr-find_x

The failure occurs for:

5281  gfc_add_modify (block, lse-expr,
5282  fold_convert (TREE_TYPE (lse-expr), rse-expr));

If one looks at rhs-expr.common.type and lhs-expr.common.type both are
essentially the same - except that the RHS is a pointer:

RHS:
 pointer_type 0x2ce325e8
type record_type 0x2ac2fb28 tx BLK
LHS:
 record_type 0x2ac2fb28 tx BLK


In the working version from April 2010, the dump looks like:
*this-$data-x = *find_x ((struct .class.t *) this);

The * on the RHS seems to be missing ...


[Bug c++/47457] g++ calls without optimisation incorrectly from explicitly optimised code

2011-01-25 Thread vas.gurevich at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47457

--- Comment #2 from Vasily Gurevich vas.gurevich at gmail dot com 2011-01-25 
13:24:51 UTC ---
Created attachment 23118
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23118
gcc -v output


[Bug fortran/47448] Invalid check for ASSIGNMENT(=)

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47448

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
13:30:35 UTC ---
Author: burnus
Date: Tue Jan 25 13:30:32 2011
New Revision: 169228

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169228
Log:
2011-01-25  Tobias Burnus  bur...@net-b.de

PR fortran/47448
* interface.c (gfc_check_operator_interface): Fix
defined-assignment check.

2011-01-25  Tobias Burnus  bur...@net-b.de

PR fortran/47448
* gfortran.dg/redefined_intrinsic_assignment_2.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/redefined_intrinsic_assignment_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/47457] g++ calls without optimisation incorrectly from explicitly optimised code

2011-01-25 Thread juha.kallioinen at nokia dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47457

Juha Kallioinen juha.kallioinen at nokia dot com changed:

   What|Removed |Added

 CC||juha.kallioinen at nokia
   ||dot com

--- Comment #3 from Juha Kallioinen juha.kallioinen at nokia dot com 
2011-01-25 13:41:42 UTC ---
Additional info: works on a 64bit Ubuntu Maverick (10.10) system, but not on a
32 bit one. Same problem with gcc-4.5.


[Bug c++/47457] g++ calls without optimisation incorrectly from explicitly optimised code

2011-01-25 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47457

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #23116|application/octet-stream|text/plain
  mime type||

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-25 
13:44:39 UTC ---
Comment on attachment 23116
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23116
preprocessed source

this isn't preprocessed source, this is the assembler code


[Bug rtl-optimization/47166] [4.5/4.6 Regression] SpecCpu2000 Ammp segfaults for ARM with -O3 -mthumb

2011-01-25 Thread ibolton at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47166

--- Comment #23 from Ian Bolton ibolton at gcc dot gnu.org 2011-01-25 
13:45:59 UTC ---
(In reply to comment #21)
 So is this now fixed on the trunk?  Can anyone run SPEC2k?

Spec2K's Ammp now runs correctly for trunk, with -mthumb -O3.

The rest of Spec2K is OK too (apart from mesa, which is the subject of another
bug).


[Bug c++/47457] g++ calls without optimisation incorrectly from explicitly optimised code

2011-01-25 Thread vas.gurevich at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47457

--- Comment #5 from Vasily Gurevich vas.gurevich at gmail dot com 2011-01-25 
13:51:14 UTC ---
Created attachment 23119
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23119
real preprocessed source

Excuse me, preprocessed source, just in case.


[Bug fortran/47448] Invalid check for ASSIGNMENT(=)

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47448

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
13:54:36 UTC ---
Author: burnus
Date: Tue Jan 25 13:54:33 2011
New Revision: 169229

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169229
Log:
2011-01-25  Tobias Burnus  bur...@net-b.de

PR fortran/47448
* interface.c (gfc_check_operator_interface): Fix
defined-assignment check.

2011-01-25  Tobias Burnus  bur...@net-b.de

PR fortran/47448
* gfortran.dg/redefined_intrinsic_assignment_2.f90: New.


Added:
   
branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/redefined_intrinsic_assignment_2.f90
Modified:
branches/gcc-4_5-branch/gcc/fortran/ChangeLog
branches/gcc-4_5-branch/gcc/fortran/interface.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug fortran/47448] Invalid check for ASSIGNMENT(=)

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47448

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
14:00:31 UTC ---
FIXED on the 4.6 trunk and on the 4.5 branch.


[Bug rtl-optimization/37273] [4.4/4.5/4.6 Regression] IRA does not re-materializes addresses (loads from the TOC)

2011-01-25 Thread law at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37273

--- Comment #8 from Jeffrey A. Law law at gcc dot gnu.org 2011-01-25 14:10:51 
UTC ---
Author: law
Date: Tue Jan 25 14:10:46 2011
New Revision: 169231

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169231
Log:
PR rtl-optimization/37273
* ira-costs.c (scan_one_insn): Detect constants living in memory and
handle them like argument loads from stack slots.  Do not double
count memory for memory constants and argument loads from stack slots.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-costs.c


[Bug rtl-optimization/37273] [4.4/4.5/4.6 Regression] IRA does not re-materializes addresses (loads from the TOC)

2011-01-25 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37273

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|4.4.6   |4.6.0

--- Comment #9 from Jeffrey A. Law law at redhat dot com 2011-01-25 14:11:33 
UTC ---
Fixed


[Bug fortran/45586] [4.6 Regression] ICE non-trivial conversion at assignment

2011-01-25 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586

--- Comment #38 from Mikael Morin mikael at gcc dot gnu.org 2011-01-25 
14:32:28 UTC ---

The patch looks good. 
Somewhat hackish as you acknowledge, but worth submitting anyway. 
A few minor comments below. 


 Index: fortran/trans-expr.c
 ===
 --- fortran/trans-expr.c  (revision 168749)
 +++ fortran/trans-expr.c  (working copy)
 @@ -504,6 +504,19 @@ gfc_conv_component_ref (gfc_se * se, gfc
field = c-backend_decl;
gcc_assert (TREE_CODE (field) == FIELD_DECL);
decl = se-expr;
 +  if (DECL_CONTEXT (field) != TREE_TYPE (decl))
 +{
 +  tree f2 = c-backend_decl2;
 +  if (f2  DECL_FIELD_CONTEXT (f2) == TREE_TYPE (decl))
 + ;
 +  else for (f2 = TYPE_FIELDS (TREE_TYPE (decl)); f2; f2 = DECL_CHAIN 
 (f2))

I prefer `if (!cond) ...' instead of `if (cond) ; else ...'


 Index: fortran/gfortran.h
 ===
 --- fortran/gfortran.h(revision 168749)
 +++ fortran/gfortran.h(working copy)
 @@ -934,6 +934,7 @@ typedef struct gfc_component
gfc_array_spec *as;
  
tree backend_decl;
 +  tree backend_decl2;
More descriptive name (e.g. restrict_backend_decl or target_backend_decl or
...)
and comment explaining the need for it appreciated. 

One could have the combinatorial explosion of backend_decls here as said
Michael. In any case it can be safely removed if needed, as it is just a cache.


locus loc;
struct gfc_expr *initializer;
struct gfc_component *next;
 Index: fortran/trans-types.c
 ===
 --- fortran/trans-types.c (revision 168749)
 +++ fortran/trans-types.c (working copy)
 @@ -1746,6 +1746,80 @@ gfc_build_pointer_type (gfc_symbol * sym
else
  return build_pointer_type (type);
  }
 +
 +static tree
 +gfc_nonrestricted_type (tree t)
 +{
 +  tree ret = t;
 +  if (!TYPE_LANG_SPECIFIC (t))
 +TYPE_LANG_SPECIFIC (t)
 +  = ggc_alloc_cleared_lang_type (sizeof (struct lang_type));
 +  if (TYPE_LANG_SPECIFIC (t)-nonrestricted_type)
 +return TYPE_LANG_SPECIFIC (t)-nonrestricted_type;
 +  switch (TREE_CODE (t))
 +{
 +  default:
 + break;
 +
 +  case POINTER_TYPE:
 +  case REFERENCE_TYPE:
 + ret = build_qualified_type (t, TYPE_QUALS (t)  ~TYPE_QUAL_RESTRICT);

Isn't it necessary to call gfc_nonrestricted_type on TREE_TYPE (t) here ?


 + break;
 +
 +  case ARRAY_TYPE:
 + {
 +   tree elemtype = gfc_nonrestricted_type (TREE_TYPE (t));
 +   if (elemtype == TREE_TYPE (t))
 + ret = t;
 +   else
 + {
 +   ret = copy_node (t);
 +   TREE_TYPE (t) = elemtype;
 +   /* ??? Change some TYPE_LANG_SPECIFICs too?  */
 + }
 + }
 + break;
 +
 +  case RECORD_TYPE:
 +  case UNION_TYPE:
 +  case QUAL_UNION_TYPE:
 + {
 +   tree field, *chain;
 +   for (field = TYPE_FIELDS (t); field; field = DECL_CHAIN (field))
 + if (TREE_CODE (field) == FIELD_DECL)
 +   {
 + tree elemtype = gfc_nonrestricted_type (TREE_TYPE (field));
 + if (elemtype != TREE_TYPE (field))
 +   break;
 +   }
 +   if (!field)
 + break;
 +   ret = copy_node (t);
 +   TYPE_FIELDS (ret) = NULL_TREE;
 +   chain = TYPE_FIELDS (ret);
 +   for (field = TYPE_FIELDS (t); field; field = DECL_CHAIN (field))
 + {
 +   tree newfield = copy_node (field);
 +   DECL_CONTEXT (newfield) = ret;
 +   DECL_CHAIN (newfield) = NULL_TREE;
 +   if (TYPE_FIELDS (ret) == NULL_TREE)
 + TYPE_FIELDS (ret) = newfield;

Those two lines seem to duplicate the line below (as initially chain points to
TYPE_FIELDS(ret)). 


 +   *chain = newfield;
 +   chain = DECL_CHAIN (newfield);
 +
 +   if (TREE_CODE (field) == FIELD_DECL)
 + {
 +   tree elemtype = gfc_nonrestricted_type (TREE_TYPE (field));
 +   TREE_TYPE (newfield) = elemtype;
 + }
 + }
 + }
 +break;
 +}
 +  TYPE_LANG_SPECIFIC (t)-nonrestricted_type = ret;

Don't know if it is absolutely necessary, but one might add also :
TYPE_LANG_SPECIFIC (ret)-nonrestricted_type = ret;


 +  return ret;
 +}
 +
  
  /* Return the type for a symbol.  Special handling is required for character
 types to get the correct level of indirection.
 @@ -1789,6 +1863,9 @@ gfc_sym_type (gfc_symbol * sym)
else
  type = gfc_typenode_for_spec (sym-ts);
  
 +  if (sym-attr.pointer)
 +type = gfc_nonrestricted_type (type);
 +

This is missing the target attribute, so you may preferably use the restricted
boolean a few lines below. 


if (sym-attr.dummy  !sym-attr.function  !sym-attr.value)
  byref = 1;
else
 Index: fortran/trans.h
 

[Bug fortran/45586] [4.6 Regression] ICE non-trivial conversion at assignment

2011-01-25 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586

--- Comment #39 from Mikael Morin mikael at gcc dot gnu.org 2011-01-25 
14:40:40 UTC ---
(In reply to comment #37)
 
 That's what we do ;) 

Wow! Middle-end gurus take design decisions of mine before I have ever thought
them. They are real wizards after all. 


 And void * restrict is not compatible with
 void *.  So you get the ICE.

Hum, may I suggest a --push-harder/--will-you-swallow-it option ?


More seriously, I will test the patch above.


[Bug tree-optimization/47271] [4.6 Regression] if-conversion removes a test (if), the function generates invalid outputs

2011-01-25 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47271

--- Comment #16 from Sebastian Pop spop at gcc dot gnu.org 2011-01-25 
14:51:28 UTC ---
Author: spop
Date: Tue Jan 25 14:51:23 2011
New Revision: 169233

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169233
Log:
Fix PR47271: only if-convert full writes.

2011-01-25  Sebastian Pop  sebastian@amd.com
Jakub Jelinek  ja...@redhat.com

PR tree-optimization/47271
* tree-if-conv.c (bb_postdominates_preds): New.
(if_convertible_bb_p): Call bb_postdominates_preds.
(if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
(predicate_scalar_phi): Call bb_postdominates_preds.

* gcc.dg/tree-ssa/ifc-pr47271.c: New.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ifc-pr47271.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c


[Bug tree-optimization/47271] [4.6 Regression] if-conversion removes a test (if), the function generates invalid outputs

2011-01-25 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47271

Sebastian Pop spop at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #17 from Sebastian Pop spop at gcc dot gnu.org 2011-01-25 
14:54:52 UTC ---
Fixed.


[Bug target/46898] libgcc build failure on lm32-elf

2011-01-25 Thread joel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46898

Joel Sherrill joel at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.25 14:58:49
  Known to work||4.5.2
 Ever Confirmed|0   |1

--- Comment #5 from Joel Sherrill joel at gcc dot gnu.org 2011-01-25 14:58:49 
UTC ---
I can confirm this on the lm32-rtems.

This is a serious regression from 4.5.2 since it prevents all lm32 targets from
building.


[Bug fortran/45586] [4.6 Regression] ICE non-trivial conversion at assignment

2011-01-25 Thread matz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586

--- Comment #40 from Michael Matz matz at gcc dot gnu.org 2011-01-25 15:02:40 
UTC ---
The patch from comment #35 requires another change in unrelated code, which
I think actually fixes a pre-existing bug in type extension support:

Index: fortran/trans-expr.c
===
--- fortran/trans-expr.c(revision 168749)
+++ fortran/trans-expr.c(working copy)
@@ -549,11 +562,11 @@ conv_parent_component_references (gfc_se

   if (dt-attr.extension  dt-components)
 {
-  if (dt-attr.is_class)
+  if (1 || dt-attr.is_class)
cmp = dt-components;
   else
cmp = dt-components-next;
-  /* Return if the component is not in the parent type.  */
+  /* Return if the component is in this type.  */
   for (; cmp; cmp = cmp-next)
if (strcmp (c-name, cmp-name) == 0)
  return;

Otherwise the new assert will trigger on extends_*.f03 because the frontend
is trying to generate obviously wrong component_refs.


[Bug fortran/45586] [4.6 Regression] ICE non-trivial conversion at assignment

2011-01-25 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586

--- Comment #41 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-01-25 15:03:55 UTC ---
(In reply to comment #39)
  void *.  So you get the ICE.
 Hum, may I suggest a --push-harder/--will-you-swallow-it option ?

--enable-checking=release ?


[Bug target/47458] New: m32r fails to build -- __builtin_eh_return not supported

2011-01-25 Thread joel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47458

   Summary: m32r fails to build -- __builtin_eh_return not
supported
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: j...@gcc.gnu.org


4.6.0 20110110 (experimental) [trunk revision 168642]

/users/joel/test-gcc/b-gcc1-m32r/./gcc/xgcc
-B/users/joel/test-gcc/b-gcc1-m32r/./gcc/ -nostdinc
-B/users/joel/test-gcc/b-gcc1-m32r/m32r-rtems4.11/newlib/ -isystem
/users/joel/test-gcc/b-gcc1-m32r/m32r-rtems4.11/newlib/targ-include -isystem
/users/joel/test-gcc/gcc-svn/newlib/libc/include
-B/users/joel/test-gcc/install-svn/m32r-rtems4.11/bin/
-B/users/joel/test-gcc/install-svn/m32r-rtems4.11/lib/ -isystem
/users/joel/test-gcc/install-svn/m32r-rtems4.11/include -isystem
/users/joel/test-gcc/install-svn/m32r-rtems4.11/sys-include-g -Os
-mmodel=medium -msdata=sdata -O2
-I/users/joel/test-gcc/gcc-svn/gcc/../newlib/libc/sys/rtems/include -g -Os
-DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem
./include  -G 0 -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
-fno-stack-protector -Dinhibit_libc  -I. -I. -I../../.././gcc
-I/users/joel/test-gcc/gcc-svn/libgcc -I/users/joel/test-gcc/gcc-svn/libgcc/.
-I/users/joel/test-gcc/gcc-svn/libgcc/../gcc
-I/users/joel/test-gcc/gcc-svn/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o
unwind-dw2.o -MT unwind-dw2.o -MD -MP -MF unwind-dw2.dep -fexceptions -c
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind-dw2.c 
In file included from
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind-dw2.c:1582:0:
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc: In function
'_Unwind_RaiseException':
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc:136:1: error:
__builtin_eh_return not supported on this target
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc: In function
'_Unwind_ForcedUnwind':
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc:212:1: error:
__builtin_eh_return not supported on this target
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc: In function
'_Unwind_Resume':
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc:237:1: error:
__builtin_eh_return not supported on this target
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc: In function
'_Unwind_Resume_or_Rethrow':
/users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc:262:1: error:
__builtin_eh_return not supported on this target
make[4]: *** [unwind-dw2.o] Error 1
make[4]: Leaving directory
`/users/joel/test-gcc/b-gcc1-m32r/m32r-rtems4.11/medium/libgcc'
make[3]: *** [multi-do] Error 1


[Bug target/47458] m32r fails to build -- __builtin_eh_return not supported

2011-01-25 Thread froydnj at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47458

--- Comment #1 from froydnj at codesourcery dot com froydnj at codesourcery 
dot com 2011-01-25 15:08:48 UTC ---
On Tue, Jan 25, 2011 at 03:05:32PM +, joel at gcc dot gnu.org wrote:
 In file included from
 /users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind-dw2.c:1582:0:
 /users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc: In function
 '_Unwind_RaiseException':
 /users/joel/test-gcc/gcc-svn/libgcc/../gcc/unwind.inc:136:1: error:
 __builtin_eh_return not supported on this target

This means that m32r (and m32c, at least) need to undef/define
TARGET_EXCEPT_UNWIND_INFO in m32r.c to sjlj_except_unwind_info.


[Bug ada/47459] New: m68k Ada ICE in maybe_add_or_update_dep_1, at sched-deps.c:854

2011-01-25 Thread joel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47459

   Summary: m68k Ada ICE in maybe_add_or_update_dep_1, at
sched-deps.c:854
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: j...@gcc.gnu.org


/users/joel/test-gcc/b-gccada-m68k/./gcc/xgcc
-B/users/joel/test-gcc/b-gccada-m68k/./gcc/ -nostdinc
-B/users/joel/test-gcc/b-gccada-m68k/m68k-rtems4.11/newlib/ -isystem
/users/joel/test-gcc/b-gccada-m68k/m68k-rtems4.11/newlib/targ-include -isystem
/users/joel/test-gcc/gcc-svn/newlib/libc/include
-B/users/joel/test-gcc/install-svn/m68k-rtems4.11/bin/
-B/users/joel/test-gcc/install-svn/m68k-rtems4.11/lib/ -isystem
/users/joel/test-gcc/install-svn/m68k-rtems4.11/include -isystem
/users/joel/test-gcc/install-svn/m68k-rtems4.11/sys-include-c -g -O2
-mcpu=5206  -W -Wall -gnatpg -mcpu=5206  g-sothco.adb -o g-sothco.o
+===GNAT BUG DETECTED==+
| 4.6.0 20110124 (experimental) [trunk revision 169182]
(m68k-unknown-rtems4.11) GCC error:|
| in maybe_add_or_update_dep_1, at sched-deps.c:854|
| Error detected around g-sothco.ads:99:9  |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.|
| Use a subject line meaningful to you and us to track the bug.|
| Include the entire contents of this bug box in the report.   |
| Include the exact gcc or gnatmake command that you entered.  |
| Also include sources listed below in gnatchop format |
| (concatenated together with no headers between files).   |
+==+


[Bug c++/47340] [trans-mem] problem with declaration of new operator

2011-01-25 Thread aldyh at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47340

Aldy Hernandez aldyh at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.25 15:13:02
 AssignedTo|unassigned at gcc dot   |aldyh at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug ada/47459] Regression: m68k Ada ICE in maybe_add_or_update_dep_1, at sched-deps.c:854

2011-01-25 Thread joel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47459

Joel Sherrill joel at gcc dot gnu.org changed:

   What|Removed |Added

Summary|m68k Ada ICE in |Regression: m68k Ada ICE in
   |maybe_add_or_update_dep_1,  |maybe_add_or_update_dep_1,
   |at sched-deps.c:854 |at sched-deps.c:854

--- Comment #1 from Joel Sherrill joel at gcc dot gnu.org 2011-01-25 15:14:35 
UTC ---
This is known to work in [gcc-4_5-branch revision 167253] but I don't know how
to put that in the Known to Work field.


[Bug middle-end/47449] [x32] can’t find a register in class ‘DIREG’ while reloading ‘asm’

2011-01-25 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47449

--- Comment #12 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-01-25 
15:14:54 UTC ---
Author: hjl
Date: Tue Jan 25 15:14:49 2011
New Revision: 169234

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169234
Log:
Don't propagate hard register.

2011-01-25  H.J. Lu  hongjiu...@intel.com

PR middle-end/47449
* fwprop.c (forward_propagate_subreg): Don't propagate hard
register.

Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/fwprop.c


[Bug rtl-optimization/47166] [4.5 Regression] SpecCpu2000 Ammp segfaults for ARM with -O3 -mthumb

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47166

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.0
Summary|[4.5/4.6 Regression]|[4.5 Regression]
   |SpecCpu2000 Ammp segfaults  |SpecCpu2000 Ammp segfaults
   |for ARM with -O3 -mthumb|for ARM with -O3 -mthumb
  Known to fail|4.6.0   |

--- Comment #24 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
15:20:52 UTC ---
Fixed on the trunk then.


[Bug target/46072] AIX linker chokes on debug info for uninitialized static variables

2011-01-25 Thread michael.haubenwallner at salomon dot at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46072

--- Comment #5 from Michael Haubenwallner michael.haubenwallner at salomon dot 
at 2011-01-25 15:40:07 UTC ---
Created attachment 23120
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23120
Patch to simply not use bss section with .bs, but private-data-section instead

I'm going to try this patch with gcc-4.2.4 now...


[Bug c/47409] volatile struct member bug

2011-01-25 Thread regehr at cs dot utah.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47409

--- Comment #7 from John Regehr regehr at cs dot utah.edu 2011-01-25 15:41:58 
UTC ---
(In reply to comment #6)
 struct {
   volatile int a[100];
 } a, b;
 a = b;
 
 ?  And what's the difference of the above to
 
 volatile struct {
   int a[100];
 } a, b;
 a = b;

There's no effective difference, I believe.


[Bug fortran/38536] ICE with C_LOC in resolve.c due to not properly going through expr-ref

2011-01-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38536

--- Comment #22 from Tobias Burnus burnus at gcc dot gnu.org 2011-01-25 
15:44:50 UTC ---
Created attachment 23121
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23121
draft patch, working but too many warnings (cf. test suite failures)

Currently
  c_loc(a(1:2))
produces the warning
  Array section in '%s' call at %L
which is correct but possibly misleading as F2008 (contrary to F2003) allows
it.

What F2008 only requires is that the argument is contiguous. At
  http://gcc.gnu.org/ml/fortran/2011-01/msg00180.html
was an early (and very buggy), attached a more advanced patch which gives the
warning:
  Array might be not contiguous in '%s' call at %L

However, the patch is also overzealous by warning for a(1:2:5) which is
contiguous (as equivalent to a(1:1)). But it also warns elsewhere too much.

I think it would be useful to only warn (or error out) if it is known to be
noncontiguous of if one cuts down the number of warnings.


[Bug target/47458] m32r fails to build -- __builtin_eh_return not supported

2011-01-25 Thread joel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47458

--- Comment #2 from Joel Sherrill joel at gcc dot gnu.org 2011-01-25 16:19:28 
UTC ---
I can now build C/C++ for m32r-rtems*.  

m32c-rtems* builds ok without any patches.

OK to commit this and close this PR?

Index: gcc/config/m32r/m32r.c
===
--- gcc/config/m32r/m32r.c(revision 169182)
+++ gcc/config/m32r/m32r.c(working copy)
@@ -1,6 +1,6 @@
 /* Subroutines used for code generation on the Renesas M32R cpu.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   2005, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.

This file is part of GCC.

@@ -210,6 +210,9 @@
 #undef TARGET_TRAMPOLINE_INIT
 #define TARGET_TRAMPOLINE_INIT m32r_trampoline_init

+#undef  TARGET_EXCEPT_UNWIND_INFO
+#define TARGET_EXCEPT_UNWIND_INFOsjlj_except_unwind_info
+
 struct gcc_target targetm = TARGET_INITIALIZER;


 /* Implement TARGET_HANDLE_OPTION.  */


[Bug target/45701] [4.6 Regression] Fail to prefer using r3 for padding a push/pop multiple to 8-byte alignment

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45701

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
16:22:45 UTC ---
Author: jakub
Date: Tue Jan 25 16:22:34 2011
New Revision: 169240

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169240
Log:
PR target/45701
* config/arm/arm.c (any_sibcall_uses_r3): New function.
(arm_get_frame_offsets): Use it.

2011-01-25  Yao Qi  y...@codesourcery.com

PR target/45701
* gcc.target/arm/pr45701-1.c: New test.
* gcc.target/arm/pr45701-2.c: New test.
* gcc.target/arm/pr45701-3.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr45701-1.c
trunk/gcc/testsuite/gcc.target/arm/pr45701-2.c
trunk/gcc/testsuite/gcc.target/arm/pr45701-3.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/testsuite/ChangeLog


[Bug target/45701] [4.6 Regression] Fail to prefer using r3 for padding a push/pop multiple to 8-byte alignment

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45701

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
16:24:30 UTC ---
Fixed.


[Bug target/47424] [4.6 Regression] Glibc miscompiled

2011-01-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47424

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-25 
16:25:49 UTC ---
I've built glibc 2.13 with 20110122ish gcc on both x86_64 and i686 just fine
this weekend.


[Bug target/47458] m32r fails to build -- __builtin_eh_return not supported

2011-01-25 Thread froydnj at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47458

--- Comment #3 from froydnj at codesourcery dot com froydnj at codesourcery 
dot com 2011-01-25 16:26:42 UTC ---
On Tue, Jan 25, 2011 at 04:19:33PM +, joel at gcc dot gnu.org wrote:
 I can now build C/C++ for m32r-rtems*.  
 
 m32c-rtems* builds ok without any patches.
 
 OK to commit this and close this PR?

I'm not a maintainer, but given that a number of architectures have been
fixed in this manner this release cycle, I think this counts as obvious.


[Bug tree-optimization/47460] New: Inconsistent behaviour of __sync_fetch_and_add builtin?

2011-01-25 Thread manuel.holtgr...@fu-berlin.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47460

   Summary: Inconsistent behaviour of __sync_fetch_and_add
builtin?
   Product: gcc
   Version: 4.4.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: manuel.holtgr...@fu-berlin.de


I get the unexpected (for me) inconsistent behaviour of the
__sync_fetch_and_add builtin with the program below. My main confusion is
around the missing __sync_val_compare_and_swap_{1,2,4} when not explicitely
specifying the architecture in GCC 4.4.5, but availability in all other tried
variants.

Also, why is there a 64-bit variant when explicitely giving -march=i686 to g++
=4.2 but missing one in g++-4.1?

Thanks!

Program gcc-atomic.cpp
--8--8--8--8--8--8--8--8--8--8--8--8--8--8--8--8

template typename T
void test()
{
  T volatile x = 0;
  T y = 0;
  T z = 0;
  __sync_fetch_and_add(x, y, z);
  __sync_fetch_and_or(x, y, z);
  __sync_fetch_and_xor(x, y, z);
  __sync_val_compare_and_swap(x, y, z);
}

int main()
{
  testchar();
  testunsigned char();
  testint();
  testunsigned int();
  testshort();
  testunsigned short();
  testlong();
  testunsigned long();
  testlong long();
  testunsigned long long();
  return 0;
}


Output WITH -march=i686 switch
--8--8--8--8--8--8--8--8--8--8--8--8--8--8--8--8


$ for i in 1 2 3 4 5; do g++-4.$i --version; g++-4.$i -dumpmachine; g++-4.$i
-march=i686 gcc-atomic.cpp; done
g++-4.1 (GCC) 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

i486-linux-gnu
/tmp/cce8mfQl.o: In function `void testlong long()':
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x46): undefined
reference to `__sync_fetch_and_add_8'
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x5f): undefined
reference to `__sync_fetch_and_or_8'
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x78): undefined
reference to `__sync_fetch_and_xor_8'
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x9f): undefined
reference to `__sync_val_compare_and_swap_8'
/tmp/cce8mfQl.o: In function `void testunsigned long long()':
gcc-atomic.cpp:(.text._Z4testIyEvv[void testunsigned long long()]+0x45):
undefined reference to `__sync_fetch_and_add_8'
gcc-atomic.cpp:(.text._Z4testIyEvv[void testunsigned long long()]+0x5e):
undefined reference to `__sync_fetch_and_or_8'
gcc-atomic.cpp:(.text._Z4testIyEvv[void testunsigned long long()]+0x77):
undefined reference to `__sync_fetch_and_xor_8'
gcc-atomic.cpp:(.text._Z4testIyEvv[void testunsigned long long()]+0x9e):
undefined reference to `__sync_val_compare_and_swap_8'
collect2: ld returned 1 exit status
g++-4.2 (GCC) 4.2.4 (Debian 4.2.4-6)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

i486-linux-gnu
g++-4.3 (Debian 4.3.2-1.1) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

i486-linux-gnu
g++-4.4.5 (GCC) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

i686-pc-linux-gnu
g++-4.5.1 (GCC) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

i686-pc-linux-gnu


Output WITHOUT -march=i686 switch
--8--8--8--8--8--8--8--8--8--8--8--8--8--8--8--8

$ for i in 1 2 3 4 5; do g++-4.$i --version; g++-4.$i -dumpmachine; g++-4.$i
gcc-atomic.cpp; done
g++-4.1 (GCC) 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

i486-linux-gnu
/tmp/ccGnLtMn.o: In function `void testlong long()':
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x46): undefined
reference to `__sync_fetch_and_add_8'
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x5f): undefined
reference to `__sync_fetch_and_or_8'
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x78): undefined
reference to `__sync_fetch_and_xor_8'
gcc-atomic.cpp:(.text._Z4testIxEvv[void testlong long()]+0x9f): undefined
reference to `__sync_val_compare_and_swap_8'
/tmp/ccGnLtMn.o: In function `void testunsigned long long()':
gcc-atomic.cpp:(.text._Z4testIyEvv[void testunsigned long 

[Bug target/47457] g++ calls without optimisation incorrectly from explicitly optimised code

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47457

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Target||i?86-*-linux
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.25 16:28:34
  Component|c++ |target
 Ever Confirmed|0   |1
  Known to fail||4.4.4, 4.5.2, 4.6.0

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
16:28:34 UTC ---
Confirmed.  I think this is a dup though.


[Bug target/47458] m32r fails to build -- __builtin_eh_return not supported

2011-01-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47458

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-25 
16:29:26 UTC ---
Looks obvious.


[Bug target/47424] [4.6 Regression] Glibc miscompiled

2011-01-25 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47424

Andreas Schwab sch...@linux-m68k.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID

--- Comment #3 from Andreas Schwab sch...@linux-m68k.org 2011-01-25 16:29:56 
UTC ---
The test is compiled with -mavx and you are not using an AVX capable host.


[Bug c++/47461] New: warn_unused_result attribute ignored for templates

2011-01-25 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47461

   Summary: warn_unused_result attribute ignored for templates
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: i...@airs.com


When I compile this C++ code with current mainline


class C {
 public:
  templatetypename T bool f(T* m) __attribute__((warn_unused_result));
};
templatetypename T inline bool C::f(T* m) { return true; }
void f(C* pc) { int i; pc-f(i); }

I should see a warning for the call to pc-f.  However, I see no warnings.

I do see a warning for a member function which is not a template.


  1   2   3   >