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

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

   Summary: [4.6 Regression] Random PCH related bootstrap failures
on powerpc64-linux
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: pch
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org
CC: b...@gcc.gnu.org, pa...@gcc.gnu.org


I saw during the weekend two bootstrap failures in libstdc++.
The problem seems to be that powerpc64 uses very large pages (64KB), address
space randomization and the fact that for building stdtr1c++.h.gch and
extc++.h.gch uses stdc++.h.gch.

When building e.g. stdtr1c++.h.gch, stdc++.h.gch already likely exists and thus
it first mmaps stdc++.h.gch at the desired address, which is likely
TRY_EMPTY_VM_SPACE (OT, for __powerpc__  __LP64__, shouldn't it use some
larger value, say 0x60ULL ?), thus when attempting to determine best VM
slot for stdtr1c++.h.gch, that slot is already taken by stdc++.h.gch and thus
can't be used.  While there is some code to attempt to handle address space
randomization, perhaps 32MB works well for 4KB pages, but is too small for
larger pages or something, but it certainly fails from time to time on ppc64
and some shared library is mmapped at that point.

Potential ways how to fix this, one or more of:
1) in host-linux.c define more than one TRY_EMPTY_VM_SPACE value for each OS,
and if mmap at TRY_EMPTY_VM_SPACE fails, try TRY_EMPTY_VM_SPACE2 which is say
0x7000 for most 32-bit hosts and some GB appart from TRY_EMPTY_VM_SPACE for
64-bit hosts.
2) make sure other PCH is not read during compilation that is writing PCH
3) change the logic for address space randomization in host-linux.c, use larger
buffer if page size is  4KB
4) change libstdc++ makefiles to make sure stdc++.h.gch does not exist when
building the other *.gch files, use explicit ordering in the Makefile that it
is first rm -f'ed, then the other gch files built, then stdc++.h.gch built

Preferences?


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

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


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

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

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
08:51:53 UTC ---
3) might be too hard, at least on RHEL6/ppc64 the randomization of mmap has
difference between smallest and largest address for one mmap is almost 1GB in a
few attempts I've done (0xfff7911 to 0xfffb501).

BTW, the fatal_error (had to relocate PCH); doesn't print, but instead
segfaults, as line_map seems to be in some weird state prepared for the PCH
read already at that point, thus it is pointing into the new PCH slot already.


[Bug fortran/29383] Fortran 2003/F95[TR15580:1999]: Floating point exception (IEEE) support

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

Thomas thenlich at users dot sourceforge.net changed:

   What|Removed |Added

 CC||thenlich at users dot
   ||sourceforge.net

--- Comment #5 from Thomas thenlich at users dot sourceforge.net 2011-01-24 
08:53:10 UTC ---
Even a partial, incomplete support of module IEEE_ARITHMETIC would be very
useful and much appreciated:

From http://gcc.gnu.org/ml/gcc/2008-11/msg00372.html

a) To set an IEEE value (NaN, INF, etc.)
b) Check whether a value is NaN, etc.

and IEEE_VALUE(X, IEEE_QUIET_NAN)

So we wouldn't have to resort to non-standard functions like ISNAN()
(http://gcc.gnu.org/onlinedocs/gfortran/ISNAN.html) anymore.


[Bug lto/45810] 40% slowdown when using LTO for a single-file program

2011-01-24 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45810

--- Comment #21 from Dominique d'Humieres dominiq at lps dot ens.fr 
2011-01-24 09:29:00 UTC ---
I have regtested my working tree (with other patches) with the patch in comment
#15 and got 180 new failures (likely 90 for both -m32 and -m64), but I have not
checked that carefully). 

Among them, 124 are of the kind scan-tree-dump-times fre *: dump file does not
exist and seem to be due to the extra pass producing fre1 and fre2. I can
adjust the test for say fre2 and see what's happening.

Then I see

FAIL: gcc.dg/ipa/ipa-pta-14.c scan-ipa-dump pta foo.result = { NULL a[^ ]* a[^
]* c[^ ]* }

FAIL: gcc.dg/matrix/matrix-1.c scan-ipa-dump-times matrix-reorg Flattened 3
dimensions 1
FAIL: gcc.dg/matrix/matrix-2.c scan-ipa-dump-times matrix-reorg Flattened 2
dimensions 1
FAIL: gcc.dg/matrix/matrix-3.c scan-ipa-dump-times matrix-reorg Flattened 2
dimensions 1
FAIL: gcc.dg/matrix/matrix-6.c scan-ipa-dump-times matrix-reorg Flattened 2
dimensions 1
FAIL: gcc.dg/matrix/transpose-1.c scan-ipa-dump-times matrix-reorg Flattened 3
dimensions 1
FAIL: gcc.dg/matrix/transpose-1.c scan-ipa-dump-times matrix-reorg Transposed
3
FAIL: gcc.dg/matrix/transpose-2.c scan-ipa-dump-times matrix-reorg Flattened 3
dimensions 1
FAIL: gcc.dg/matrix/transpose-3.c scan-ipa-dump-times matrix-reorg Flattened 2
dimensions 1
FAIL: gcc.dg/matrix/transpose-3.c scan-ipa-dump-times matrix-reorg Transposed
2
FAIL: gcc.dg/matrix/transpose-4.c scan-ipa-dump-times matrix-reorg Flattened 3
dimensions 1
FAIL: gcc.dg/matrix/transpose-4.c scan-ipa-dump-times matrix-reorg Transposed
2
FAIL: gcc.dg/matrix/transpose-5.c scan-ipa-dump-times matrix-reorg Flattened 3
dimensions 1
FAIL: gcc.dg/matrix/transpose-6.c scan-ipa-dump-times matrix-reorg Flattened 3
dimensions 1

FAIL: gcc.dg/torture/pta-structcopy-1.c  -O2  scan-tree-dump alias points-to
vars: { i }
FAIL: gcc.dg/torture/pta-structcopy-1.c  -O3 -fomit-frame-pointer 
scan-tree-dump alias points-to vars: { i }
FAIL: gcc.dg/torture/pta-structcopy-1.c  -O3 -g  scan-tree-dump alias
points-to vars: { i }
FAIL: gcc.dg/torture/pta-structcopy-1.c  -Os  scan-tree-dump alias points-to
vars: { i }
FAIL: gcc.dg/torture/pta-structcopy-1.c  -O2 -flto -flto-partition=none 
scan-tree-dump alias points-to vars: { i }
FAIL: gcc.dg/torture/pta-structcopy-1.c  -O2 -flto  scan-tree-dump alias
points-to vars: { i }

FAIL: gcc.dg/tree-ssa/pta-ptrarith-1.c scan-tree-dump ealias q_., points-to
vars: { k }
FAIL: gcc.dg/tree-ssa/sra-9.c scan-tree-dump-times optimized = s.b 0
FAIL: gcc.dg/tree-ssa/ssa-dce-4.c scan-tree-dump-times cddce1 a\[[^

FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg f6: va_list escapes 0,
needs to save (3|12|24) GPR units
FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg f11: va_list escapes 0,
needs to save (3|12|24) GPR units
FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg f12: va_list escapes 0,
needs to save [1-9][0-9]* GPR units
FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg f13: va_list escapes 0,
needs to save [1-9][0-9]* GPR units
FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg f14: va_list escapes 0,
needs to save [1-9][0-9]* GPR units

FAIL: g++.dg/ipa/iinline-1.C scan-ipa-dump inline String::funcOne[^\n]*inline
copy in int main
FAIL: g++.dg/ipa/iinline-2.C scan-ipa-dump inline String::funcOne[^\n]*inline
copy in int main

So far I have only looked at gcc.dg/ipa/ipa-pta-14.c, for which grepping
foo.result yields

p_1 = foo.result
foo.result = foo.arg1
Equivalence classes for Direct node node id 15:foo.result are pointer: 8,
location:0
Unifying foo.result to foo.arg0
foo.result = { a.0+32 } same as foo.arg0

instead of

p_1 = foo.result
foo.result = D.2736_3
Equivalence classes for Direct node node id 15:foo.result are pointer: 13,
location:0
Unifying foo.result to p_1
foo.result = { NULL a.0+32 a.64+64 c.0+32 } same as p_1

Is it a missed optimization or wrong-code?


[Bug testsuite/45988] gfortran.dg/vect/fast-math-pr38968.f90 times out on 32-bit Solaris 10/x86

2011-01-24 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45988

--- Comment #2 from Rainer Orth ro at gcc dot gnu.org 2011-01-24 09:30:39 UTC 
---
Author: ro
Date: Mon Jan 24 09:30:31 2011
New Revision: 169153

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169153
Log:
* gfortran.dg/array_constructor_33.f90: Use dg-timeout-factor 4.

PR testsuite/45988
* gfortran.dg/vect/fast-math-pr38968.f90: Use dg-timeout-factor 2.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/array_constructor_33.f90
trunk/gcc/testsuite/gfortran.dg/vect/fast-math-pr38968.f90


[Bug testsuite/45988] gfortran.dg/vect/fast-math-pr38968.f90 times out on 32-bit Solaris 10/x86

2011-01-24 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45988

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-01/msg01234.htm
   ||l
 Resolution||FIXED
 AssignedTo|unassigned at gcc dot   |ro at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.6.0

--- Comment #3 from Rainer Orth ro at gcc dot gnu.org 2011-01-24 09:41:22 UTC 
---
Fixed for 4.6.0.


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

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

--- Comment #37 from rguenther at suse dot de rguenther at suse dot de 
2011-01-24 09:41:28 UTC ---
On Fri, 21 Jan 2011, mikael at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586
 
 --- Comment #36 from Mikael Morin mikael at gcc dot gnu.org 2011-01-21 
 22:54:53 UTC ---
 (In reply to comment #34)
  Yep, that's what I figured eventually :)  The question now is if for:
  
  --
  type bar
integer :: a
end type bar
type(bar), pointer :: b
type(bar)  :: c
  --
  
  'b' and 'c' should have the same type.  In other words
  should type(bar),pointer be a different type vs type(bar) already in the
  frontend representation for types, or not?  If they would be they wouldn't
  have shared components and we would be free to set attributes as we like.
  
  Not knowing much about the several engineering decisions taken while
  developing the frontend _I_ personally would have done it this way.  Alas,
  no cake for me :)
 
 Well, the current scheme is in line with how the standard is meant: entities 
 of
 the same type can have or not the target attribute; in other words attributes
 are orthogonal to the type. This doesn't fit the middle-end but having it fit
 the middle-end would lead to the reverse problem : every time we find two
 objects of different type, we would have to look for variants to check if the
 objects are indeed of different type or only of different variants (and thus
 compatible). 
 Personally, I would put the fix in the middle-end (which doesn't mean there is
 nothing to do on the front-end side). Instead of having the C
 type-compatibility rules hardcoded in the middle-end, have some relaxed 
 rules: 
 two objects are type-compatible iff all of their sub-components are type
 compatible.

That's what we do ;)  And void * restrict is not compatible with
void *.  So you get the ICE.

Richard.


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

2011-01-24 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

   Priority|P3  |P1
 Status|NEW |ASSIGNED
 AssignedTo|rguenther at suse dot de|rguenth at gcc dot gnu.org
   Target Milestone|--- |4.5.3

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-24 
09:43:17 UTC ---
Mine.


[Bug c/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-24 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

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
09:45:47 UTC ---
Guess it is related to the implicit declaration of func_106 and too few
parameters passed to it.  Looking...


[Bug libfortran/47431] New: ctime() not thread-safe

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

   Summary: ctime() not thread-safe
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: j...@gcc.gnu.org


In libgfortran/intrinsics/ctime.c we call the POSIX ctime() function, which
need not be thread safe. Instead, we should use ctime_r() if available.


[Bug libfortran/47431] ctime() not thread-safe

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

Janne Blomqvist jb at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.01.24 09:55:30
 AssignedTo|unassigned at gcc dot   |jb at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug libfortran/47432] New: ttyname() not thread-safe

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

   Summary: ttyname() not thread-safe
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: j...@gcc.gnu.org


In libgfortran/io/unix.c we call the POSIX ttyname() function, which need not
be thread-safe. Instead we should call ttyname_r(), if available.


[Bug libfortran/47432] ttyname() not thread-safe

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

Janne Blomqvist jb at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.01.24 09:57:38
 AssignedTo|unassigned at gcc dot   |jb at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug debug/45124] No DW_AT_accessibility for public DIEs in DW_TAG_class_type

2011-01-24 Thread jan.kratochvil at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45124

Jan Kratochvil jan.kratochvil at redhat dot com changed:

   What|Removed |Added

 CC||jan.kratochvil at redhat
   ||dot com

--- Comment #5 from Jan Kratochvil jan.kratochvil at redhat dot com 
2011-01-24 10:41:17 UTC ---
DWARF3 leaves the meaning for struct/union unspecified:
An inheritance entry may have a DW_AT_accessibility attribute. If no
accessibility attribute is present, private access is assumed for an entry of a
class and public access is assumed for an entry of an interface.

DWARF4 specifies:
An inheritance entry may have a DW_AT_accessibility attribute. If no
accessibility attribute is present, private access is assumed for an entry of a
class and public access is assumed for an entry of an interface, struct or
union.

DWARF2 had:
An inheritance entry may have a DW_AT_accessibility attribute. If no
accessibility attribute is present, private access is assumed.

So I guess DWARF3 was meant like what DWARF4 says and GDB should be changed for
both DWARF3 and DWARF4.


[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-24 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|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
11:13:17 UTC ---
Created attachment 23095
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23095
gcc46-pr47428.patch

Untested fix.


[Bug libstdc++/47433] New: libstdc++ parallel mode calls std::swap explicitely

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

   Summary: libstdc++ parallel mode calls std::swap explicitely
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: manuel.holtgr...@fu-berlin.de


The parallel libstdc++ calls std::swap explicitely. To my knowledge, this
disables the user to specify his own, possibly more efficient swap routine.
This is especially severe in parallel sorting and partitioning.

 libstdc++-v3-parallel-trunk $ ack 'std::swap'
balanced_quicksort.h
135:std::swap(*__pivot_pos, *(__end - 1));
147:  std::swap(*(__begin + __split_pos), *__pivot_pos);
287:std::swap(*__pivot_pos, *(__end - 1));
306:std::swap(*__split_pos1, *__pivot_pos);

losertree.h
237:std::swap(_M_losers[__pos]._M_sup, __sup);
238:std::swap(_M_losers[__pos]._M_source, __source);
239:std::swap(_M_losers[__pos]._M_key, __key);
333:std::swap(_M_losers[__pos]._M_sup, __sup);
334:std::swap(_M_losers[__pos]._M_source, __source);
335:std::swap(_M_losers[__pos]._M_key, __key);
464:std::swap(_M_losers[__pos]._M_sup, __sup);
465:std::swap(_M_losers[__pos]._M_source, __source);
466:std::swap(_M_losers[__pos]._M_keyp, __keyp);
541:std::swap(_M_losers[__pos]._M_sup, __sup);
542:std::swap(_M_losers[__pos]._M_source, __source);
543:std::swap(_M_losers[__pos]._M_keyp, __keyp);
697:std::swap(_M_losers[__pos]._M_source, __source);
698:std::swap(_M_losers[__pos]._M_key, __key);
788:std::swap(_M_losers[__pos]._M_source, __source);
789:std::swap(_M_losers[__pos]._M_key, __key);
937:std::swap(_M_losers[__pos]._M_source, __source);
938:std::swap(_M_losers[__pos]._M_keyp, __keyp);
1027:std::swap(_M_losers[__pos]._M_source, __source);
1028:std::swap(_M_losers[__pos]._M_keyp, __keyp);

partition.h
181:  std::swap(__begin[__thread_left],
241:  std::swap_ranges(__begin + __thread_left_border
264:  std::swap_ranges(__begin + __thread_right_border,
304:std::swap(__begin[__final_left], __begin[__final_right]);
357:std::swap(*__pivot_pos, *(__end - 1));
379:std::swap(*__split_pos1, *__pivot_pos);


[Bug c++/45940] [trans-mem] Error of unsafe function even if annotated

2011-01-24 Thread vincent.gramoli at epfl dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45940

--- Comment #16 from Vincent Gramoli vincent.gramoli at epfl dot ch 
2011-01-24 12:04:37 UTC ---
Hi Aldy, 
The bug does you refer to does not seem to be assigned to anyone.

Vincent

On Jan 20, 2011, at 3:31 PM, aldyh at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45940
 
 --- Comment #14 from Aldy Hernandez aldyh at gcc dot gnu.org 2011-01-20 
 14:30:50 UTC ---
 Vincent, this is bug 47340.  I will be looking at this today.
 
 -- 
 Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
 --- You are receiving this mail because: ---
 You reported the bug.


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.24 12:12:09
 CC||paolo.carlini at oracle dot
   ||com, singler at kit dot edu
 Ever Confirmed|0   |1
   Severity|critical|normal

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-01-24 
12:12:09 UTC ---
Johannes, do you have an opinion about this? Otherwise, I'll simply go ahead
and do the change.


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

2011-01-24 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

 CC||hubicka at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
12:50:47 UTC ---
I think this is pretty much the same issue as PR47428, except in this case it
is not a PHI in which such a replacement is made, but for y_9 = 0; given that y
is argument declared const the inliner replaces it with 1 = 0;.
So perhaps the PR47428 patch isn't the right fix.

The reason why y_9 is on the LHS of a set is copyrename.  I guess a fix could
be either not doing copyrename if an SSA_NAME of a TREE_READONLY var would be
on the LHS of an assignment or result of a PHI, or drop the TREE_READONLY from
the parameter in such a case (but that would result in us dropping such info in
debug info), or avoid the optimization
  /* If the parameter is never assigned to, has no SSA_NAMEs created,
 we would not need to create a new variable here at all, if it
 weren't for debug info.  Still, we can just use the argument
 value.  */
  if (TREE_READONLY (p)
  ...
in setup_one_parameter.

Richard/Honza, what do you think?


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-01-24 
12:52:30 UTC ---
Note: std::swap_ranges is fine, AFAICS.


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

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

--- Comment #3 from Manuel Holtgrewe manuel.holtgr...@fu-berlin.de 2011-01-24 
12:56:16 UTC ---
I agree, that there are no obvious problems with std::swap_ranges.

Is anything specified in the standard in this direction?


[Bug libfortran/47434] New: Wrong field width for NaN with (F0.n) formatting

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

   Summary: Wrong field width for NaN with (F0.n) formatting
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: thenl...@users.sourceforge.net


When formatting NaN with a F edit descriptor where the field width is zero, the
string blankNaN is written (field width = 4).

The expected string would be NaN (field width = 3, the smallest positive
actual field width that does not result in a field filled with asterisks).

For example: 

program testnan
real :: n = 0.0
n = 0.0 / n
print (F0.2), n
print (F3.2), n
end program testnan

Output:
blankNaN
NaN

10.7.2.1
(6) On output, with I, B, O, Z, F, and G editing, the specified value of the
field width w may be zero. In such cases, the processor selects the smallest
positive actual field width that does not result in a field filled with
asterisks. The specified value of w shall not be zero on input.

10.7.2.3.2 F editing
For an internal value that is an IEEE NaN, the output field consists of blanks,
if necessary, followed by the letters 'NaN' and optionally followed by one to w
- 5 alphanumeric processor-dependent characters enclosed in parentheses, right
justified within the field. If w is less than 3, the field is filled with
asterisks.


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

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

--- Comment #3 from rguenther at suse dot de rguenther at suse dot de 
2011-01-24 12:59:58 UTC ---
On Mon, 24 Jan 2011, jakub at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47427
 
 Jakub Jelinek jakub at gcc dot gnu.org changed:
 
What|Removed |Added
 
  CC||hubicka at gcc dot gnu.org,
||jakub at gcc dot gnu.org
 
 --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
 12:50:47 UTC ---
 I think this is pretty much the same issue as PR47428, except in this case it
 is not a PHI in which such a replacement is made, but for y_9 = 0; given that 
 y
 is argument declared const the inliner replaces it with 1 = 0;.
 So perhaps the PR47428 patch isn't the right fix.

copyrename shouldn't do this (coalesce to TREE_READONLY vars - it also
doesn't seem to not coalesce to TREE_THIS_VOLATILE vars, though those
shouldn't be in SSA form).

 The reason why y_9 is on the LHS of a set is copyrename.  I guess a fix could
 be either not doing copyrename if an SSA_NAME of a TREE_READONLY var would be
 on the LHS of an assignment or result of a PHI, or drop the TREE_READONLY from
 the parameter in such a case (but that would result in us dropping such info 
 in
 debug info), or avoid the optimization
   /* If the parameter is never assigned to, has no SSA_NAMEs created,
  we would not need to create a new variable here at all, if it
  weren't for debug info.  Still, we can just use the argument
  value.  */
   if (TREE_READONLY (p)
   ...
 in setup_one_parameter.
 
 Richard/Honza, what do you think?

Fix copyrename.

Richard.


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-01-24 
13:10:43 UTC ---
I don't think it is. I can double check later.

Also, in losertree.h most uses involve built-in types (like bool or int) or
pointers, and those are also fine.

Beyond the issue discussed here, however, I'm not sure to understand the logic
behind the __delete_min_insert members taking _Tp by *value* instead of
constant ref. Johannes, are we sure we want those copies?


[Bug libfortran/47434] Wrong field width for NaN with (F0.n) formatting

2011-01-24 Thread jvdelisle at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47434

Jerry DeLisle jvdelisle at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.01.24 13:12:19
 CC||jvdelisle at gcc dot
   ||gnu.org
 AssignedTo|unassigned at gcc dot   |jvdelisle at gcc dot
   |gnu.org |gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Jerry DeLisle jvdelisle at gcc dot gnu.org 2011-01-24 
13:12:19 UTC ---
I will investigate.


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #5 from Johannes Singler singler at kit dot edu 2011-01-24 
13:19:22 UTC ---
What are you proposing for a fix?  Omitting std::?  Using std::iter_swap where
appropriate, like stl_algo.h mostly does?  The latter would be more consistent.

Johannes


[Bug rtl-optimization/47389] ICE: in calc_dfs_tree, at dominance.c:395 with -fno-combine-stack-adjustments -fno-dse -fno-tree-forwprop

2011-01-24 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47389

--- Comment #4 from Zdenek Sojka zsojka at seznam dot cz 2011-01-24 13:21:50 
UTC ---
Created attachment 23096
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23096
short C testcase

$ gcc -O -fno-combine-stack-adjustments -fno-dse -fno-guess-branch-probability
-foptimize-sibling-calls testcase.c
testcase.c: In function 'foo':
testcase.c:15:1: internal compiler error: in calc_dfs_tree, at dominance.c:395
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


Backtrace is similiar to the one in comment #0:
(gdb) bt
#0  fancy_abort (file=0x10d3be8 /mnt/svn/gcc-trunk/gcc/dominance.c, line=395,
function=0x10d3ca5 calc_dfs_tree)
at /mnt/svn/gcc-trunk/gcc/diagnostic.c:892
#1  0x006350d3 in calc_dfs_tree (di=0x7fffd4a0, reverse=0 '\000')
at /mnt/svn/gcc-trunk/gcc/dominance.c:395
#2  0x006369e0 in calculate_dominance_info (dir=CDI_DOMINATORS) at
/mnt/svn/gcc-trunk/gcc/dominance.c:656
#3  0x005eccad in flow_loops_find (loops=0x75d3bc60) at
/mnt/svn/gcc-trunk/gcc/cfgloop.c:386
#4  0x007aa7ef in loop_optimizer_init (flags=16) at
/mnt/svn/gcc-trunk/gcc/loop-init.c:52
#5  0x00fe7546 in if_convert () at /mnt/svn/gcc-trunk/gcc/ifcvt.c:4241
#6  0x00fe8fe9 in rest_of_handle_if_after_reload () at
/mnt/svn/gcc-trunk/gcc/ifcvt.c:4418
#7  0x007f1ba6 in execute_one_pass (pass=0x1610400) at
/mnt/svn/gcc-trunk/gcc/passes.c:1562
#8  0x007f1ea5 in execute_pass_list (pass=0x1610400) at
/mnt/svn/gcc-trunk/gcc/passes.c:1617
#9  0x007f1eb7 in execute_pass_list (pass=0x160ae40) at
/mnt/svn/gcc-trunk/gcc/passes.c:1618
#10 0x007f1eb7 in execute_pass_list (pass=0x160aea0) at
/mnt/svn/gcc-trunk/gcc/passes.c:1618
#11 0x009341a6 in tree_rest_of_compilation (fndecl=0x75d4a000) at
/mnt/svn/gcc-trunk/gcc/tree-optimize.c:422
#12 0x00afa9a2 in cgraph_expand_function (node=0x75d4d000) at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1522
#13 0x00afd06a in cgraph_expand_all_functions () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1581
#14 cgraph_optimize () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:1841
#15 0x00afd5ea in cgraph_finalize_compilation_unit () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1042
#16 0x0050585c in c_write_global_declarations () at
/mnt/svn/gcc-trunk/gcc/c-decl.c:9843
#17 0x008dd544 in compile_file (argc=17, argv=0x7fffda18) at
/mnt/svn/gcc-trunk/gcc/toplev.c:591
#18 do_compile (argc=17, argv=0x7fffda18) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1874
#19 toplev_main (argc=17, argv=0x7fffda18) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1937
#20 0x765f1bbd in __libc_start_main () from /lib/libc.so.6
#21 0x004ec455 in _start ()


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #6 from Johannes Singler singler at kit dot edu 2011-01-24 
13:23:26 UTC ---
Taking __key as value type in (some variants of __delete_min_insert) makes
sense, since it is also used as a buffer for storing the current loser.  Having
a local variable that is initialized with the const ref would have the same
effect, would it not?

Johannes


[Bug c++/47429] -Wfatal-errors hiding line number of offending caller

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

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.24 13:26:01
 CC||manu at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-01-24 
13:26:01 UTC ---
This is an old bug but I cannot find it in bugzilla. 

There are several issues:

* GCC doesn't have the concept of multi-line diagnostic, each line is
independent. That is, we cannot do error(this is one line.\nThis is another).
This is not difficult to implement but it is long and tedious.

* GCC cannot build a single diagnostic that expands several lines from
individual calls. That is, we cannot do 

Diagnostic diag;
diag.error(‘int Blah::test’ is private);
diag.note(within this context)
diag.report();

This is much harder (and ugly) to solve in C.

I am not sure about the status of Clang/LLVM with respect to this. Last time I
looked their diagnostic machinery was too strongly based on GCC's so they
suffered the same problem, but there have been loads of changes since then, so
perhaps they fixed it already.


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-01-24 
13:28:28 UTC ---
For sure if we are swapping _Tps we have to omit the std::. In general, when we
are not swapping built-ins or pointers we have to omit the qualification or use
something else, like std::swap_ranges (which eventually calls unqualified swap
anyway). Please let me know which are your plans Johannes and let's resolve
this issue of 4.6.0, we don't have much time...


[Bug c/47435] New: [4.6 Regression] ICE: SIGSEGV in c_finish_case (c-typeck.c:8859) on invalid code

2011-01-24 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47435

   Summary: [4.6 Regression] ICE: SIGSEGV in c_finish_case
(c-typeck.c:8859) on invalid code
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


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

Compiler output:
$ gcc testcase.c
testcase.c: In function 'foo':
testcase.c:5:5: error: a label can only be part of a statement and a
declaration is not a statement
testcase.c:5:5: error: unknown type name 'x'
testcase.c:6:3: error: expected '=', ',', ';', 'asm' or '__attribute__' before
'}' token
testcase.c:4:5: error: label at end of compound statement
==28038== Invalid read of size 8
==28038==at 0x513058: c_finish_case (c-typeck.c:8859)
==28038==by 0x535EF4: c_parser_statement_after_labels (c-parser.c:4626)
==28038==by 0x5372A7: c_parser_compound_statement_nostart (c-parser.c:4109)
==28038==by 0x538838: c_parser_compound_statement (c-parser.c:3946)
==28038==by 0x534F0A: c_parser_declaration_or_fndef (c-parser.c:1719)
==28038==by 0x539F8D: c_parser_external_declaration (c-parser.c:1332)
==28038==by 0x53AB67: c_parse_file (c-parser.c:1220)
==28038==by 0x574804: c_common_parse_file (c-opts.c:1071)
==28038==by 0x8DD507: toplev_main (toplev.c:579)
==28038==by 0x62FEBBC: (below main) (in /lib64/libc-2.11.2.so)
==28038==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==28038== 
testcase.c:6:3: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


Output - 4.5:
$ gcc testcase.c testcase.c: In function 'foo':
testcase.c:5:5: error: 'x' undeclared (first use in this function)
testcase.c:5:5: note: each undeclared identifier is reported only once for each
function it appears in
testcase.c:5:7: error: expected ';' before 'y'

The diagnostics given by 4.5 was probably more helpful.

Tested revisions:
r169155 - crash
4.5 r168785 - OK


[Bug c++/47398] [4.5/4.6 Regression] tree check: accessed elt 10 of tree_vec with 9 elts in tsubst, at cp/pt.c:10500

2011-01-24 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47398

Dodji Seketeli dodji at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.01.24 13:36:24
 AssignedTo|unassigned at gcc dot   |dodji at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

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

--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-24 
13:53:27 UTC ---
(In reply to comment #3)
 Is anything specified in the standard in this direction?

20.2.2 Swappable requirements   [swappable.requirements]

3  The context in which swap(t, u) and swap(u, t) are evaluated shall ensure
that a binary non-member function named “swap” is selected via overload
resolution (13.3) on a candidate set that includes:
— the two swap function templates defined in utility (20.3) and
— the lookup set produced by argument-dependent lookup (3.4.2).


The usual way to do that is:

  using std::swap;  // overloads in utility are candidates
  swap(t, u);   // overloads found by ADL are also candidates


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #9 from Johannes Singler singler at kit dot edu 2011-01-24 
13:55:33 UTC ---
I have made the attached minimal patch.  
Use std::iter_swap where possible, use swap for _Tp, and leave std::swap for
built-in types.  I will test and then submit the patch.

Johannes


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #10 from Johannes Singler singler at kit dot edu 2011-01-24 
13:57:16 UTC ---
Created attachment 23098
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23098
Minimal patch avoid std::swap on template types.


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

2011-01-24 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|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
14:02:05 UTC ---
Created attachment 23099
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23099
gcc46-pr47427.patch

Untested fix.


[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-24 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

  Attachment #23095|0   |1
is obsolete||

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
14:03:41 UTC ---
Created attachment 23100
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23100
gcc46-pr47427.patch

Different untested fix.


[Bug lto/45810] 40% slowdown when using LTO for a single-file program

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

--- Comment #22 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-24 
14:07:14 UTC ---
(In reply to comment #15)
 Enabling early FRE
 Index: passes.c
 ===
 --- passes.c(revision 169136)
 +++ passes.c(working copy)
 @@ -760,6 +760,7 @@
   NEXT_PASS (pass_remove_cgraph_callee_edges);
   NEXT_PASS (pass_rename_ssa_copies);
   NEXT_PASS (pass_ccp);
 +  NEXT_PASS (pass_fre);
   NEXT_PASS (pass_forwprop);
   /* pass_build_ealias is a dummy pass that ensures that we
  execute TODO_rebuild_alias at this point.  Re-building
 @@ -782,7 +783,7 @@
 
 reduces perida size estimate to 694 (so by about 30%) and hookes law to 141 
 (by
 11%). Not enough to make inlining happen, still.

That FRE pass should be after pass_sra_early (certainly after
pass_build_ealias).


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #11 from Paolo Carlini paolo.carlini at oracle dot com 2011-01-24 
14:11:05 UTC ---
Thanks Johannes. Jon is right (and indeed we are already using the pattern
elsewhere): when we are removing the std:: qualification from std::swap inside
a namespace != std, let's also add an using std::swap before. Maybe isn't
really necessary due to namespace association, but let's play safe. Patch
pre-approved.


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

2011-01-24 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

 CC||jakub at gcc dot gnu.org

--- Comment #21 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
14:18:47 UTC ---
So is this now fixed on the trunk?  Can anyone run SPEC2k?


[Bug c++/47436] New: Variadic base-specifier-list of union rejected

2011-01-24 Thread schaub.johannes at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47436

   Summary: Variadic base-specifier-list of union rejected
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: schaub.johan...@googlemail.com


GCC doesn't accept this

  templatetypename ...T union A : T... { };
  A a;

It complains at parse time of A about error: derived union 'AT' invalid.
However it doesn't know at that time whether or not the union will have bases
yet when instantiated.


[Bug libfortran/47434] Wrong field width for NaN with (F0.n) formatting

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

--- Comment #2 from Thomas Henlich thenlich at users dot sourceforge.net 
2011-01-24 14:37:29 UTC ---
A similar issue occurs with the values +Infinity and 0.0:

program testnan
real :: i, n = 0.0, m = tiny(0.0)
i = 1.0 / n
print (F0.2), i
print (F3.2), i

print (F0.2), n
print (F3.2), n

print (F0.2), m
print (F3.2), m
end program testnan

Output:
+Inf
Inf
0.00
.00
.00
.00

The expected chosen field width is 3 in all cases, exactly for the same reason
demanded by 10.7.2.1(6)


[Bug c/47435] [4.6 Regression] ICE: SIGSEGV in c_finish_case (c-typeck.c:8859) on invalid code

2011-01-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47435

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.24 14:43:13
 CC||bonzini at gnu dot org
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2011-01-24 14:43:13 
UTC ---
It is caused by revision 47435:

http://gcc.gnu.org/ml/gcc-cvs/2010-11/msg00621.html


[Bug libstdc++/47437] New: libstdc++ parallel mode: multiway_merge does not compile

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47437

   Summary: libstdc++ parallel mode: multiway_merge does not
compile
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: sing...@kit.edu
CC: sing...@kit.edu, paolo.carl...@oracle.com,
manuel.holtgr...@fu-berlin.de
Depends on: 47433


Mainline currently fails to compile the parallel mode multiway merge facilities
because of a spurious mutable reference.  This is a serious regression.

The fix is easy, though, and currently undergoes testing.


[Bug c/47435] [4.6 Regression] ICE: SIGSEGV in c_finish_case (c-typeck.c:8859) on invalid code

2011-01-24 Thread bonzini at gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47435

--- Comment #2 from Paolo Bonzini bonzini at gnu dot org 2011-01-24 14:47:15 
UTC ---
The code hardly makes any sense, so it's difficult to say which error message
makes more sense.  I'll look at the regression.


[Bug libstdc++/47437] libstdc++ parallel mode: multiway_merge does not compile

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47437

--- Comment #1 from Johannes Singler singler at kit dot edu 2011-01-24 
14:48:42 UTC ---
Created attachment 23101
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23101
Remove mutable qualifier from reference member.


[Bug libstdc++/47437] libstdc++ parallel mode: multiway_merge does not compile

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47437

Johannes Singler singler at kit dot edu changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.24 14:49:38
 AssignedTo|unassigned at gcc dot   |singler at kit dot edu
   |gnu.org |
 Ever Confirmed|0   |1


[Bug libstdc++/47437] [4.6 Regression] libstdc++ parallel mode: multiway_merge does not compile

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

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0
Summary|libstdc++ parallel mode:|[4.6 Regression] libstdc++
   |multiway_merge does not |parallel mode:
   |compile |multiway_merge does not
   ||compile

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-24 
14:51:55 UTC ---
Ah, that's because I fixed PR 33558 for 4.6 and didn't run the parallel mode
testsuite

change pre-approved - thanks


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

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

--- Comment #22 from Ian Bolton ibolton at gcc dot gnu.org 2011-01-24 
14:54:51 UTC ---
(In reply to comment #21)
 So is this now fixed on the trunk?  Can anyone run SPEC2k?

I can run it.  I will report back when done.


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

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

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-24 
15:02:22 UTC ---
rtx_refs_may_alias_p (x=0x71969318, mem=0x71968360, tbaa_p=1 '\001')
for x
(mem/s/f:DI (reg/v/f:DI 2 cx [orig:59 nul ] [59]) [3 nul_23-D.2090.next+0 S8
A64])
and mem
(mem/s/f/c:DI (reg/f:DI 7 sp) [3 MEM[(struct A *)s].next+0 S8 A64])
returns 0, although they clearly do alias.
*.alias says:
nul_23 = { NULL ESCAPED NONLOCAL s HEAP HEAP HEAP } same as nul_29


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

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

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
15:21:32 UTC ---
In particular it is
aliasing_component_refs_p that says those 2 don't alias.

Richi, can you please have a look?


[Bug c/47435] [4.6 Regression] ICE: SIGSEGV in c_finish_case (c-typeck.c:8859) on invalid code

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||error-recovery
   Priority|P3  |P4
 CC||jakub at gcc dot gnu.org


[Bug libstdc++/47387] AIX ctype 'mask' override not working

2011-01-24 Thread greed at pobox dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47387

--- Comment #4 from Graham Reed greed at pobox dot com 2011-01-24 15:29:55 
UTC ---
OK, I'll try and get the mailing list thing worked out today.


[Bug c++/47398] [4.5/4.6 Regression] tree check: accessed elt 10 of tree_vec with 9 elts in tsubst, at cp/pt.c:10500

2011-01-24 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47398

--- Comment #3 from Dodji Seketeli dodji at gcc dot gnu.org 2011-01-24 
16:05:26 UTC ---
A patch was proposed at http://gcc.gnu.org/ml/gcc-patches/2011-01/msg01646.html


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

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

--- Comment #4 from rguenther at suse dot de rguenther at suse dot de 
2011-01-24 16:08:44 UTC ---
On Mon, 24 Jan 2011, jakub at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47414
 
 --- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
 15:21:32 UTC ---
 In particular it is
 aliasing_component_refs_p that says those 2 don't alias.
 
 Richi, can you please have a look?

Sure.  That's type-based disambiguation btw.


[Bug c/47409] volatile struct member bug

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||jsm28 at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
16:23:44 UTC ---
Not sure if this is a bug at all, structure assignment should be implementable
using memcpy or memmove and thus the side effects that will happen on it are
not very well defined.


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

2011-01-24 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|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-24 
16:34:03 UTC ---
Index: tree-ssa-alias.c
===
--- tree-ssa-alias.c(revision 169155)
+++ tree-ssa-alias.c(working copy)
@@ -808,7 +808,7 @@ indirect_ref_may_alias_decl_p (tree ref1
 return aliasing_component_refs_p (ref1, TREE_TYPE (ptrtype1),
  ref1_alias_set, base1_alias_set,
  offset1, max_size1,
- ref2, TREE_TYPE (base2),
+ ref2, TREE_TYPE (reference_alias_ptr_type
(ref2)),
  ref2_alias_set, base2_alias_set,
  offset2, max_size2, true);


fixes it.


[Bug c/47409] volatile struct member bug

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

--- Comment #3 from John Regehr regehr at cs dot utah.edu 2011-01-24 16:43:58 
UTC ---
(In reply to comment #2)
 Not sure if this is a bug at all, structure assignment should be implementable
 using memcpy or memmove and thus the side effects that will happen on it are
 not very well defined.

Hi Jakub-  volatile isn't a very strong guarantee, but realistically people
assume that if a volatile is on the RHS of an assignment, a load from that
location occurs (and a store, if on the LHS).  My guess is that violating this
contract will confuse embedded systems developers and break previously working
code.

Also, if the rule for volatile becomes significantly different from what I said
above, we won't be able to do volatile testing anymore since violations will be
sort of meaningless.


[Bug libstdc++/47437] [4.6 Regression] libstdc++ parallel mode: multiway_merge does not compile

2011-01-24 Thread singler at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47437

--- Comment #3 from singler at gcc dot gnu.org singler at gcc dot gnu.org 
2011-01-24 16:44:36 UTC ---
Author: singler
Date: Mon Jan 24 16:44:30 2011
New Revision: 169166

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169166
Log:
2011-01-24  Johannes Singler  sing...@kit.edu

PR libstdc++/47437
* include/parallel/multiway_merge.h (_UnguardedIterator):
Remove useless mutable from reference declaration.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/parallel/multiway_merge.h


[Bug target/47408] Several of the Altivec tests fail if run with a compiler built with --with-cpu=power7

2011-01-24 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47408

--- Comment #2 from Michael Meissner meissner at gcc dot gnu.org 2011-01-24 
16:47:20 UTC ---
Author: meissner
Date: Mon Jan 24 16:47:16 2011
New Revision: 169167

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169167
Log:
Fix PR 47408 and 47385

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/altivec.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/altivec-15.C
trunk/gcc/testsuite/g++.dg/ext/altivec-types-1.C
trunk/gcc/testsuite/g++.dg/ext/altivec-types-2.C
trunk/gcc/testsuite/g++.dg/ext/altivec-types-3.C
trunk/gcc/testsuite/g++.dg/ext/altivec-types-4.C
trunk/gcc/testsuite/gcc.target/powerpc/altivec-11.c
trunk/gcc/testsuite/gcc.target/powerpc/altivec-14.c
trunk/gcc/testsuite/gcc.target/powerpc/altivec-33.c
trunk/gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
trunk/gcc/testsuite/gcc.target/powerpc/altivec-types-2.c
trunk/gcc/testsuite/gcc.target/powerpc/altivec-types-3.c
trunk/gcc/testsuite/gcc.target/powerpc/altivec-types-4.c
trunk/gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c
trunk/gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c


[Bug c/47409] volatile struct member bug

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

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
16:49:17 UTC ---
This is related to PR45472 and is solely about volatile fields in aggregates.


[Bug libstdc++/47437] [4.6 Regression] libstdc++ parallel mode: multiway_merge does not compile

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47437

Johannes Singler singler at kit dot edu changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #4 from Johannes Singler singler at kit dot edu 2011-01-24 
16:52:37 UTC ---
Fixed by above commit.


[Bug tree-optimization/45685] [4.6 Regression] missed conditional move opportunity in loop

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

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 CC||law at redhat dot com

--- Comment #15 from Jeffrey A. Law law at redhat dot com 2011-01-24 16:56:02 
UTC ---
Alternately, we could have phi-opts clean this up.  ISTM it's not that complex
to determine if two PHI nodes have closely related values such as negation,
trivial conversions, etc.

While this kind of optimization doesn't directly result in a performance
improvement, it may make it easier for later opts to improve the code.  This
would help codesize as we'd be replacing a pair of constant loads with a
negation, trivial type conversion, etc.


[Bug target/47408] Several of the Altivec tests fail if run with a compiler built with --with-cpu=power7

2011-01-24 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47408

--- Comment #3 from Michael Meissner meissner at gcc dot gnu.org 2011-01-24 
16:57:07 UTC ---
Author: meissner
Date: Mon Jan 24 16:57:04 2011
New Revision: 169168

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169168
Log:
Fix PR 47408 and 47385

Modified:
branches/ibm/gcc-4_5-branch/gcc/ChangeLog.ibm
branches/ibm/gcc-4_5-branch/gcc/config/rs6000/altivec.md
branches/ibm/gcc-4_5-branch/gcc/testsuite/ChangeLog.ibm
branches/ibm/gcc-4_5-branch/gcc/testsuite/g++.dg/ext/altivec-15.C
branches/ibm/gcc-4_5-branch/gcc/testsuite/g++.dg/ext/altivec-types-1.C
branches/ibm/gcc-4_5-branch/gcc/testsuite/g++.dg/ext/altivec-types-2.C
branches/ibm/gcc-4_5-branch/gcc/testsuite/g++.dg/ext/altivec-types-3.C
branches/ibm/gcc-4_5-branch/gcc/testsuite/g++.dg/ext/altivec-types-4.C
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/altivec-11.c
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/altivec-14.c
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/altivec-33.c
   
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
   
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/altivec-types-2.c
   
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/altivec-types-3.c
   
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/altivec-types-4.c
   
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c
   
branches/ibm/gcc-4_5-branch/gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c


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

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

   Summary: function arguments memory alignment problem.
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dbms...@hanmail.net


parameter memory aligment problem in 64 bit gcc compiler.

example ) 

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

Above program u can see the different result output .
i think that some of passing parament causes memory alignment problem..

I like to know which version can solve that problem ?
please answer me asap ..


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

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

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-24 
16:53:07 UTC ---
I think a backport of

2010-06-30  Michael Matz  m...@suse.de

PR bootstrap/44699
* tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
* gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
a gimple reg, attach the original VDEF to the last store in the
sequence.

is missing.


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

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

--- Comment #1 from doh-hyun koh dbms007 at hanmail dot net 2011-01-24 
17:02:45 UTC ---
hi I am developing big application with old large source in linux ..
even though I could manage some of bug, eventually the will be big troubles..
so I here I like to report the bugs and wait for your answer .. 
Please answer me asap ..


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

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

   Summary: Fun with scratch files on Windows  MKTEMP only allows
for 26 files
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: jvdeli...@gcc.gnu.org, j...@gcc.gnu.org


Reported by Claude Simone at
http://groups.google.com/group/comp.lang.fortran/msg/b1bf5ce50080e89e

Thread:
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/8843f2317cb565cd


A) Not more than 26 temporary files are possible

To generate a temporay file, libgfortran/io/unix.c's tempfile calls the
system's mktemp, which according to Microsoft's API has the following property:

http://msdn.microsoft.com/en-us/library/34wc6k1f%28v=VS.80%29.aspx

_mktemp preserves base and replaces the first trailing X with an alphabetic
character. _mktemp replaces the following trailing X's with a five-digit value;
this value is a unique number identifying the calling process, or in
multithreaded programs, the calling thread.

Hence, there are only a to z = 26 temporary files possible - at least
concurrently. Thus, for Windows systems, gfortran needs an own implementation
for mk(s)temp, which supports more. One possibility would be to change the BASE
handed to mktemp.



B) Files are not unlinked

Newer Windows support for FILE_FLAG_DELETE_ON_CLOSE; cf. CreateFile Function at
http://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx

See also http://msdn.microsoft.com/en-us/library/yeby3zcb%28v=VS.80%29.aspx for
D and _O_TEMPORARY in fopen and _wfopen.


However, in principle on exit libgfortran's
  static void __attribute__((destructor))
  cleanup (void)
should be called, which should delete files.


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread singler at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

--- Comment #12 from singler at gcc dot gnu.org singler at gcc dot gnu.org 
2011-01-24 17:07:40 UTC ---
Author: singler
Date: Mon Jan 24 17:07:35 2011
New Revision: 169171

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169171
Log:
2011-01-24  Johannes Singler  sing...@kit.edu

PR libstdc++/47433
* include/parallel/losertree.h
(_LoserTree::__delete_min_insert):
Do not qualify swap with std:: for value type, 
but include a using directive instead.
(_LoserTreeUnguarded::__delete_min_insert): Likewise.
* include/parallel/balanced_quicksort.h (__qsb_divide):
Use std::iter_swap instead of std::swap.
(__qsb_local_sort_with_helping): Likewise.
* include/parallel/partition.h (__parallel_partition): 
Likewise. (__parallel_nth_element): Likewise.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/parallel/balanced_quicksort.h
trunk/libstdc++-v3/include/parallel/losertree.h
trunk/libstdc++-v3/include/parallel/partition.h


[Bug libstdc++/47433] libstdc++ parallel mode calls std::swap explicitely

2011-01-24 Thread singler at kit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

Johannes Singler singler at kit dot edu changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #13 from Johannes Singler singler at kit dot edu 2011-01-24 
17:10:05 UTC ---
Fixed in mainline.


[Bug target/47440] New: Use LCM for vzeroupper optimization

2011-01-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47440

   Summary: Use LCM for vzeroupper optimization
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


From:

http://gcc.gnu.org/ml/gcc-patches/2010-12/msg01923.html
http://gcc.gnu.org/ml/gcc-patches/2011-01/msg00967.html

LCM infrastructure (see lcm.c) is suggested for placing vzerouppers at
optimum points.  Targeting 4.7.


[Bug target/46519] Missing vzeroupper

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

--- Comment #8 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-01-24 
17:30:00 UTC ---
Author: hjl
Date: Mon Jan 24 17:29:58 2011
New Revision: 169173

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169173
Log:
Visit basic blocks using the work-list based algorithm.

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

PR target/46519
* config/i386/i386.c: Include sbitmap.h and fibheap.h.
(block_info): Add scanned and prev.
(move_or_delete_vzeroupper_2): Return if the basic block
has been scanned and the upper 128bit state is unchanged
from the last scan.
(move_or_delete_vzeroupper_1): Return true if the exit
state is changed.
(move_or_delete_vzeroupper): Visit basic blocks using the
work-list based algorithm based on vt_find_locations in
var-tracking.c.

* config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/t-i386


[Bug target/46519] Missing vzeroupper

2011-01-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46519

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

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

--- Comment #9 from H.J. Lu hjl.tools at gmail dot com 2011-01-24 17:30:59 
UTC ---
Fixed.


[Bug c++/47441] New: g++ Introduces Internal Compiler Error: Bus error during compilation

2011-01-24 Thread erkanbostanci at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47441

   Summary: g++ Introduces Internal Compiler Error: Bus error
during compilation
   Product: gcc
   Version: 4.4.5
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: erkanbosta...@gmail.com


Hello,

I am having this problem even when I am trying to compile a simple file such as
(I presented this to show that the problem is not a bug in my own code):

#include cstdlib
#include stdio.h

using namespace std;

int main(int argc, char** argv)
{
printf(hello\n);

return 0;
}

I have the following version for my g++ and operating system:

g++ version(g++ -v):
Using built-in specs.
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.4.4-14ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.4 --enable-shared --enable-multiarch
--enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic
--enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu
--target=i686-linux-gnu
Thread model: posix
gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) 


Operating system:
Ubuntu 10.10 - the Maverick Meerkat - released in October 2010

I did not give any options for building the compiler, it was there when I
reinstalled my system after a crash. I am using Solaris Studio 12.2 as the IDE
am using the GNU tools as the compiler.

The output of the compiler is as follows:

/usr/bin/make -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/erkan/SolStudioProjects/BugTest2'
/usr/bin/make  -f nbproject/Makefile-Debug.mk
dist/Debug/GNU-Linux-x86/bugtest2
make[2]: Entering directory `/home/erkan/SolStudioProjects/BugTest2'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
g++-c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o
build/Debug/GNU-Linux-x86/main.o main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:21: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.
make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
make[2]: Leaving directory `/home/erkan/SolStudioProjects/BugTest2'
make[1]: Leaving directory `/home/erkan/SolStudioProjects/BugTest2'

BUILD FAILED (exit value 2, total time: 14s)

I would be grateful if you could solve this problem as soon as possible or show
me a way to get around this as time is extremely important for my current task.

Regards.


[Bug c++/47429] -Wfatal-errors hiding line number of offending caller

2011-01-24 Thread navin.kumar at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47429

--- Comment #3 from Navin Kumar navin.kumar at gmail dot com 2011-01-24 
17:42:03 UTC ---
Wouldn't the simple fix be to make it a note() that 'int Blah::test' is private
and the error() be the caller's attempt to use it?


[Bug c++/47429] -Wfatal-errors hiding line number of offending caller

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

--- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-01-24 
17:55:29 UTC ---
It is common in the C/C++ front-ends that error() is followed by one or more
notes() providing context, suggestions or more information. (That is, error:
within this context should be a note).

We could follow your proposal but I think it will change the output quite a bit
and make it more difficult to understand. There are other even more complex
cases, like printing template candidates, where there are multiple lines of
notes (which currently are multiple calls to inform()).


[Bug libffi/47442] New: does not build multilib on m68k

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

   Summary: does not build multilib on m68k
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libffi
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: j...@gcc.gnu.org


I am trying to build Go to target m68k-rtems.  This target builds multilib with
many variations.  There are multiple instructions in libffi/src/m68k/sysv.S
which are not supported in all CPU models.  The build currently fails for
-m68000 as the CPU model.

/users/joel/test-gcc/gcc-svn/libffi/src/m68k/sysv.S:88: Error: operands
mismatch -- statement `tst.l %a1' ignored
/users/joel/test-gcc/gcc-svn/libffi/src/m68k/sysv.S:106: Error: invalid
instruction for this architecture; needs 68020 [68k, 68ec020], 68030 [68ec030],
68040 [68ec040], 68060 [68ec060], cpu32 [68330, 68331, 68332, 68333, 68334,
68336, 68340, 68341, 68349, 68360], 547x [5470, 5471, 5472, 5473, 5474, 5475],
548x [5480, 5481, 5482, 5483, 5484, 5485] -- statement `fmove.s %fp0,(%a1)'
ignored
/users/joel/test-gcc/gcc-svn/libffi/src/m68k/sysv.S:112: Error: invalid
instruction for this architecture; needs 68020 [68k, 68ec020], 68030 [68ec030],
68040 [68ec040], 68060 [68ec060], cpu32 [68330, 68331, 68332, 68333, 68334,
68336, 68340, 68341, 68349, 68360], 547x [5470, 5471, 5472, 5473, 5474, 5475],
548x [5480, 5481, 5482, 5483, 5484, 5485] -- statement `fmove.d %fp0,(%a1)'
ignored
/users/joel/test-gcc/gcc-svn/libffi/src/m68k/sysv.S:118: Error: invalid
instruction for this architecture; needs M68K fpu (68020 [68k, 68ec020], 68030
[68ec030], 68040 [68ec040], 68060 [68ec060], cpu32 [68330, 68331, 68332, 68333,
68334, 68336, 68340, 68341, 68349, 68360]) -- statement `fmove.x %fp0,(%a1)'
ignored
/users/joel/test-gcc/gcc-svn/libffi/src/m68k/sysv.S:181: Error: invalid
instruction for this architecture; needs 68020 [68k, 68ec020], 68030 [68ec030],
68040 [68ec040], 68060 [68ec060], cpu32 [68330, 68331, 68332, 68333, 68334,
68336, 68340, 68341, 68349, 68360], 547x [5470, 5471, 5472, 5473, 5474, 5475],
548x [5480, 5481, 5482, 5483, 5484, 5485] -- statement `fmove.s (%a0),%fp0'
ignored


[Bug lto/45810] 40% slowdown when using LTO for a single-file program

2011-01-24 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45810

Jack Howarth howarth at nitro dot med.uc.edu changed:

   What|Removed |Added

 CC||howarth at nitro dot
   ||med.uc.edu

--- Comment #23 from Jack Howarth howarth at nitro dot med.uc.edu 2011-01-24 
17:58:00 UTC ---
(In reply to comment #22)

 That FRE pass should be after pass_sra_early (certainly after
 pass_build_ealias).

Index: gcc/passes.c
===
--- gcc/passes.c(revision 169145)
+++ gcc/passes.c(working copy)
@@ -767,6 +767,7 @@ init_optimization_passes (void)
  locals into SSA form if possible.  */
   NEXT_PASS (pass_build_ealias);
   NEXT_PASS (pass_sra_early);
+  NEXT_PASS (pass_fre);
   NEXT_PASS (pass_copy_prop);
   NEXT_PASS (pass_merge_phi);
   NEXT_PASS (pass_cd_dce);

gives Elapsed CPU time  = 8.43600E+00 for

gfortran -O3 -ffast-math -funroll-loops -flto -fwhole-program fatigue.f90 -o
fatigue

and Elapsed CPU time  = 4.16600E+00 for

gfortran -O3 -ffast-math -funroll-loops -finline-limit=250 --param
large-function-growth=250 -flto -fwhole-program fatigue.f90 -o fatigue


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

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
18:02:45 UTC ---
Not sure if it actually was so good idea to remove the edge conditions.
If the bb_predicate (first_edge-src) and bb_predicate (second_edge-src) are
negations of each other, then it is easy, similarly if one of the
first_edge-src
and second_edge-src bbs dominates the other one.
But if neither of those two bbs dominates the other one, then either we have
the edge conditions and can use condition bb_predicate (bb) together with one
(or the other) edge conditions, or we'd need to reconstruct both conditions (we
have them gimplified) and xor them together to see the actual difference in
between those and see in which one of the two conditions is the delta
contained.
How much memory savings did
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg02294.html
actually bring in?
Perhaps we wouldn't have to store the whole conditions into edge aux fields,
but instead just a boolean that would help find_phi_replacement_condition
choose which of the two conditions to use (or it could be stored as two bits in
the target bb's bb_predicate* structure).  All I wanted to say is that
especially with even far more complicated loops then this one reconstructing
which condition and bb to use in find_phi_replacement_condition is going to be
more difficult than finding it out earlier (during predicate_bbs most likely).


[Bug c++/47441] g++ Introduces Internal Compiler Error: Bus error during compilation

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

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-24 
18:06:31 UTC ---
(In reply to comment #0)
 g++-c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o
 build/Debug/GNU-Linux-x86/main.o main.cpp
 main.cpp: In function ‘int main(int, char**)’:
 main.cpp:21: internal compiler error: Bus error
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.

This bug should be reported to Ubuntu, following the instruction referred to
above, because GCC 4.4.5 doesn't have this problem for anyone else.


[Bug c++/47429] -Wfatal-errors hiding line number of offending caller

2011-01-24 Thread navin.kumar at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47429

--- Comment #5 from Navin Kumar navin.kumar at gmail dot com 2011-01-24 
18:07:45 UTC ---
Hmm.  I only need -Wfatal-errors because otherwise a small typo can cause
heavily templated code to go berserk and output 10,000 lines of errors. 
Perhaps a compromise is to have the ability to specify how many errors are
tolerated?  Instead of -Wfatal-errors that bombs on the first error, perhaps
-Wfatal-errors=5 that limits the output to 5 errors before failing?


[Bug c++/47429] -Wfatal-errors hiding line number of offending caller

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

--- Comment #6 from froydnj at codesourcery dot com froydnj at codesourcery 
dot com 2011-01-24 18:09:12 UTC ---
On Mon, Jan 24, 2011 at 06:07:50PM +, navin.kumar at gmail dot com wrote:
 Instead of -Wfatal-errors that bombs on the first error, perhaps
 -Wfatal-errors=5 that limits the output to 5 errors before failing?

See -fmax-errors, new in 4.6.


[Bug lto/45810] 40% slowdown when using LTO for a single-file program

2011-01-24 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45810

--- Comment #24 from Dominique d'Humieres dominiq at lps dot ens.fr 
2011-01-24 18:16:47 UTC ---
(In reply to comment #22)
 That FRE pass should be after pass_sra_early (certainly after
 pass_build_ealias).

Moving pass_fre after pass_sra_early does not fix the failures in the test
suite rported in comment #21.


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

2011-01-24 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47443

   Summary: [4.6 Regression] ICE: SSA name in freelist but still
referenced or SIGSEGV with -fstack-check=generic
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


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

I don't know how much is this related to PR47265


Compiler output:
$ gcc -O -fstack-check=generic testcase.c 
testcase.c: In function 'foo':
testcase.c:10:1: error: SSA name in freelist but still referenced
D.2689_3
testcase.c:3:3: note: in statement
D.2701_11 = D.2689_3  D.2702_10;

testcase.c:10:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


Backtrace for the error:
(gdb) bt
#0  error (gmsgid=0x1143688 SSA name in freelist but still referenced) at
/mnt/svn/gcc-trunk/gcc/diagnostic.c:747
#1  0x008e37e2 in verify_expr (tp=0x75d4b888,
walk_subtrees=0x7fffd64c, data=value optimized out)
at /mnt/svn/gcc-trunk/gcc/tree-cfg.c:2599
#2  0x00a651df in walk_tree_1 (tp=0x75d4b888, func=0x8e31c0
verify_expr, data=0x7fffd750, pset=0x0, lh=0)
at /mnt/svn/gcc-trunk/gcc/tree.c:10242
#3  0x0073f6ac in walk_gimple_op (stmt=0x75d4b840,
callback_op=0x8e31c0 verify_expr, wi=0x7fffd750)
at /mnt/svn/gcc-trunk/gcc/gimple.c:1362
#4  0x008eddf3 in verify_stmt () at
/mnt/svn/gcc-trunk/gcc/tree-cfg.c:4156
#5  verify_stmts () at /mnt/svn/gcc-trunk/gcc/tree-cfg.c:4382
#6  0x00a02a7d in verify_ssa (check_modified_stmt=1 '\001') at
/mnt/svn/gcc-trunk/gcc/tree-ssa.c:878
#7  0x007eeef9 in execute_function_todo (data=value optimized out) at
/mnt/svn/gcc-trunk/gcc/passes.c:1246
#8  0x007ef5ed in execute_todo (flags=34823) at
/mnt/svn/gcc-trunk/gcc/passes.c:1277
#9  0x007f1bdf in execute_one_pass (pass=0x160d000) at
/mnt/svn/gcc-trunk/gcc/passes.c:1585
#10 0x007f1ea5 in execute_pass_list (pass=0x160d000) at
/mnt/svn/gcc-trunk/gcc/passes.c:1617
#11 0x007f1eb7 in execute_pass_list (pass=0x160c940) at
/mnt/svn/gcc-trunk/gcc/passes.c:1618
#12 0x007f10ac in do_per_function_toporder (callback=0x7f1e90
execute_pass_list, data=0x160c880)
at /mnt/svn/gcc-trunk/gcc/passes.c:1148
#13 0x007f2346 in execute_ipa_pass_list (pass=0x160c9a0) at
/mnt/svn/gcc-trunk/gcc/passes.c:1934
#14 0x00afd391 in ipa_passes () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1725
#15 cgraph_optimize () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:1797
#16 0x00afd5ea in cgraph_finalize_compilation_unit () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1042
#17 0x0050585c in c_write_global_declarations () at
/mnt/svn/gcc-trunk/gcc/c-decl.c:9843
#18 0x008dd544 in compile_file (argc=14, argv=0x7fffdad8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:591
#19 do_compile (argc=14, argv=0x7fffdad8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1874
#20 toplev_main (argc=14, argv=0x7fffdad8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1937
#21 0x765f1bbd in __libc_start_main () from /lib/libc.so.6
#22 0x004ec455 in _start ()





Backtrace for the segfault:
Program received signal SIGSEGV, Segmentation fault.
0x0073efec in is_gimple_reg_type (t=0x75d4b478) at
/mnt/svn/gcc-trunk/gcc/gimple.c:2841
2841  return !AGGREGATE_TYPE_P (type);
(gdb) bt
#0  0x0073efec in is_gimple_reg_type (t=0x75d4b478) at
/mnt/svn/gcc-trunk/gcc/gimple.c:2841
#1  is_gimple_val (t=0x75d4b478) at /mnt/svn/gcc-trunk/gcc/gimple.c:2909
#2  0x008e577f in verify_gimple_assign_binary (stmt=value optimized
out) at /mnt/svn/gcc-trunk/gcc/tree-cfg.c:3361
#3  verify_gimple_assign (stmt=value optimized out) at
/mnt/svn/gcc-trunk/gcc/tree-cfg.c:3829
#4  verify_types_in_gimple_stmt (stmt=value optimized out) at
/mnt/svn/gcc-trunk/gcc/tree-cfg.c:3983
#5  0x008ede2f in verify_stmts () at
/mnt/svn/gcc-trunk/gcc/tree-cfg.c:4385
#6  0x00a02a7d in verify_ssa (check_modified_stmt=1 '\001') at
/mnt/svn/gcc-trunk/gcc/tree-ssa.c:878
#7  0x007eeef9 in execute_function_todo (data=value optimized out) at
/mnt/svn/gcc-trunk/gcc/passes.c:1246
#8  0x007ef5ed in execute_todo (flags=34823) at
/mnt/svn/gcc-trunk/gcc/passes.c:1277
#9  0x007f1bdf in execute_one_pass (pass=0x160d000) at
/mnt/svn/gcc-trunk/gcc/passes.c:1585
#10 0x007f1ea5 in execute_pass_list (pass=0x160d000) at
/mnt/svn/gcc-trunk/gcc/passes.c:1617
#11 0x007f1eb7 in execute_pass_list (pass=0x160c940) at
/mnt/svn/gcc-trunk/gcc/passes.c:1618
#12 0x007f10ac in do_per_function_toporder (callback=0x7f1e90

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

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

--- Comment #8 from Sebastian Pop spop at gcc dot gnu.org 2011-01-24 18:34:38 
UTC ---
The translation in predicate_all_scalar_phis assumes that the incoming
edges OR up to true: it translates a phi node

x = phi (y, z)

into

x = a ? y : z;

In the testcase of this PR, the conditions of the two edges is not
ORing up to true: we have something like this:

x = a ? y : x;
x = (!a and b) ? z : x;

this is because we have a CFG containing diamond shape, and the write
into x does not happen at every execution of the loop: (a and !b)
should not modify the value of x.

A possible solution is to filter out these cases in predicate_bbs.


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

2011-01-24 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47443

--- Comment #1 from Zdenek Sojka zsojka at seznam dot cz 2011-01-24 18:35:47 
UTC ---
Created attachment 23103
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23103
different crash

$ gcc -O -fstack-check=generic testcase2.c
testcase2.c: In function 'foo':
testcase2.c:13:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


It crashes at different place, but maybe it's the same problem:
Program received signal SIGSEGV, Segmentation fault.
0x00714225 in fold_comparison (loc=333, code=LT_EXPR,
type=0x77ed8498, op0=0x75d4b478, op1=0x75d4b898)
at /mnt/svn/gcc-trunk/gcc/fold-const.c:8587
8587  if (POINTER_TYPE_P (TREE_TYPE (arg0))
(gdb) bt
#0  0x00714225 in fold_comparison (loc=333, code=LT_EXPR,
type=0x77ed8498, op0=0x75d4b478, 
op1=0x75d4b898) at /mnt/svn/gcc-trunk/gcc/fold-const.c:8587
#1  0x006debf1 in fold_binary_loc (loc=333, code=LT_EXPR,
type=0x77ed8498, op0=0x75d4b478, 
op1=0x75d4b898) at /mnt/svn/gcc-trunk/gcc/fold-const.c:12708
#2  0x006f93a1 in fold_build2_stat_loc (loc=333, code=LT_EXPR,
type=0x77ed8498, op0=0x75d4b478, 
op1=0x75d4b898) at /mnt/svn/gcc-trunk/gcc/fold-const.c:13982
#3  0x00991baa in forward_propagate_into_gimple_cond
(stmt=0x75d3c460)
at /mnt/svn/gcc-trunk/gcc/tree-ssa-forwprop.c:422
#4  0x00991edd in tree_ssa_forward_propagate_single_use_vars () at
/mnt/svn/gcc-trunk/gcc/tree-ssa-forwprop.c:2085
#5  0x007f1ba6 in execute_one_pass (pass=0x160d000) at
/mnt/svn/gcc-trunk/gcc/passes.c:1562
#6  0x007f1ea5 in execute_pass_list (pass=0x160d000) at
/mnt/svn/gcc-trunk/gcc/passes.c:1617
#7  0x007f1eb7 in execute_pass_list (pass=0x160c940) at
/mnt/svn/gcc-trunk/gcc/passes.c:1618
#8  0x007f10ac in do_per_function_toporder (callback=0x7f1e90
execute_pass_list, data=0x160c880)
at /mnt/svn/gcc-trunk/gcc/passes.c:1148
#9  0x007f2346 in execute_ipa_pass_list (pass=0x160c9a0) at
/mnt/svn/gcc-trunk/gcc/passes.c:1934
#10 0x00afd391 in ipa_passes () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1725
#11 cgraph_optimize () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:1797
#12 0x00afd5ea in cgraph_finalize_compilation_unit () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1042
#13 0x0050585c in c_write_global_declarations () at
/mnt/svn/gcc-trunk/gcc/c-decl.c:9843
#14 0x008dd544 in compile_file (argc=14, argv=0x7fffdad8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:591
#15 do_compile (argc=14, argv=0x7fffdad8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1874
#16 toplev_main (argc=14, argv=0x7fffdad8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1937
#17 0x765f1bbd in __libc_start_main () from /lib/libc.so.6
#18 0x004ec455 in _start ()


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

2011-01-24 Thread eidletni at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47444

   Summary: False warning: array subscript is above array bounds
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: eidle...@mail.ru


Created attachment 23104
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23104
c++ code

$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/eid-letni/opt/gcc/libexec/gcc/i686-pc-linux-gnu/4.6.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../configure --prefix=/home/eid-letni/opt/gcc
--enable-languages=c,c++ : (reconfigured) ../configure
--prefix=/home/eid-letni/opt/gcc --enable-languages=c,c++,lto --no-create
--no-recursion
Thread model: posix
gcc version 4.6.0 20110124 (experimental) (GCC) 

$ uname -a
Linux eidletni 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010
i686 GNU/Linux

$ g++ -O3 -Wall -c a.ii

Warning in function bool f2(unsigned) :

bool f1();

struct A
{
bool b1;
bool b2;
A(unsigned i);
};

bool f2(unsigned i)
{
enum { SIZE = 2 };
if ( i=SIZE  f1() )
throw 1;
bool v[SIZE] = { 1, 1 };
return v[i];
}

A::A(unsigned i):
b1(f2(i)),
b2(f2(i))
{}

This warning is false, because constructor of struct A never called with bad
parameters.

Warning disappears if:
*) remove f1() call in if ( i=SIZE  f1() )
*) make return true instead of throw 1
*) inline struct A constructor, inline A::A(unsigned i)
*) make size of array bool v[] equal 1, enum { SIZE = 1 }


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

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

--- Comment #9 from Sebastian Pop spop at gcc dot gnu.org 2011-01-24 18:38:13 
UTC ---
Sorry, (!a and !b) should not modify the value of x.


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

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

--- Comment #2 from Benjamin Kosnik bkoz at gcc dot gnu.org 2011-01-24 
18:53:14 UTC ---

4) is not possible, as stdc++.h is included in precompiled/stdtr1c++.h and the
extension PCH. (ie, chained pches.) We don't want to re-order this, and build
stdtr1c++.h without stdc++.h, as then PCH file sizes for
stdtr1c++.h.gch/extc++.h.gch will balloon massively.

You can work around this with --disable-libstdcxx-pch at configure time for
PPC.

Long term solution IMHO is to make .gch files smaller.


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

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

--- Comment #10 from Sebastian Pop spop at gcc dot gnu.org 2011-01-24 
18:55:48 UTC ---
The BB of the phi node to be rewritten should post-dominate the BBs in which
the arguments of the phi node are defined.  The following gcc_assert will ICE
when the translation done in predicate_scalar_phi is unsafe:

diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index cc7ad8a..9a3e2b5 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -992,6 +992,7 @@ if_convertible_loop_p_1 (struct loop *loop,
 return false;

   calculate_dominance_info (CDI_DOMINATORS);
+  calculate_dominance_info (CDI_POST_DOMINATORS);

   /* Allow statements that can be handled during if-conversion.  */
   ifc_bbs = get_loop_body_in_if_conv_order (loop);
@@ -1244,6 +1245,15 @@ predicate_scalar_phi (gimple phi, tree cond,
   arg_1 = gimple_phi_arg_def (phi, 1);
 }

+  gcc_assert ((TREE_CODE (arg_0) != SSA_NAME
+   || dominated_by_p (CDI_POST_DOMINATORS,
+  gimple_bb (SSA_NAME_DEF_STMT (arg_0)),
+  bb))
+   (TREE_CODE (arg_1) != SSA_NAME
+  || dominated_by_p (CDI_POST_DOMINATORS,
+ gimple_bb (SSA_NAME_DEF_STMT (arg_1)),
+ bb)));
+
   /* Build new RHS using selected condition and arguments.  */
   rhs = build3 (COND_EXPR, TREE_TYPE (res),
 unshare_expr (cond), arg_0, arg_1);


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

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

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
19:19:44 UTC ---
Created attachment 23105
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23105
gcc46-pr47430-workaround.patch

This patch shows a sample implementation of 4) which seems to work just fine. 
It should have no effect on what is actually provided by the headers, just make
sure stdc++.gch/* isn't used during stdtr1c++.gch etc. compilation.

BTW, it surprises me that for -std=c++0x extc++.h doesn't include
bits/stdc++.h, I can understand why it doesn't include tr1 stuff in that case,
but I'd expect the standard stuff to be included nevertheless.


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

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

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
19:24:57 UTC ---
The
# iftmp.0_6 = PHI 3(5), 1(6)
PHI node certainly wouldn't trigger that assert, as it has non-SSA_NAMEs in
arguments, yet there is the same problem with building that condition.


[Bug target/43154] vec_mergel and vec_mergeh should support V2DF/V2DI

2011-01-24 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43154

Michael Meissner meissner at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #4 from Michael Meissner meissner at gcc dot gnu.org 2011-01-24 
19:52:28 UTC ---
Fixed on February 2, 2010.


[Bug libstdc++/47387] AIX ctype 'mask' override not working

2011-01-24 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47387

--- Comment #5 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-01-24 19:53:38 UTC ---
Author: paolo
Date: Mon Jan 24 19:53:35 2011
New Revision: 169178

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169178
Log:
2011-01-24  Graham Reed  gr...@pobox.com

PR libstdc++/47387
* config/os/aix/ctype_inline.h (ctypechar::is): Use _M_table if
provided.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/config/os/aix/ctype_inline.h


[Bug libstdc++/47387] AIX ctype 'mask' override not working

2011-01-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47387

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0
   Severity|minor   |normal

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-01-24 
19:54:58 UTC ---
Applied.


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

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

--- Comment #12 from Sebastian Pop spop at gcc dot gnu.org 2011-01-24 
19:57:40 UTC ---
Created attachment 23106
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23106
proposed fix

Thanks Jakub for thinking out a counter example, what about this fix?


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

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

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-24 
20:04:08 UTC ---
Can't loop-header have more than 2 predecessors without causing any problems?
Other than that it might work fine.


[Bug fortran/47445] New: testsuite/gfortran.dg/impure_1.f08 FAILs with -O -fno-omit-frame-pointer -fpeel-loops

2011-01-24 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47445

   Summary: testsuite/gfortran.dg/impure_1.f08 FAILs with -O
-fno-omit-frame-pointer -fpeel-loops
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


Created attachment 23107
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23107
reduced testcase (hopefully correctly)

Output:
$ gfortran -std=f2008 -fall-intrinsics -O -fno-omit-frame-pointer -fpeel-loops
impure_1.f08
$ ./a.out
Aborted

Tested revisions:
r169155 - fail
4.5 - can't compile


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

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

--- Comment #14 from Sebastian Pop spop at gcc dot gnu.org 2011-01-24 
20:14:55 UTC ---
Right, thanks for catching that:
I handled it only in the first place and not in the second:

  gcc_assert (bb == bb-loop_father-header
  || bb_postdominates_preds (bb));

I am seeing that this check is redundant, as just before calling
predicate_scalar_phi, we have:

  if (bb == loop-header)
continue;

As this is in a gcc_assert I don't mind the extra check, just to
make it more clear when somebody reads this code again.
If so, I will send the amended patch to gcc-patches.


  1   2   >