[Bug fortran/46896] [4.2/4.3/4.4/4.5/4.6 Regression] Wrong code with transpose(a) passed to subroutine

2010-12-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46896

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-12 
09:01:36 UTC ---
Copy quote from bug 468742 comment 12:

The solution is the same as for gfc_trans_arrayfunc_assign, where the same
issue can occur. Cf. PR 44582.


[Bug c/46899] compiler optimization

2010-12-12 Thread eskil at obsession dot se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

--- Comment #3 from Eskil Steenberg eskil at obsession dot se 2010-12-12 
09:09:54 UTC ---
Hi

 (In reply to comment #1)
 There is no integer overflow in the code provided at all.

Sorry it underflows. How about this:

void my_func(unsigned short a, unsigned short c)
{
unsigned int b;

b = a * c;



 Even if there was, the standard says the behavior is undefined which means
 anything can happen.

Yes, but the doesn't the C spec define the overflow as undefined, rather
then the entire program? The behavior is defined, just not by the C spec,
its defined by the hardware implementation. The compile time assumption
that nothing will ever overflow seams dangerous.

My problem is not that C has undefined behavior, but rather that gcc makes
assumptions about this behavior that _can_ turn out to be not true.

Cheers

E


[Bug testsuite/46895] FAIL: gcc.target/i386/max-stack-align.c

2010-12-12 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46895

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

  Component|middle-end  |testsuite

--- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2010-12-12 09:20:43 
UTC ---
This is 64bit specific test. See %rbp clobber.

Also, 8 input regs is a bit too much for 32bit targets.


[Bug testsuite/46895] FAIL: gcc.target/i386/max-stack-align.c

2010-12-12 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46895

--- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2010-12-12 09:30:35 
UTC ---
/* { dg-do compile } */
/* { dg-options -fomit-frame-pointer } */

#ifdef __x86_64__
# define BP_REG %rbp
#else
# define BP_REG %ebp
#endif

void foo (void)
{
  __asm__ volatile (  ::: BP_REG );
}


[Bug c/46899] compiler optimization

2010-12-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #4 from Andrew Pinski pinskia at gcc dot gnu.org 2010-12-12 
10:20:03 UTC ---
Sorry it underflows.

No, conversion does not have any overflow/underflow in it.

void my_func(unsigned short a, unsigned short c)
{
unsigned int b;

b = a * c;

There is no overflow here since this unsigned integers wrap and don't overflow.

 Yes, but the doesn't the C spec define the overflow as undefined, rather
 then the entire program?

No it is a runtime undefined behavior rather than the result being undefined.

 rather that gcc makes assumptions about this behavior that _can_ turn out to
 be not true.

But assumptions?  Since it is undefined behavior, it does not matter because
GCC can make different assumptions in when it feels like.

Unless you can give a testcase that does not depend on undefined behavior, it
is hard to prove GCC is doing something wrong.  -fwrapv can be used to define
signed integer overflow as wrapping.  

See http://gcc.gnu.org/onlinedocs/gcc-4.5.1/gcc/Integers-implementation.html
for how the conversion is implementation defined behavior:
 # The result of, or the signal raised by, converting an integer to a signed
 integer type when the value cannot be represented in an object of that type
 (C90 6.2.1.2, C99 6.3.1.3).
 For conversion to a type of width N, the value is reduced modulo 2^N to be 
 within range of the type; no signal is raised. 

Conversions are never causes an overflow rather it causes an implementation
defined behavior in some cases.


[Bug fortran/46900] New: 50% slowdown when linking with LTO in a single step

2010-12-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46900

   Summary: 50% slowdown when linking with LTO in a single step
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org


Cf. PR 44334 for another LTO slowdown. Cf.
http://gcc.gnu.org/ml/fortran/2010-12/msg00067.html


I had expected that doing the LTO linkage in one or in two steps is identical,
but seemingly it is not:

$ gfortran -fexternal-blas -flto -Ofast -march=native \
   test.f90 dgemm.f lsame.f xerbla.f
$ ./a.out 
 Time, MATMUL:1.4680910   53.480084765505403 
 dgemm:1.4720919   56.452265589399069


But if one first compiles and then links (w/ or w/o LTO), the programm is 47%
faster:

$ gfortran -fexternal-blas -Ofast -march=native \
   test.f90 dgemm.f lsame.f xerbla.f
 Time, MATMUL:1.0080630   53.480084765505403 
 dgemm:1.0200630   56.452265589399069 

$ gfortran -c -fexternal-blas -flto -Ofast -march=native \
  test.f90 dgemm.f lsame.f xerbla.f 
$ gfortran -flto -Ofast -march=native test.o dgemm.o lsame.o xerbla.o
$ ./a.out 
 Time, MATMUL:1.0080630   53.480084765505403 
 dgemm:1.0080630   56.452265589399069


(If one


[Bug middle-end/46900] 50% slowdown when linking with LTO in a single step

2010-12-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46900

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

  Component|fortran |middle-end

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-12 
10:33:09 UTC ---
(If one uses the libgfortran MATMUL (i.e. without -fexternal-matmul), the call
takes 1.7001060s)


[Bug middle-end/46900] 50% slowdown when linking with LTO in a single step

2010-12-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46900

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-12 
10:34:48 UTC ---
Created attachment 22722
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22722
Test case (tar.bz2). The .f files are from BLAS (taken from LAPACK 3.3)


[Bug middle-end/46900] [4.6 Regression] 50% slowdown when linking with LTO in a single step

2010-12-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46900

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0
Summary|50% slowdown when linking   |[4.6 Regression] 50%
   |with LTO in a single step   |slowdown when linking with
   ||LTO in a single step

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-12 
10:39:17 UTC ---
The linkage seems to be a regression. If I compile with GCC 4.5, I get for the
direct dgemm call the same performance if I link in a single step:

$ gfortran-4.5 -fexternal-blas -flto -O3 -ffast-math -march=native \
   test.f90 dgemm.f lsame.f xerbla.f 
$ ./a.out 
 Time, MATMUL:1.4160880   53.480084765505403 
 dgemm:1.0840679   56.452265589399069 

(I don't understand why the MATMUL part differs that much - it should call the
same BLAS function [via the same GCC 4.6 libgfortran.so wrapper] and LTO should
not affect it.)


[Bug c++/46901] New: Error message repeats itself

2010-12-12 Thread goeran at uddeborg dot se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46901

   Summary: Error message repeats itself
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: trivial
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: goe...@uddeborg.se


In convert_for_assignment in gcc/cp/typcheck.c there is a message

  target of conversion might be might be a candidate for a format attribute

There is one might be too many in there.


[Bug middle-end/46900] [4.6 Regression] 50% slowdown when linking with LTO in a single step

2010-12-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46900

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-12 
10:50:09 UTC ---
(In reply to comment #3)
 (I don't understand why the MATMUL part differs that much - it should call the
 same BLAS function [via the same GCC 4.6 libgfortran.so wrapper] and LTO 
 should
 not affect it.)

Seemingly, LTO is crucial for 4.5 - without LTO dgemm gets slower but the
libgfortran version gets faster:

$ gfortran-4.5 -fexternal-blas -O3 -ffast-math -march=native test.f90 dgemm.f
lsame.f xerbla.f  ./a.out
 Time, MATMUL:1.3200819   53.480084765505403 
 dgemm:1.3120821   56.452265589399069

$ gfortran-4.5 -c -flto -fexternal-blas -O3 -ffast-math -march=native test.f90
dgemm.f lsame.f xerbla.f 
$ gfortran-4.5 -flto -O3 -ffast-math -march=native test.o dgemm.o lsame.o
xerbla.o
$ ./a.out
 Time, MATMUL:1.3080810   53.480084765505403 
 dgemm:1.0800680   56.452265589399069 

Here, for GCC 4.5, one sees that for the direct call of dgemm, LTO improves the
performance - and doing a single step compilation+linkage or in two steps does
not matter.
However, also for GCC 4.5 the single-step pessimizes the performance of the
libgfortran MATMUL (which is a wrapper for dgemm).


[Bug c++/46901] Error message repeats itself

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46901

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.12.12 11:00:48
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
11:00:48 UTC ---
Right, I'll fix it momentarily.


[Bug c++/46901] Error message repeats itself

2010-12-12 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46901

--- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2010-12-12 11:21:22 UTC ---
Author: paolo
Date: Sun Dec 12 11:21:19 2010
New Revision: 167723

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167723
Log:
2010-12-12  Paolo Carlini  paolo.carl...@oracle.com

PR c++/46901
* typeck.c (convert_for_assignment): Fix typo in warning message.

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


[Bug c++/46901] Error message repeats itself

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46901

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
11:22:57 UTC ---
Done.


[Bug libstdc++/46869] FAIL: 20_util/enable_shared_from_this/cons/constexpr.cc scan-assembler-not _ZNSt23enable_shared_from_thisIiEC2Ev

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46869

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.12 11:38:37
 CC||bkoz at redhat dot com
 Ever Confirmed|0   |1

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
11:38:37 UTC ---
s390 shows similar problems:
http://gcc.gnu.org/ml/gcc-testresults/2010-12/msg01002.html

Benjamin, could you please double check whether something should be tweaked in
the dg-finals? Thanks.


[Bug c/46902] New: [4.6 Regression] gcc.dg/plugin/plugindir*.c gives ICEs on powerpc-apple-darwin9

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46902

   Summary: [4.6 Regression] gcc.dg/plugin/plugindir*.c gives ICEs
on powerpc-apple-darwin9
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: domi...@lps.ens.fr
CC: d...@redhat.com, i...@airs.com, jos...@codesourcery.com,
ia...@gcc.gnu.org
  Host: powerpc-apple-darwin9
Target: powerpc-apple-darwin9
 Build: powerpc-apple-darwin9


Between revisions 166379 and 166752 on my logs the following failures in the
test suite appeared on powerpc-apple-darwin9 with both -m32 and -m64:

FAIL: gcc.dg/plugin/plugindir1.c (internal compiler error)
FAIL: gcc.dg/plugin/plugindir1.c (test for excess errors)
FAIL: gcc.dg/plugin/plugindir2.c (internal compiler error)
FAIL: gcc.dg/plugin/plugindir2.c (test for excess errors)
FAIL: gcc.dg/plugin/plugindir3.c (internal compiler error)
FAIL: gcc.dg/plugin/plugindir3.c (test for excess errors)
FAIL: gcc.dg/plugin/plugindir4.c (internal compiler error)
FAIL: gcc.dg/plugin/plugindir4.c (test for excess errors)

Reduced range from regress: revision 166543 works, revision 166589 fails, see:
http://gcc.gnu.org/ml/gcc-testresults/2010-11/msg00831.html
http://gcc.gnu.org/ml/gcc-testresults/2010-11/msg00875.html
Without better knowledge, revisions 166544, 166552, 16653, 166555, 166565, and
166570 could be candidates (no guarantee about an exhaustive list!-).

These failures are due to ICEs during the compilation

[karma] f90/bug% /opt/gcc/gcc4.6w/bin/gcc -c -fplugin=foo
/opt/gcc/gcc-4.6-work/gcc/testsuite/gcc.dg/plugin/plugindir1.c
[address=fffc pc=94afe928]
cc1: internal compiler error: Segmentation Fault

The backtrace is

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xfffc
0x94afe928 in strlen ()
(gdb) bt
#0  0x94afe928 in strlen ()
#1  0x008b6414 in concat (first=0x Address 0x out of bounds)
at ../../gcc-4.6-work/libiberty/concat.c:76
#2  0x0051e660 in add_new_plugin (plugin_name=0xbfffdac2 foo) at
../../gcc-4.6-work/gcc/plugin.c:157
#3  0x00515888 in handle_common_deferred_options () at
../../gcc-4.6-work/gcc/opts-global.c:385
#4  0x005e3844 in toplev_main (argc=3, argv=0x) at
../../gcc-4.6-work/gcc/toplev.c:1923
#5  0x2560 in start ()

This PR seems different from pr43759.


[Bug testsuite/43759] The tests gcc.dg/plugindir*.c should be restricted to builds configured with --enable-plugin

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43759

--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr 2010-12-12 
11:53:15 UTC ---
See also pr46902 for other failures of gcc.dg/plugindir*.c.


[Bug libffi/42378] cls_*double_va.c failures on powerpc-apple-darwin9

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42378

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2010-12-12 
11:55:48 UTC ---
Among other benefits, this PR is fixed by the patch in
http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00804.html .

Thanks!-)


[Bug libffi/29152] 64-bit darwin ppc port needed for libffi

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29152

--- Comment #7 from Dominique d'Humieres dominiq at lps dot ens.fr 2010-12-12 
11:58:49 UTC ---
Fixed by the patch in http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00804.html.


[Bug c++/46903] New: [C++0x] ICE unexpected expression of kind template_id_expr

2010-12-12 Thread rubidium at openttd dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46903

   Summary: [C++0x] ICE unexpected expression of kind
template_id_expr
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: rubid...@openttd.org


Created attachment 22723
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22723
Test case, compile with C++0x.

The attached test case fails with an ICE:
test.ii:6:18: internal compiler error: unexpected expression ‘CreateAA’ of
kind template_id_expr

Using: g++-trunk -std=gnu++0x test.ii
With g++-trunk (GCC) 4.6.0 20101211 (experimental) (revision 167723)

It compiles fine with gcc 4.5.1, 4.4.5 and 4.3.5.


[Bug c/46902] [4.6 Regression] gcc.dg/plugin/plugindir*.c gives ICEs on powerpc-apple-darwin9

2010-12-12 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46902

--- Comment #1 from Iain Sandoe iains at gcc dot gnu.org 2010-12-12 12:26:44 
UTC ---

this commit triggers the bug..

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


[Bug c/46899] compiler optimization

2010-12-12 Thread eskil at obsession dot se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

--- Comment #5 from Eskil Steenberg eskil at obsession dot se 2010-12-12 
12:30:15 UTC ---
Hi

void my_func(unsigned short a, unsigned short c)
{
unsigned int b;

b = a * c;

 There is no overflow here since this unsigned integers wrap and don't
 overflow.

Yes there is since a and c are promoted to signed ints and thats where the
multiplication takes place, before they are converted to an unsigned int.

A max unsigned short times a max unsigned short will overflow a signed
int. (given a 32 bit system at least)

 Yes, but the doesn't the C spec define the overflow as undefined, rather
 then the entire program?

 No it is a runtime undefined behavior rather than the result being
 undefined.

So how can the compiler make a compile time assumption about the outcome
of the behavior since it is undefined at compile time?

 rather that gcc makes assumptions about this behavior that _can_ turn
 out to
 be not true.

 But assumptions?  Since it is undefined behavior, it does not matter
 because GCC can make different assumptions in when it feels like.

Could you clarify this statement?

 Unless you can give a testcase that does not depend on undefined behavior,
 it is hard to prove GCC is doing something wrong.

The very problem I'm addressing is how gcc deals with this, at compile
time, undefined behavior.

Cheers

E


[Bug c++/46903] [4.6 Regression][C++0x] ICE unexpected expression of kind template_id_expr

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46903

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.12 12:33:44
 CC||jason at gcc dot gnu.org
   Target Milestone|--- |4.6.0
Summary|[C++0x] ICE unexpected  |[4.6 Regression][C++0x] ICE
   |expression of kind  |unexpected expression of
   |template_id_expr|kind template_id_expr
 Ever Confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
12:33:44 UTC ---
Looks like a regression.


[Bug c++/46904] New: [4.6 Regression] g++.dg/tree-prof/(indir-call-prof.C|inline_mismatch_args.C) fail on powerpc-apple-darwin9

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46904

   Summary: [4.6 Regression]
g++.dg/tree-prof/(indir-call-prof.C|inline_mismatch_ar
gs.C) fail on powerpc-apple-darwin9
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: domi...@lps.ens.fr
CC: ia...@gcc.gnu.org
  Host: powerpc-apple-darwin9
Target: powerpc-apple-darwin9
 Build: powerpc-apple-darwin9


On powerpc-apple-darwin9 with both -m32/64, between revisions 167074 and 167096
the following failures appeared (see 
http://gcc.gnu.org/ml/gcc-testresults/2010-11/msg01969.html
http://gcc.gnu.org/ml/gcc-testresults/2010-11/msg02001.html ):

FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -g  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/indir-call-prof.C execution,-g  -fprofile-use
FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -O0  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/indir-call-prof.C execution,-O0  -fprofile-use
FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -O1  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/indir-call-prof.C execution,-O1  -fprofile-use
FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -O2  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/indir-call-prof.C execution,-O2  -fprofile-use
FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -O3  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/indir-call-prof.C execution,-O3  -fprofile-use
FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -O3 -g  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/indir-call-prof.C execution,-O3 -g 
-fprofile-use
FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -Os  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/indir-call-prof.C execution,-Os  -fprofile-use
FAIL: g++.dg/tree-prof/inline_mismatch_args.C compilation,  -g  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/inline_mismatch_args.C execution,-g 
-fprofile-use
FAIL: g++.dg/tree-prof/inline_mismatch_args.C compilation,  -O0  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/inline_mismatch_args.C execution,-O0 
-fprofile-use
FAIL: g++.dg/tree-prof/inline_mismatch_args.C compilation,  -O1  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/inline_mismatch_args.C execution,-O1 
-fprofile-use
FAIL: g++.dg/tree-prof/inline_mismatch_args.C compilation,  -O2  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/inline_mismatch_args.C execution,-O2 
-fprofile-use
FAIL: g++.dg/tree-prof/inline_mismatch_args.C compilation,  -O3  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/inline_mismatch_args.C execution,-O3 
-fprofile-use
FAIL: g++.dg/tree-prof/inline_mismatch_args.C compilation,  -O3 -g 
-fprofile-use
UNRESOLVED: g++.dg/tree-prof/inline_mismatch_args.C execution,-O3 -g 
-fprofile-use
FAIL: g++.dg/tree-prof/inline_mismatch_args.C compilation,  -Os  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/inline_mismatch_args.C execution,-Os 
-fprofile-use

The failures are
Executing on host: /opt/gcc/darwin_buildw/gcc/testsuite/g++/../../g++
-B/opt/gcc/darwin_buildw/gcc/testsuite/g++/../../
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C 
-nostdinc++
-I/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/include/powerpc-apple-darwin9
-I/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/include
-I/opt/gcc/gcc-4.6-work/libstdc++-v3/libsupc++
-I/opt/gcc/gcc-4.6-work/libstdc++-v3/include/backward
-I/opt/gcc/gcc-4.6-work/libstdc++-v3/testsuite/util -fmessage-length=0  -O0 
-O2 -fdump-tree-optimized -fdump-ipa-tree_profile_ipa -fprofile-use   
-L/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/src/.libs 
-B/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/src/.libs 
-L/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/src/.libs
-L/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libiberty 
-multiply_defined suppress -lm   -m64 -o
/opt/gcc/darwin_buildw/gcc/testsuite/g++/indir-call-prof.x12(timeout = 300)
/var/tmp//ccMopaCO.s:6:FATAL:symbol: __ZN1A2AAEv can't be a weak_definition
(currently only supported in section of type coalesced)
compiler exited with status 1

Executing on host: /opt/gcc/darwin_buildw/gcc/testsuite/g++/../../g++
-B/opt/gcc/darwin_buildw/gcc/testsuite/g++/../../
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/tree-prof/inline_mismatch_args.C 
-nostdinc++
-I/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/include/powerpc-apple-darwin9
-I/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/include
-I/opt/gcc/gcc-4.6-work/libstdc++-v3/libsupc++
-I/opt/gcc/gcc-4.6-work/libstdc++-v3/include/backward
-I/opt/gcc/gcc-4.6-work/libstdc++-v3/testsuite/util -fmessage-length=0  -g  -O2
-fdump-tree-einline -fprofile-use   
-L/opt/gcc/darwin_buildw/powerpc-apple-darwin9/ppc64/libstdc++-v3/src/.libs 

[Bug lto/46905] New: -flto -fno-lto does not disable lto

2010-12-12 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46905

   Summary: -flto -fno-lto does not disable lto
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: andi-...@firstfloor.org


gcc -flto -fno-lto hello.c generates LTO objects. It should not.

In large makefiles it's often convenient to use -fno... to disable
something for only specific files.


[Bug fortran/31821] character pointer = target(range) should detect if lengths don't match

2010-12-12 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31821

--- Comment #7 from Thomas Koenig tkoenig at gcc dot gnu.org 2010-12-12 
13:58:15 UTC ---
Created attachment 22724
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22724
patch which causes regressions


[Bug target/46179] Codegen/TLS: invalid assembler syntax

2010-12-12 Thread schwab at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46179

--- Comment #11 from Andreas Schwab schwab at gcc dot gnu.org 2010-12-12 
14:03:59 UTC ---
Author: schwab
Date: Sun Dec 12 14:03:55 2010
New Revision: 167724

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167724
Log:
Author: Finn Thain fth...@telegraphics.com.au

PR target/46179
* gcc/config/m68k/m68k.c (handle_move_double): Insert calls to
m68k_final_prescan_insn to clean up @TLS operand syntax.

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


[Bug target/46179] Codegen/TLS: invalid assembler syntax

2010-12-12 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46179

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

   What|Removed |Added

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

--- Comment #12 from Andreas Schwab sch...@linux-m68k.org 2010-12-12 14:08:48 
UTC ---
Fixed.


[Bug fortran/31821] character pointer = target(range) should detect if lengths don't match

2010-12-12 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31821

--- Comment #8 from Thomas Koenig tkoenig at gcc dot gnu.org 2010-12-12 
14:09:12 UTC ---
The patch in comment#7 causes a regression in

program gfcbug33
  character(12) :: a(2)
  a(1) = abcdefghijkl
  a(2) = mnopqrstuvwx
  call foo ((a(2:1:-1)(6:)))
contains
  subroutine foo (chr)
character(7) :: chr(:)
print *,'X',chr(1),'Y'
print *,'A',chr(2),'B'
if (chr(1)//chr(2) .ne. rstuvwxfghijkl) call abort ()
  end subroutine foo
end program gfcbug33
i...@linux-fd1f:~/Krempel/Char gfortran short_1.f90
i...@linux-fd1f:~/Krempel/Char ./a.out
 XrstuvwxY
 A%�2�fgB
Abgebrochen

which is a shortened version of actual_array_substr_1.f90.

The part of the patch

- if (substring)
-   primary-ts.u.cl = NULL;
-

opens a can of worms of wrong-code and rejects-valid bugs...


[Bug lto/46905] -flto -fno-lto does not disable lto

2010-12-12 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46905

--- Comment #1 from Andi Kleen andi-gcc at firstfloor dot org 2010-12-12 
14:19:00 UTC ---
Same bug seems to be in the code generating phase

gcc -O2 -flto -fno-lto object.o

does code generation even if object.o has fallback code


[Bug fortran/46896] [4.2/4.3/4.4/4.5/4.6 Regression] Wrong code with transpose(a) passed to subroutine

2010-12-12 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46896

--- Comment #5 from Mikael Morin mikael at gcc dot gnu.org 2010-12-12 
14:58:18 UTC ---
Created attachment 22725
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22725
Starting point patch

This passes gfortran.dg/*transpose*


[Bug fortran/46896] [4.2/4.3/4.4/4.5/4.6 Regression] Wrong code with transpose(a) passed to subroutine

2010-12-12 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46896

Mikael Morin mikael at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mikael at gcc dot gnu.org

--- Comment #6 from Mikael Morin mikael at gcc dot gnu.org 2010-12-12 
15:04:03 UTC ---
For the cases to be discarded from optimization, the patch above reuses
pr44582's code blindly, hoping it's correct.


[Bug libstdc++/46906] New: istreambuf_iterator is late?

2010-12-12 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46906

   Summary: istreambuf_iterator is late?
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: marc.gli...@normalesup.org


The following program prints:
11
12
32

With some other libraries I get 11 22 33 (but libstdc++ is not the only one
that outputs 11 12 32).

As far as I understand the standard, operator++ and operator* should just call
sbumpc and sgetc on the underlying streambuf, which happens to be the same for
the two iterators. It looks like the iterator caches the result somehow. Am I
missing some provision for this in the standard?


#include ios
#include istream
#include sstream
#include iostream

using namespace std;
int main(){
istringstream s(1234);
istreambuf_iteratorchar i1(s);
istreambuf_iteratorchar i2(i1);
std::cerr  *i1  *i2  '\n';
++i2;
std::cerr  *i1  *i2  '\n';
++i1;
std::cerr  *i1  *i2  '\n';
}


[Bug c/46907] New: printf width not properly working for negative numbers which are variables

2010-12-12 Thread adrian.hawryluk at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46907

   Summary: printf width not properly working for negative numbers
which are variables
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: adrian.hawry...@gmail.com
  Host: Windows XP SP2
Target: mingw32
 Build: 4.5.0


#include stdio.h
#include math.h

int main()
{
char a = 0x7f;
printf(%02x , 0x80);
printf(%02x , (char)0x80);
printf(%02x , a + 1);
printf(%02x , ++a);
printf(%02x , a);
return 0;
}

Result:
80 ff80 80 ff80 ff80

Given this test, it looks like it might have to do with promotion to an int (or
is it long?), which is fine, except that I used the width to stop this problem
from happening.  Looks sketchy.

C:\gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.5.0/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.5.0/configure
--enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions
--with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry
--enable-libstdcxx-debug --enable-version-specific-runtime-libs
--disable-werror --build=mingw32 --prefix=/mingw

Thread model: win32
gcc version 4.5.0 (GCC)

--
A


[Bug target/46770] Replace .ctors/.dtors with .init_array/.fini_array on targets supporting them

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770

--- Comment #45 from H.J. Lu hjl.tools at gmail dot com 2010-12-12 15:54:16 
UTC ---
Since init_priority is global, I will work on binutils
to allow mixing .ctors and .init_array.


[Bug c/46908] New: printf not handling printing of double correctly in certain cases

2010-12-12 Thread adrian.hawryluk at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46908

   Summary: printf not handling printing of double correctly in
certain cases
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: adrian.hawry...@gmail.com
  Host: Windows XP SP2
Target: mingw32
 Build: 4.5.0


This is a weird one.  Under different compile options, it does it wrong in
different ways. :)

#include stdio.h
#include math.h
void printld(long double* pld)
{
int i;
printf(*%p = , pld);
for (i = 0; i  sizeof(long double); ++i) {
printf(%02x , ((unsigned char*)pld)[i]);
}
printf(\n);
}

int main()
{
long double number1 = 1.0;
long double number2 = 1.0;

printf (%lf, %lf\n, number1, number2);

printf (Enter number1: );
scanf (%lf, number1);
printf (Enter number2: );
scanf (%lf, number2);

printf (%lf, %lf\n, number1, number2);
printf (%lf, %lf\n, number1, number1);

printld(number1);
printld(number2);
return 0;
}

C:\tmpgcc -o tmp.exe file.c

C:\tmptmp
0.00, 0.00
Enter number1: 3
Enter number2: 4
3.00, 0.00
3.00, 0.00
*0022FF30 = 00 00 00 00 00 00 08 40 ff 3f 00 00
*0022FF20 = 00 00 00 00 00 00 10 40 ff 3f 00 00

C:\tmpgcc -std=c99 -o tmp.exe file.c

C:\tmptmp
1.00, 1.00
Enter number1: 3
Enter number2: 4
0.00, 0.00
0.00, 0.00
*0022ff30 = 00 00 00 00 00 00 08 40 ff 3f 00 00
*0022ff20 = 00 00 00 00 00 00 10 40 ff 3f 00 00

There was even a way of printing the same variable (number1) twice on a line
and it would output it twice.  That is why I had put in:

  printf (%lf, %lf\n, number1, number1);

as a test, but it didn't show up in this test code.

C:\tmpgcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.5.0/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.5.0/configure
--enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions
--with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry
--enable-libstdcxx-debug --enable-version-specific-runtime-libs
--disable-werror --build=mingw32 --prefix=/mingw

Thread model: win32
gcc version 4.5.0 (GCC)
--
A


[Bug middle-end/46909] New: [4.6 Regression] elf32-i386.c and elf64-x86-64.c in binutils are miscompiled

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

   Summary: [4.6 Regression] elf32-i386.c and elf64-x86-64.c in
binutils are miscompiled
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


GCC 4.6 revision 167711 miscompiles elf32-i386.c and elf64-x86-64.c
in binutils.  I got

FAIL: TLS descriptor -fpic -shared transitions
FAIL: TLS with global dynamic and descriptors

for both i386 and x86-64 TLS tests with error like:

/export/build/gnu/binutils/build-x86_64-linux/ld/../binutils/objdump -drj.text
tmpdir/libtlsdesc.so
regexp_diff match failure
regexp ^ [0-9a-f]+:81 c3 9a 13 00 00[ ]+add\$0x[0-9a-f]+,%ebx$
line2df:81 c3 ae 13 00 00add$0x13ae,%ebx
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 f8 ff ff ff[ ]+mov-0x8\(%ebx\),%eax$
line2f5:8b 83 f4 ff ff ffmov-0xc(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 c4 ff ff ff[ ]+mov-0x3c\(%ebx\),%eax$
line301:8b 83 bc ff ff ffmov-0x44(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 d4 ff ff ff[ ]+mov-0x2c\(%ebx\),%eax$
line30d:8b 83 cc ff ff ffmov-0x34(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 b0 ff ff ff[ ]+mov-0x50\(%ebx\),%eax$
line325:8b 83 a0 ff ff ffmov-0x60(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 b4 ff ff ff[ ]+mov-0x4c\(%ebx\),%eax$
line331:8b 83 a4 ff ff ffmov-0x5c(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 bc ff ff ff[ ]+mov-0x44\(%ebx\),%eax$
line33d:8b 83 ac ff ff ffmov-0x54(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 c8 ff ff ff[ ]+mov-0x38\(%ebx\),%eax$
line361:8b 83 c0 ff ff ffmov-0x40(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 e8 ff ff ff[ ]+mov-0x18\(%ebx\),%eax$
line36d:8b 83 e4 ff ff ffmov-0x1c(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 cc ff ff ff[ ]+mov-0x34\(%ebx\),%eax$
line385:8b 83 c4 ff ff ffmov-0x3c(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 ec ff ff ff[ ]+mov-0x14\(%ebx\),%eax$
line391:8b 83 e8 ff ff ffmov-0x18(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:8b 83 e0 ff ff ff[ ]+mov-0x20\(%ebx\),%eax$
line39d:8b 83 d8 ff ff ffmov-0x28(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:2b 8b f8 ff ff ff[ ]+sub-0x8\(%ebx\),%ecx$
line3f0:2b 8b f4 ff ff ffsub-0xc(%ebx),%ecx
regexp_diff match failure
regexp ^ [0-9a-f]+:2b 83 d0 ff ff ff[ ]+sub-0x30\(%ebx\),%eax$
line402:2b 83 c8 ff ff ffsub-0x38(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:03 8b c4 ff ff ff[ ]+add-0x3c\(%ebx\),%ecx$
line415:03 8b bc ff ff ffadd-0x44(%ebx),%ecx
regexp_diff match failure
regexp ^ [0-9a-f]+:03 83 d4 ff ff ff[ ]+add-0x2c\(%ebx\),%eax$
line427:03 83 cc ff ff ffadd-0x34(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:2b 8b b0 ff ff ff[ ]+sub-0x50\(%ebx\),%ecx$
line43a:2b 8b a0 ff ff ffsub-0x60(%ebx),%ecx
regexp_diff match failure
regexp ^ [0-9a-f]+:2b 83 b8 ff ff ff[ ]+sub-0x48\(%ebx\),%eax$
line44c:2b 83 a8 ff ff ffsub-0x58(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:03 8b b4 ff ff ff[ ]+add-0x4c\(%ebx\),%ecx$
line45f:03 8b a4 ff ff ffadd-0x5c(%ebx),%ecx
regexp_diff match failure
regexp ^ [0-9a-f]+:03 83 bc ff ff ff[ ]+add-0x44\(%ebx\),%eax$
line471:03 83 ac ff ff ffadd-0x54(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:2b 83 e4 ff ff ff[ ]+sub-0x1c\(%ebx\),%eax$
line496:2b 83 e0 ff ff ffsub-0x20(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:03 8b c8 ff ff ff[ ]+add-0x38\(%ebx\),%ecx$
line4a9:03 8b c0 ff ff ffadd-0x40(%ebx),%ecx
regexp_diff match failure
regexp ^ [0-9a-f]+:03 83 e8 ff ff ff[ ]+add-0x18\(%ebx\),%eax$
line4bb:03 83 e4 ff ff ffadd-0x1c(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:2b 8b cc ff ff ff[ ]+sub-0x34\(%ebx\),%ecx$
line4ce:2b 8b c4 ff ff ffsub-0x3c(%ebx),%ecx
regexp_diff match failure
regexp ^ [0-9a-f]+:2b 83 dc ff ff ff[ ]+sub-0x24\(%ebx\),%eax$
line4e0:2b 83 d4 ff ff ffsub-0x2c(%ebx),%eax
regexp_diff match failure
regexp ^ [0-9a-f]+:03 8b ec ff ff ff[ ]+add-0x14\(%ebx\),%ecx$

[Bug fortran/46896] [4.2/4.3/4.4/4.5/4.6 Regression] Wrong code with transpose(a) passed to subroutine

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46896

--- Comment #7 from Dominique d'Humieres dominiq at lps dot ens.fr 2010-12-12 
16:37:48 UTC ---
The patch in comment #5 fixes this PR, but the tests in pr41278, pr44912, and
the variant below of pr40646 yields ICEs:

in proc_call_can_redefine_sym, at fortran/trans-expr.c:5411 for (variant of
pr40646 and pr44912)
or pr41278.f90:10:0: internal compiler error: Segmentation fault.

! { dg-do run }
!
! PR 40646
!
! array-valued PPCs
!
! Original test case by Charlie Sharpsteen ch...@sharpsteen.net
! Modified by Janus Weil ja...@gcc.gnu.org

module bugTestMod
  implicit none
  type:: boundTest
procedure(returnMat), pointer, nopass:: test
  end type boundTest
contains
  function returnMat( a, b ) result( mat )
integer:: a, b
double precision, dimension(a,b):: mat 
mat = 1d0
  end function returnMat
end module bugTestMod

program bugTest
  use bugTestMod
  implicit none
  type( boundTest ):: testObj
  double precision, dimension(2,2):: testCatch
  testObj%test = returnMat
  testCatch = testObj%test(2,2)
  print *,testCatch
  if (sum(testCatch)/=4) call abort()
end program bugTest

! { dg-final { cleanup-modules bugTestMod } }


[Bug c/46907] printf width not properly working for negative numbers which are variables

2010-12-12 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46907

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

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Andreas Schwab sch...@linux-m68k.org 2010-12-12 16:48:42 
UTC ---
The width in the format string is a minimum width.


[Bug libstdc++/46910] New: std::shared_ptr requires public destructor for a class with friend deleter

2010-12-12 Thread gccbugzilla at virginmedia dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46910

   Summary: std::shared_ptr requires public destructor for a class
with friend deleter
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: gccbugzi...@virginmedia.com


Created attachment 22726
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22726
Code example and compiler output

class TestA
{
public:
  static std::shared_ptrTestA CreateTestA();

private:
  TestA();
  ~TestA();

private:
  class Deleter;
  friend class Deleter;

};

class TestA::Deleter
{
public:
  void operator()( TestA * p)
  {
std::cout  Deleting TestA\n;
delete p;
  }
};

std::shared_ptrTestA TestA::CreateTestA()
{
  return std::shared_ptrTestA(
new TestA(),
TestA::Deleter()
);
}
will not compile:
error: ‘TestA::~TestA()’ is private

The boost shared_ptr works OK.


[Bug c/46908] printf not handling printing of double correctly in certain cases

2010-12-12 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46908

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

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Andreas Schwab sch...@linux-m68k.org 2010-12-12 16:51:28 
UTC ---
l has no effect on %f.


[Bug libstdc++/46910] std::shared_ptr requires public destructor for a class with friend deleter

2010-12-12 Thread gccbugzilla at virginmedia dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46910

--- Comment #1 from Sam gccbugzilla at virginmedia dot com 2010-12-12 
16:54:01 UTC ---
gcc 4.5.1 and test code built on
Linux 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 02:41:37 UTC 2010 x86_64
GNU/Linux


[Bug lto/46911] New: [4.6 Regression] ICE: SIGSEGV in add_name_and_src_coords_attributes (dwarf2out.c:17792) with -flto -g

2010-12-12 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46911

   Summary: [4.6 Regression] ICE: SIGSEGV in
add_name_and_src_coords_attributes (dwarf2out.c:17792)
with -flto -g
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


- testcase.f -
  common/main1/ eps(2)
  call dalie6s(iqmod6,1,wx,cor6d)
  end
--
reduced from gfortran.dg/lto/20091015-1_2.f

Compiler output:
$ gfortran -O -finline-small-functions -flto -g testcase.f -r -nostdlib
==5279== Invalid read of size 2
==5279==at 0x5C75BC: add_name_and_src_coords_attributes (dwarf2out.c:17792)
==5279==by 0x5D8104: gen_variable_die (dwarf2out.c:19400)
==5279==by 0x5DCF14: gen_decl_die (dwarf2out.c:20981)
==5279==by 0x5DA34A: decls_for_scope (dwarf2out.c:20555)
==5279==by 0x5DF38B: gen_block_die (dwarf2out.c:19669)
==5279==by 0x5DA37D: decls_for_scope (dwarf2out.c:20567)
==5279==by 0x5DF582: gen_block_die (dwarf2out.c:19701)
==5279==by 0x5DA37D: decls_for_scope (dwarf2out.c:20567)
==5279==by 0x5DA8FF: gen_subprogram_die (dwarf2out.c:19277)
==5279==by 0x5DCDA2: gen_decl_die (dwarf2out.c:20914)
==5279==by 0x5E00E8: dwarf2out_function_decl (dwarf2out.c:21296)
==5279==by 0x638FCC: rest_of_handle_final (final.c:4286)
==5279==by 0x771ADE: execute_one_pass (passes.c:1553)
==5279==by 0x771DA4: execute_pass_list (passes.c:1608)
==5279==by 0x771DB6: execute_pass_list (passes.c:1609)
==5279==by 0x771DB6: execute_pass_list (passes.c:1609)
==5279==by 0x8B2605: tree_rest_of_compilation (tree-optimize.c:422)
==5279==by 0xA77EB1: cgraph_expand_function (cgraphunit.c:1508)
==5279==by 0xA7A489: cgraph_optimize (cgraphunit.c:1567)
==5279==by 0x4FF78E: lto_main (lto.c:2453)
==5279==by 0x85BDE7: toplev_main (toplev.c:579)
==5279==by 0x6369BBC: (below main) (in /lib64/libc-2.11.2.so)
==5279==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==5279== 
In file included from :0:0:
testcase.f: In function 'main':
testcase.f:3:0: 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.
lto-wrapper:
/mnt/svn/gcc-trunk/binary-167643-lto-fortran-checking-yes-rtl-df/bin/gfortran
returned 1 exit status
collect2: lto-wrapper returned 1 exit status

Tested revisions:
r167643 - crash
r165699 - crash
r161659 - OK
4.5 r166509 - OK


[Bug c/46908] printf not handling printing of double correctly in certain cases

2010-12-12 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46908

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

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2010-12-12 
17:32:26 UTC ---
Use -Wall:

test.c:18: warning: format ‘%f’ expects type ‘double’, but argument 2 has type
‘long double’

which means that %f is not for long double, you should use %Lf and it will
work.


[Bug libstdc++/46910] std::shared_ptr requires public destructor for a class with friend deleter

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46910

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jwakely.gcc at gmail dot
   ||com

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
17:35:21 UTC ---
Jon, can you have a look?


[Bug libstdc++/46906] istreambuf_iterator is late?

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46906

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
17:38:10 UTC ---
Yes, this is an old issue, as you noticed already other implementations also
decided that performance issue may take precedence here. After so many years
with this scheme, I honestly don't think we want to change this before breaking
the ABI.


[Bug middle-end/46909] [4.6 Regression] elf32-i386.c and elf64-x86-64.c in binutils are miscompiled

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

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

   What|Removed |Added

 CC||sandra at codesourcery dot
   ||com
   Target Milestone|--- |4.6.0

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-12-12 17:44:39 
UTC ---
It is caused by revision 160445:

http://gcc.gnu.org/ml/gcc-cvs/2010-06/msg00359.html


[Bug testsuite/46912] New: [4.6 Regression] Test failures for g++.dg/plugin/*plugin*.C on powerpc-apple-darwin9

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46912

   Summary: [4.6 Regression] Test failures for
g++.dg/plugin/*plugin*.C on powerpc-apple-darwin9
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: domi...@lps.ens.fr
CC: ia...@gcc.gnu.org


On powerpc-apple-darwin9 , between revisions 166301 and 166355 (see
http://gcc.gnu.org/ml/gcc-testresults/2010-11/msg00318.html
http://gcc.gnu.org/ml/gcc-testresults/2010-11/msg00432.html )
the following failures appeared:

FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line )
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line 7)
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line 7)
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line 16)
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so
(test for excess errors)
FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line )
FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line 5)
FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line 9)
FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line 14)
FAIL: g++.dg/plugin/dumb-plugin-test-1.C -fplugin=./dumb_plugin.so  (test for
warnings, line 10)
FAIL: g++.dg/plugin/dumb-plugin-test-1.C -fplugin=./dumb_plugin.so  (test for
warnings, line 14)
FAIL: g++.dg/plugin/dumb-plugin-test-1.C -fplugin=./dumb_plugin.so  (test for
warnings, line 18)
FAIL: g++.dg/plugin/dumb-plugin-test-1.C -fplugin=./dumb_plugin.so  (test for
warnings, line 19)
FAIL: g++.dg/plugin/dumb-plugin-test-1.C -fplugin=./dumb_plugin.so  (test for
warnings, line 24)
FAIL: g++.dg/plugin/dumb-plugin-test-1.C -fplugin=./dumb_plugin.so  (test for
warnings, line 50)
FAIL: g++.dg/plugin/dumb-plugin-test-1.C -fplugin=./dumb_plugin.so  (test for
warnings, line 50)
FAIL: g++.dg/tree-prof/indir-call-prof.C compilation,  -g  -fprofile-use

From the log file, the errors are

output is:
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C:4:55:
warning: 'user' attribute directive ignored [-Wattributes]
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C:5:63:
warning: 'user' attribute directive ignored [-Wattributes]
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C:11:52:
warning: 'user' attribute directive ignored [-Wattributes]

FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line )
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line 7)
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line 7)
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so 
(test for warnings, line 16)
FAIL: g++.dg/plugin/attribute_plugin-test-1.C -fplugin=./attribute_plugin.so
(test for excess errors)
Excess errors:
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C:4:55:
warning: 'user' attribute directive ignored [-Wattributes]
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C:5:63:
warning: 'user' attribute directive ignored [-Wattributes]
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C:11:52:
warning: 'user' attribute directive ignored [-Wattributes]

 no output

FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line )
FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line 5)
FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line 9)
FAIL: g++.dg/plugin/pragma_plugin-test-1.C -fplugin=./pragma_plugin.so  (test
for warnings, line 14)



output is:
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C: In
function 'void __static_initialization_and_destruction_0(int, int)':
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C:50:1:
warning: Analyze function __static_initialization_and_destruction_0 [enabled by
default]
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C: In
constructor 'Foo::Foo()':
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C:50:1:
warning: Analyze function __comp_ctor  [enabled by default]
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C: In
member function 'void Foo::setA(int)':
/opt/gcc/gcc-4.6-work/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C:50:1:
warning: Analyze function 

[Bug libstdc++/46906] istreambuf_iterator is late?

2010-12-12 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46906

--- Comment #2 from Marc Glisse marc.glisse at normalesup dot org 2010-12-12 
18:01:41 UTC ---
(In reply to comment #1)
 Yes, this is an old issue,

Oups, sorry, I am not very good at finding old issues in bugzilla...

 as you noticed already other implementations also
 decided that performance issue may take precedence here. After so many years
 with this scheme, I honestly don't think we want to change this before 
 breaking
 the ABI.

Ok, part of my bugreport was to get confirmation that it was indeed a bug
(streams can be confusing at times). I understand from your comment that you
intend to fix it when the ABI is broken for C++0x, which is good enough for me.

Thanks.


[Bug libstdc++/46910] std::shared_ptr requires public destructor for a class with friend deleter

2010-12-12 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46910

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.12.12 18:09:59
 AssignedTo|unassigned at gcc dot   |redi at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2010-12-12 
18:09:59 UTC ---
Created attachment 22727
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22727
do not derive Sp_counted_deleter from Sp_counted_ptr

The problem is that the Sp_counted_deleter class inherits from Sp_counted_ptr
so even though Sp_counter_ptr::_M_dispose is never called, it does get
instantiated.

I'm testing this patch


[Bug middle-end/46909] [4.6 Regression] elf32-i386.c and elf64-x86-64.c in binutils are miscompiled

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

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

   What|Removed |Added

   Priority|P3  |P1

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2010-12-12 18:12:47 
UTC ---
elf64_x86_64_allocate_dynrelocs and elf64_x86_64_size_dynamic_sections
are miscompiled.


[Bug libstdc++/46906] istreambuf_iterator is late?

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46906

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
18:28:02 UTC ---
To be clear: I remember discussing this issue with Nathan many years ago, when
we noticed that variance among implementations, and that we considered more
strictly conforming not buffering anything (but also much worse perfoming in
many normal circumstances). But now I don't have a final word on that, should
at least collect my old notes. As I mentioned already, anyway, even if we
wanted to do the change now, it would risk breaking compatibility or leaving
the _M_c member unused or other ugly options. Definitely something to be
re-evaluated when the ABI is broken.


[Bug testsuite/46913] New: send_log $first != $second\n in gdb-test fails when $first starts with '-'

2010-12-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46913

   Summary: send_log $first != $second\n in gdb-test fails when
$first starts with '-'
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dang...@gcc.gnu.org
  Host: hppa-unknown-linux-gnu
Target: hppa-unknown-linux-gnu
 Build: hppa-unknown-linux-gnu


Executing on host: /home/dave/gnu/gcc-4.6/objdir/gcc/xgcc
-B/home/dave/gnu/gcc-4
.6/objdir/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/guality/nrv-1.c  
-O2
 -flto -flto-partition=none  -g -fno-tree-sra  -lm   -o ./nrv-1.exe(timeout 
= 300)spawn /home/dave/gnu/gcc-4.6/objdir/gcc/xgcc
-B/home/dave/gnu/gcc-4.6/objdir/gcc
/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/guality/nrv-1.c -O2 -flto
-flto-pa
rtition=none -g -fno-tree-sra -lm -o ./nrv-1.exe
PASS: gcc.dg/guality/nrv-1.c  -O2 -flto -flto-partition=none  (test for excess
e
rrors)
Setting LD_LIBRARY_PATH to
:/home/dave/gnu/gcc/objdir/gcc::/home/dave/gnu/gcc/ob
jdir/gcc:/home/dave/gnu/gcc/objdir/hppa-linux/libstdc++-v3/src/.libs:/home/dave/
gnu/gcc/objdir/hppa-linux/libmudflap/.libs:/home/dave/gnu/gcc/objdir/hppa-linux/
libssp/.libs:/home/dave/gnu/gcc/objdir/hppa-linux/libgomp/.libs:/home/dave/gnu/g
cc/objdir/./gcc:/home/dave/gnu/gcc/objdir/./prev-gcc
spawn [open ...]
PASS: gcc.dg/guality/nrv-1.c  -O2 -flto -flto-partition=none  execution test
Spawning: gdb -nx -nw -quiet -x nrv-1.gdb ./nrv-1.exe
spawn gdb -nx -nw -quiet -x nrv-1.gdb ./nrv-1.exe
Reading symbols from
/home/dave/gnu/gcc-4.6/objdir/gcc/testsuite/gcc/nrv-1.exe..
.done.
Breakpoint 1 at 0x10558: file
/home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/gualit
y/nrv-1.c, line 20.

Breakpoint 1, f ()
at /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/guality/nrv-1.c:20
20a2.i[4] = 7;  /* { dg-final { gdb-test 20 a2.i\[0\] 42 } } */
$1 = -1093315243
$2 = 42
A debugging session is active.

Inferior 1 [process 8290] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]
ERROR OCCURED: usage: send [args] string
while executing
send_log $first != $second\n
invoked from within
expect {
-i exp7 -timeout 300 
-re {[\n\r]\$1 = ([^\n\r]*)[\n\r]+\$2 = ([^\n\r]*)[\n\r]} {
set first $expect_out(1,string)
set second $expe...
(uplevel body line 1)
invoked from withinuplevel $body TCL LOOKUP INDEX flag {-1093315243 != 42
} usage: send [args] stringUNSUPPORTED: gcc.dg/guality/nrv-1.c  -O2 -flto
-flto-partition=none  line 20 a2.i[0] == 42

Note that this appears to also cause a test timeout (UNSUPPORTD output).

I think we need to use send_log -- $first != $second\n in the script.
See http://sourceware.org/bugzilla/show_bug.cgi?id=9737.


[Bug target/46770] Replace .ctors/.dtors with .init_array/.fini_array on targets supporting them

2010-12-12 Thread mark at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770

--- Comment #46 from Mark Mitchell mark at codesourcery dot com 2010-12-12 
18:40:35 UTC ---
On 12/11/2010 4:32 PM, hjl.tools at gmail dot com wrote:

 Mark, I may have misunderstood you. Correct me if I am wrong.
 Currently, it may be possible to interleave constructors
 between different object files by examing .ctors section names
 and passing object files in specific order to linker.

It is possible.  The linker sorts the section names, so a higher
priority constructor always runs before a lower priority constructor,
independent of object file order.  You may also be able to play games
with object file order to control the order of constructors with the
same priority, but we don't document that anywhere, as far as I know.

 But we can't do it between .init_array and .crors sections.

Correct, we do not at present do that.  That's the problem I'm raising
with switching to .init_array.  If you do that, and someone links in old
object code using .ctors, we may run a low-priority .ctors constructor
after a high-priority .init_array constructor, or we may run a
low-priority .init_array constructor after a low-priority .ctors
constructor.  Either outcome would be a bug; we would break semantics.

My opinion is that we can't switch to .init_array unless we either (a)
make the linker detect the problem and fix it, or (b) at least make the
linker detect the problem and issue an *error*.  I do not think a
warning is sufficient.


[Bug libstdc++/46910] std::shared_ptr requires public destructor for a class with friend deleter

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46910

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|jwakely.gcc at gmail dot|
   |com |

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
19:19:02 UTC ---
Many thanks!


[Bug middle-end/46909] [4.6 Regression] elf32-i386.c and elf64-x86-64.c in binutils are miscompiled

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.12 19:22:15
 Ever Confirmed|0   |1
   Severity|normal  |blocker

--- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2010-12-12 19:22:15 
UTC ---
[...@gnu-6 tmp]$ cat y.c
extern void abort ();
struct entry
{
  unsigned char tls_type;
} h;

int
__attribute__ ((__noinline__))
foo (struct entry *h)
{
  int tls_type = h-tls_type;
  if (! ((tls_type) == 4 || ((tls_type) == (2 | 4)))
  || ((tls_type) == 2 || ((tls_type) == (2 | 4
return 1;

  return -1;
}

int
main ()
{
  struct entry h;
  h.tls_type = 6;
  if (foo (h) != 1)
abort ();
  return 0;
}
[...@gnu-6 tmp]$ /usr/gcc-4.6/bin/gcc -O2 y.c
[...@gnu-6 tmp]$ ./a.out 
Aborted
[...@gnu-6 tmp]$ gcc -O2 y.c
[...@gnu-6 tmp]$ ./a.out 
[...@gnu-6 tmp]$


[Bug middle-end/46909] [4.6 Regression] elf32-i386.c and elf64-x86-64.c in binutils are miscompiled

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

--- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2010-12-12 19:27:08 
UTC ---
Smaller one:

[...@gnu-6 tmp]$ cat y.c
extern void abort ();
int
__attribute__ ((__noinline__))
foo (unsigned int tls_type)
{
  if (! (tls_type == 4 || (tls_type == 6))
  || (tls_type == 2 || (tls_type == 6)))
return 1;
  return -1;
}
int
main ()
{
  if (foo (6) != 1)
abort ();
  return 0;
}
[...@gnu-6 tmp]$ /usr/gcc-4.6/bin/gcc -O2 y.c  
[...@gnu-6 tmp]$ ./a.out 
Aborted
[...@gnu-6 tmp]$


[Bug middle-end/46909] [4.6 Regression] elf32-i386.c and elf64-x86-64.c in binutils are miscompiled

2010-12-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-12 
19:30:36 UTC ---
I'll look at it tomorrow.


[Bug middle-end/45388] [4.6 Regression] Global constructor not found

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45388

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

--- Comment #8 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-12 
19:54:28 UTC ---
Mine, patch sent http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00961.html

Sorry about the delay. 

The problem is not that I would not want constructors to be global. The problem
was that since the original constructor merging was introduced (in 2004), C++
FE produced collect2 recognizable names for no reason. This problem was masked
by fact that the code set always inline flag on all functions. This is wrong,
since not all functions are inlinable so it can lead to ICE when non-inlinable
static constructor is introduced.

The patch should avoid those recognizable names until final merging pass and
thus avoid the problem.

Honza


[Bug libstdc++/46914] New: std::atomicint*::exchange(...) doesn't store correct value.

2010-12-12 Thread frtsang at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46914

   Summary: std::atomicint*::exchange(...) doesn't store correct
value.
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: frts...@hotmail.com


Run the following to compile the program below.
$ g++ -std=c++0x ./test.cpp -o test.tsk

//test.cpp
#include iostream
#include stdatomic.h

int main(int argc, char **argv)
{
int *a = new int(10);
std::cout  a =   a   *a =   *a  std::endl;

std::atomicint* x(a);
int *ptr = x;
std::cout  ptr =   ptr   *ptr   *ptr  std::endl;

int *b = new int(11);
std::cout  b =   b   *b =   *b  std::endl;

std::cout  x.exchange(b) =   x.exchange(b)  std::endl;
ptr = x;
std::cout  ptr =   ptr   *ptr   *ptr  std::endl;

int *c = new int(12);
std::cout  c =   c   *c =   *c  std::endl;

std::cout  x.exchange(c) =   x.exchange(c)  std::endl;
ptr = x;
std::cout  ptr =   ptr   *ptr   *ptr  std::endl;

return 0;
}

$ g++ --version
g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

It runs and gives the following result.

./test.tsk 
a = 0x9b9c008 *a = 10
ptr = 0x9b9c008 *ptr 10
b = 0x9b9c018 *b = 11
x.exchange(b) = 0x9b9c008
ptr = 0x1ec71b *ptr -388381823
c = 0x9b9c028 *c = 12
x.exchange(c) = 0x1ec71b
ptr = 0x1ec71b *ptr -388381823

After x is initialized with a, it doesn't store the new value correctly in
its exchange member function.


[Bug testsuite/46913] send_log $first != $second\n in gdb-test fails when $first starts with '-'

2010-12-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46913

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-12 
20:03:31 UTC ---
So post a patch to gcc-patches?


[Bug testsuite/46913] send_log $first != $second\n in gdb-test fails when $first starts with '-'

2010-12-12 Thread dave at hiauly1 dot hia.nrc.ca
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46913

--- Comment #2 from dave at hiauly1 dot hia.nrc.ca 2010-12-12 20:10:51 UTC ---
 So post a patch to gcc-patches?

Will do when I complete testing on the system where I see the problem.
It currently doing a full check that I don't want to mess up.  There
is some expect/tcl version dependency.

Dave


[Bug libstdc++/46914] std::atomicint*::exchange(...) doesn't store correct value.

2010-12-12 Thread frtsang at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46914

--- Comment #1 from Francis frtsang at hotmail dot com 2010-12-12 20:15:04 
UTC ---
Forget to mention my system type

$ uname -a
Linux my_mach_name 2.6.32-26-generic #48-Ubuntu SMP Wed Nov 24 09:00:03 UTC
2010 i686 GNU/Linux


[Bug testsuite/46913] send_log $first != $second\n in gdb-test fails when $first starts with '-'

2010-12-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46913

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-12 
20:18:59 UTC ---
If it doesn't work on some expect or tcl or dejagnu versions, the alternative
would be
send_log actual $first != expected $second\n


[Bug middle-end/46671] [4.6 Regression] ICE in default_no_named_section, at varasm .c:5994

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46671

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|WAITING

--- Comment #13 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-12 
20:38:21 UTC ---
I commited the fix, could you confirm if the bug is gone now?


[Bug fortran/46896] [4.2/4.3/4.4/4.5/4.6 Regression] Wrong code with transpose(a) passed to subroutine

2010-12-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46896

--- Comment #8 from Dominique d'Humieres dominiq at lps dot ens.fr 2010-12-12 
20:47:48 UTC ---
Not surprisingly with the patch in comment #5 I get the following regressions:


FAIL: gfortran.dg/array_function_5.f90  *  (internal compiler error)
FAIL: gfortran.dg/proc_ptr_comp_9.f90  *  (internal compiler error)
FAIL: gfortran.dg/proc_ptr_comp_12.f90  *  (internal compiler error)

The backtrace for gfortran.dg/array_function_5.f90 is

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0028
proc_call_can_redefine_sym (proc=0x14191f000) at
../../work/gcc/fortran/trans-expr.c:5409
5409  gfc_symbol *sym = expr-symtree-n.sym;
(gdb) bt
#0  proc_call_can_redefine_sym (proc=0x14191f000) at
../../work/gcc/fortran/trans-expr.c:5409
#1  0x0001000da15e in gfc_conv_procedure_call (se=0x7fff5fbfd500,
sym=0x14191f000, args=0x1419182b0, expr=0x1419181f0, append_args=0x141f1f380)
at ../../work/gcc/fortran/trans-expr.c:3114
Previous frame inner to this frame (gdb could not unwind past this frame)


[Bug c++/42033] libstdc++ seems to miss std::basic_stringchar, std::char_traitschar, std::allocatorchar ::basic_stringchar*(char*, char*, std::allocatorchar const)

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42033

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED

--- Comment #11 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-12 
20:47:42 UTC ---
It no longer reproduce to me.  Hope the problem didn't just get latent again,
but I guess it was fixed as part of numberous fixes to handling COMDATs and
LTO/whole-program privatizing in last few months.

Honza


[Bug libstdc++/46914] std::atomicint*::exchange(...) doesn't store correct value.

2010-12-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46914

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-12 
20:51:40 UTC ---
I cannot reproduce this on anything from current 4.4 branch to mainline (with
atomic). I get:

a = 0x603010 *a = 10
ptr = 0x603010 *ptr 10
b = 0x603030 *b = 11
x.exchange(b) = 0x603010
ptr = 0x603030 *ptr 11
c = 0x603050 *c = 12
x.exchange(c) = 0x603030
ptr = 0x603050 *ptr 12


[Bug target/46276] cppbuiltin.c:154:7: error: 'or' of unmatched not-equal tests is always 1 [-Werror]

2010-12-12 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46276

--- Comment #4 from Mikael Pettersson mikpe at it dot uu.se 2010-12-12 
20:59:43 UTC ---
Fixed when the dupe PR46456 was fixed.


[Bug middle-end/46790] [4.6 regression] EH failures in libstdc++ testsuite with --gc-sections and GNU ld 2.18

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46790

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.12 20:59:48
 CC||hjl.tools at gmail dot com
 Ever Confirmed|0   |1

--- Comment #2 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-12 
20:59:48 UTC ---
I reproduce same issue on gcc14, too.

This seems like previously semi-latent problem. One can definitly declare main
into text.startup by hand. H.J., do you have any idea how to fix/work around
this?  

Steve: HPUX is not using function sections, so it is probably unrelated issue.

Honza


[Bug c/46899] compiler optimization

2010-12-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

--- Comment #6 from Andrew Pinski pinskia at gcc dot gnu.org 2010-12-12 
21:02:55 UTC ---
it is undefined at compile time?

No, it is undefined at runtime.  This again is not an undefined behavior at
compile time but rather at runtime.  What that means is the behavior cannot be
diagnosed (at least by the C standard definitions) at compile time and has to
compile.  There is no undefined at compile time behavior here, only at runtime.


[Bug fortran/46809] [OOP] ICE with -fcheck=pointer for CLASS IS

2010-12-12 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46809

--- Comment #6 from janus at gcc dot gnu.org 2010-12-12 21:14:16 UTC ---
Author: janus
Date: Sun Dec 12 21:14:13 2010
New Revision: 167731

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167731
Log:
2010-12-12  Janus Weil  ja...@gcc.gnu.org

PR fortran/46809
* resolve.c (resolve_select_type): Set the location of the first
argument when generating the EXTENDS_TYPE_OF call.

2010-12-12  Janus Weil  ja...@gcc.gnu.org

PR fortran/46809
* gfortran.dg/pointer_check_8.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/pointer_check_8.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


[Bug testsuite/46913] send_log $first != $second\n in gdb-test fails when $first starts with '-'

2010-12-12 Thread dave at hiauly1 dot hia.nrc.ca
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46913

--- Comment #4 from dave at hiauly1 dot hia.nrc.ca 2010-12-12 21:14:37 UTC ---
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46913
 
 --- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-12 
 20:18:59 UTC ---
 If it doesn't work on some expect or tcl or dejagnu versions, the alternative
 would be
 send_log actual $first != expected $second\n

Which do you prefer?  It's not easy to test multiple versions.  What
I know is the error only occurs with certain versions.

Dave


[Bug middle-end/46909] [4.6 Regression] Logical OR expressions are miscompiled

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

--- Comment #6 from H.J. Lu hjl.tools at gmail dot com 2010-12-12 21:29:08 
UTC ---
Bad patch was posted at

http://gcc.gnu.org/ml/gcc-patches/2010-06/msg1.html


[Bug fortran/46809] [OOP] ICE with -fcheck=pointer for CLASS IS

2010-12-12 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46809

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #7 from janus at gcc dot gnu.org 2010-12-12 21:30:34 UTC ---
Fixed with r167731. Closing.


[Bug middle-end/46790] [4.6 regression] EH failures in libstdc++ testsuite with --gc-sections and GNU ld 2.18

2010-12-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46790

--- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2010-12-12 21:31:57 
UTC ---
There are some gc-sections bug fixes since binutils 2.18:

Fix --gc-sections to detect unresolved symbol in DSO.  PR 11218.
Fix linker --gc-sections with undefined __start_XXX/__stop_XXX symbols.  PR
11133.
Fix linker --gc-sections with SHT_NOTE section.  PR 11143.
Fix ld -r --gc-sections --entry crash with COMDAT group.  PR 9727.

You can try the Linux binutils from

http://www.kernel.org/pub/linux/devel/binutils/

to narrow down which binutils fixes it.


[Bug c/46899] compiler optimization

2010-12-12 Thread eskil at obsession dot se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

--- Comment #7 from Eskil Steenberg eskil at obsession dot se 2010-12-12 
21:46:18 UTC ---
Hi

 No, it is undefined at runtime.  This again is not an undefined behavior
 at
 compile time but rather at runtime.  What that means is the behavior
 cannot be
 diagnosed (at least by the C standard definitions) at compile time and has
 to
 compile.  There is no undefined at compile time behavior here, only at
 runtime.

Well the compiler does make assumptions about what the runtime will do.
Have a look at this function:

void my_func(unsigned short a, unsigned short b)
{
unsigned int c;
c = a * b;

printf(c = %u\n, c);
if(f  30) /* 3 billion */
printf(foo bar\n);
}

using gcc you can get the output (with the input , and ):

c = 4294836225
foo bar

This output should not be possible and will be very confusing to the user
(it was to me). My (limited) reading of the C spec should not support this
even though i understand why it happens.

At compile time the compiler decides that c can never be larger then max
singned int, and therefor it thinks that it can optimize away the if
statement.

Cheers

E

PS sorry I dont have a compiler on this machine so excuse any typos.


[Bug c/46899] compiler optimization

2010-12-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

--- Comment #8 from Andrew Pinski pinskia at gcc dot gnu.org 2010-12-12 
21:52:40 UTC ---
This output should not be possible 

No, it is possible because the value is undefined so both the if being false
and the printout happening can happen.


[Bug fortran/46897] [OOP] Polymorphic type - defined ASSIGNMENT(=) not used

2010-12-12 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46897

--- Comment #1 from janus at gcc dot gnu.org 2010-12-12 22:15:30 UTC ---
Here is a slightly reduced test case:


module m
  implicit none

  type component
  contains
procedure :: assign
generic :: assignment(=)=assign
  end type

  type t
type(component) :: foo
  end type

contains

  subroutine assign(lhs,rhs)
class(component), intent(out) :: lhs
class(component), intent(in) :: rhs
print *,'defined assignment called'
  end subroutine

end module 

program main
  use m
  implicit none
  type(t) :: infant, newchild
  infant = newchild
end


[Bug c/46899] compiler optimization

2010-12-12 Thread eskil at obsession dot se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

--- Comment #9 from Eskil Steenberg eskil at obsession dot se 2010-12-12 
22:23:36 UTC ---
Hi

 No, it is possible because the value is undefined so both the if being
 false and the printout happening can happen.

But undefined still means that the variable c has a value, just not
something that cant be determined at compile time.

The value c is not undefined, just the operation that produces the value
stored in c. Therefor anything the variable c touches shouldn't become
undefined too.

If i give someone the number 9 and tell them to do a square root of it,
they should produce a 3 even if I dont define where I got the number 9. if
they go ahead and produce the value 4, I'm going to say that they are
wrong, and not buy the argument Since you dont define where you got the
number, I'm going to assume you really meent 16 and not 9.

I really dislike the idea that something can be undefined, and at the same
time the compiler can make assumptions about what it can be. pick one.

Cheers

E


[Bug fortran/46897] defined ASSIGNMENT(=) not used for derived type component

2010-12-12 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46897

janus at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[OOP] Polymorphic type -|defined ASSIGNMENT(=) not
   |defined ASSIGNMENT(=) not   |used for derived type
   |used|component

--- Comment #2 from janus at gcc dot gnu.org 2010-12-12 22:25:52 UTC ---
I think one can run into the same problem already without polymorphism:


module m
  implicit none

  type component
  end type

  interface assignment(=)
module procedure assign
  end interface

  type t
type(component) :: foo
  end type

contains

  subroutine assign(lhs,rhs)
type(component), intent(out) :: lhs
type(component), intent(in) :: rhs
print *,'defined assignment called'
  end subroutine

end module 

program main
  use m
  implicit none
  type(t) :: infant, newchild
  infant = newchild
end


[Bug target/46915] New: Wrong code is generated for conditional branch followed by zero length asm

2010-12-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46915

   Summary: Wrong code is generated for conditional branch
followed by zero length asm
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dang...@gcc.gnu.org
  Host: hppa*-*-*
Target: hppa*-*-*
 Build: hppa*-*-*


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

With gcc 4.4 and current head, we generate incorrect code for the function
add_to_swap at -O2:

int add_to_swap(struct page *page)
{
 swp_entry_t entry;
 int err;

 do { (void)(!PageLocked(page)); } while (0);
 do { (void)(!PageUptodate(page)); } while (0);

 entry = get_swap_page();
 ...

PageUptodate is:

static inline __attribute__((always_inline)) int PageUptodate(struct page
*page)
{
 int ret = test_bit(PG_uptodate, (page)-flags);
# 297 include/linux/page-flags.h
 if (ret)
  __asm__ __volatile__(:::memory);

 return ret;
}

The generated RTL is:

(jump_insn 13 10 14 (set (pc)
(if_then_else (eq (zero_extract:SI (reg:SI 28 %r28 [orig:100 D.22506 ]
[
100])
(const_int 1 [0x1])
(const_int 28 [0x1c]))
(const_int 0 [0]))
(label_ref 16)
(pc))) include/linux/page-flags.h:297 29 {*pa.md:1610}
 (expr_list:REG_BR_PRED (const_int 5 [0x5])
(expr_list:REG_DEAD (reg:SI 28 %r28 [orig:100 D.22506 ] [100])
(expr_list:REG_BR_PROB (const_int 5000 [0x1388])
(nil
 - 16)

(note 14 13 15 [bb 3] NOTE_INSN_BASIC_BLOCK)

(insn:TI 15 14 16 (parallel [
(asm_operands/v () () 0 []
 []
 [] mm/swap_state.c:185)
(clobber (mem:BLK (scratch) [0 A8]))
]) include/linux/page-flags.h:298 -1
(nil))

(code_label 16 15 17 15  [1 uses])

(note 17 16 19 [bb 4] NOTE_INSN_BASIC_BLOCK)

(note 19 17 107 NOTE_INSN_DELETED)

(insn 107 19 122 (sequence [
(call_insn:TI 18 19 4 (parallel [
(set (reg:SI 28 %r28)
(call (mem:SI (symbol_ref/v:SI (@get_swap_page)
[f
lags 0x41]  function_decl 0x40ae6280 get_swap_page) [0 S4 A32])
...

This results in the following assembler:

globl add_to_swap
.type   add_to_swap, @function
add_to_swap:
.PROC
.CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=5
.ENTRY
stw %r2,-20(%r30)
stwm %r5,64(%r30)
stw %r3,-56(%r30)
copy %r26,%r3
stw %r4,-60(%r30)
ldw 0(%r26),%r28
ldw 0(%r26),%r28
bb,=,n %r28,28,.L15
.L15:
bl get_swap_page,%r2
ldi 0,%r4

As can be seen, the bb instruction branches to its delay slot.  This
is not handled by the hardware.

The asm confuses the branch code generation.


[Bug c/46908] printf not handling printing of double correctly in certain cases

2010-12-12 Thread adrian.hawryluk at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46908

Adrian Hawryluk adrian.hawryluk at gmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |

--- Comment #3 from Adrian Hawryluk adrian.hawryluk at gmail dot com 
2010-12-12 22:53:43 UTC ---
Sorry, changed to %Lf with same results.   

#include stdio.h
#include math.h
void printld(long double* pld)
{
int i;
printf(*%p = , pld);
for (i = 0; i  sizeof(long double); ++i) {
printf(%02x , ((unsigned char*)pld)[i]);
}
printf(\n);
}

int main()
{
long double number1 = 1.0;
long double number2 = 1.0;

printf (%Lf, %Lf\n, number1, number2);

printf (Enter number1: );
scanf ( %Lf, number1);
printf (Enter number2: );
scanf ( %Lf, number2);

printf (%Lf, %Lf\n, number1, number2);
printf (%Lf, %Lf\n, number1, number1);

printld(number1);
printld(number2);
return 0;
}


[Bug c/46908] printf not handling printing of double correctly in certain cases

2010-12-12 Thread adrian.hawryluk at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46908

--- Comment #4 from Adrian Hawryluk adrian.hawryluk at gmail dot com 
2010-12-12 22:55:47 UTC ---
But found that L is not a known conversion type character.  When is L
supposed to be implemented?

C:\tmpgcc -Wall -o tmp.exe file.c
file.c: In function 'main':
file.c:18:5: warning: unknown conversion type character 'L' in format
file.c:18:5: warning: unknown conversion type character 'L' in format
file.c:18:5: warning: too many arguments for format
file.c:21:5: warning: unknown conversion type character 'L' in format
file.c:21:5: warning: too many arguments for format
file.c:23:5: warning: unknown conversion type character 'L' in format
file.c:23:5: warning: too many arguments for format
file.c:25:5: warning: unknown conversion type character 'L' in format
file.c:25:5: warning: unknown conversion type character 'L' in format
file.c:25:5: warning: too many arguments for format
file.c:26:5: warning: unknown conversion type character 'L' in format
file.c:26:5: warning: unknown conversion type character 'L' in format
file.c:26:5: warning: too many arguments for format


[Bug bootstrap/44455] GCC fails to build if MPFR 3.0.0 (Release Candidate) is used

2010-12-12 Thread vincent at vinc17 dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44455

--- Comment #19 from Vincent Lefèvre vincent at vinc17 dot org 2010-12-12 
23:02:58 UTC ---
FYI, the problem has been handled in the MPFR trunk r7291 for MPFR 3.1.0.
MPFR's configure script now retrieves the location of the GMP source from GMP's
Makefile and adds the necessary -I... flags to CPPFLAGS.

Note also that the behavior will be different from the one with MPFR 2.x. A
side effect is that library versioning is not supported in this case (by that,
I mean that a GMP upgrade without recompiling MPFR against the new GMP version
may break things) because providing --with-gmp-build makes the MPFR build use
GMP's internals, which may change without notice.


[Bug c/46908] printf not handling printing of double correctly in certain cases

2010-12-12 Thread adrian.hawryluk at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46908

--- Comment #5 from Adrian Hawryluk adrian.hawryluk at gmail dot com 
2010-12-12 23:08:58 UTC ---
Used flag -std=c99 and this reduced the number of warnings.  They were limited
to the scanf format string.

C:\tmpgcc -Wall -std=c99 -o tmp.exe file.c
file.c: In function 'main':
file.c:21:5: warning: unknown conversion type character 'L' in format
file.c:21:5: warning: too many arguments for format
file.c:23:5: warning: unknown conversion type character 'L' in format
file.c:23:5: warning: too many arguments for format


[Bug middle-end/46916] New: gcc.dg/torture/stackalign/non-local-goto-[1,2].c ICEs compiler from profiledbootstrap

2010-12-12 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46916

   Summary: gcc.dg/torture/stackalign/non-local-goto-[1,2].c ICEs
compiler from profiledbootstrap
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: howa...@nitro.med.uc.edu


When gcc trunk is built with profiledbootstrap, the resulting compiler exhibits
ICEs in...

FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  compilation failed
to produce executable
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  compilation failed
to produce executable
FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  compilation failed
to produce executable
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  compilation failed
to produce executable
FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  compilation failed
to produce executable
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  compilation failed
to produce executable
FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-1.c  -O1  compilation failed
to produce executable
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (internal compiler
error)
FAIL: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  (test for excess
errors)
WARNING: gcc.dg/torture/stackalign/non-local-goto-2.c  -O1  compilation failed
to produce executable

These are of the form...

/Users/howarth/darwin_objdir/gcc/xgcc -B/Users/howarth/darwin_objdir/gcc/
/Users/howarth/gcc/gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-1.c  
-O1  -mstackrealign -mpreferred-stack-boundary=5 -mno-mmx  -lm   -m32 -o
./non-local-goto-1.exe
xgcc: internal compiler error: Segmentation fault (program cc1)

and backtrace as...

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x7fff5bc00fe0
0x000100829fa8 in htab_find_slot_with_hash (htab=0x143200af0,
element=value temporarily unavailable, due to optimizations, hash=value
temporarily unavailable, due to optimizations, insert=INSERT) at
../../gcc/libiberty/hashtab.c:668
668  else if ((*htab-eq_f) (entry, element))
(gdb) bt
#0  0x000100829fa8 in htab_find_slot_with_hash (htab=0x143200af0,
element=value temporarily unavailable, due to optimizations, hash=value
temporarily unavailable, due to optimizations, insert=INSERT) at
../../gcc/libiberty/hashtab.c:668
#1  0x0001007bc701 in cgraph_node (decl=0x143304e00) at
../../gcc/gcc/cgraph.c:502
(gdb)


[Bug middle-end/46916] gcc.dg/torture/stackalign/non-local-goto-[1,2].c ICEs compiler from profiledbootstrap

2010-12-12 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46916

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

   What|Removed |Added

 Target||x86_64-apple-darwin10
   Host||x86_64-apple-darwin10
  Build||x86_64-apple-darwin10

--- Comment #1 from Jack Howarth howarth at nitro dot med.uc.edu 2010-12-12 
23:13:28 UTC ---
Using built-in specs.
COLLECT_GCC=/Users/howarth/dist/bin/gcc
COLLECT_LTO_WRAPPER=/Users/howarth/dist/libexec/gcc/x86_64-apple-darwin10.5.0/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10.5.0
Configured with: ../gcc/configure --prefix=/Users/howarth/dist --with-gmp=/sw
--with-ppl=/sw --with-cloog=/sw --with-mpc=/sw --with-libiconv-prefix=/sw
--with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--enable-languages=c
Thread model: posix
gcc version 4.6.0 20101212 (experimental) (GCC)


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #17 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-12 
23:52:52 UTC ---
Current mainline crashes:
Program received signal SIGSEGV, Segmentation fault.
lto_cgraph_replace_node (slot=value optimized out, data=value optimized
out) at ../../gcc/lto-symtab.c:227 
227   if (prevailing_node-same_body_alias)
(gdb) bt
#0  lto_cgraph_replace_node (slot=value optimized out, data=value optimized
out) at ../../gcc/lto-symtab.c:227
#1  lto_symtab_merge_cgraph_nodes_1 (slot=value optimized out, data=value
optimized out) at ../../gcc/lto-symtab.c:798
#2  0x00b0ae08 in htab_traverse_noresize (htab=value optimized out,
callback=0x60eca0 lto_symtab_merge_cgraph_nodes_1, info=0x0) at
../../libiberty/hashtab.c:784
#3  0x004aabf9 in read_cgraph_and_symbols () at
../../gcc/lto/lto.c:2213
#4  lto_main () at ../../gcc/lto/lto.c:2438
#5  0x006cb658 in compile_file (argc=2627, argv=0x11a7460) at
../../gcc/toplev.c:579
#6  do_compile (argc=2627, argv=0x11a7460) at ../../gcc/toplev.c:1874
#7  toplev_main (argc=2627, argv=0x11a7460) at ../../gcc/toplev.c:1937
#8  0x76597bc6 in __libc_start_main () from /lib64/libc.so.6
#9  0x00493411 in _start () at ../sysdeps/x86_64/elf/start.S:113

I guess it is fallout of the merging patch. It is weird since previaling_node
is NULL.
_moz_cairo_surface_destroy/567259(-1) @0x7ffebef47c60 (asm:
_moz_cairo_surface_destroy) visibilit: 2 binds_local
  called by: CreateSimilarSurface/567227 (0.21 per call)
CreateSimilarSurface/567227 (0.14 per call) Init/567225 (0.39 per call)
_ZN11gfxASurface7ReleaseEv.part.2/567209 (1.00 per call) 
  calls: 
  References: 
  Refering this function: 
$5 = void

I also generated profile.
samples  %image name   app name symbol name
228038   25.3225  lto1 lto1
htab_find_slot_with_hash
82588 9.1710  lto1 lto1
iterative_hash_hashval_t
58000 6.4406  lto1 lto1
type_pair_eq
32557 3.6153  lto1 lto1
gimple_lookup_type_leader
31622 3.5115  lto1 lto1 gtc_visit   
29149 3.2369  lto1 lto1 htab_expand
27463 3.0496  lto1 lto1
gimple_type_hash_1  
24348 2.7037  lto1 lto1
gimple_types_compatible_p
24217 2.6892  lto1 lto1
inflate_fast
21984 2.4412  lto1 lto1
gimple_types_compatible_p_1
21796 2.4203  libc-2.11.1.so   libc-2.11.1.so   memset  
21700 2.4097  libc-2.11.1.so   libc-2.11.1.so   _int_malloc
17894 1.9870  lto1 lto1
lookup_type_pair.isra.120.constprop.129 
16087 1.7864  lto1 lto1
ggc_set_mark
15719 1.7455  lto1 lto1
gt_ggc_mx_lang_tree_node

Our abuse of hashing is making us slow.  It is not only type merging but all
the hashing during streaming in.


[Bug tree-optimization/44563] GCC uses a lot of RAM when compiling a large numbers of functions

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563

--- Comment #5 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-12 
23:55:24 UTC ---
With -O2 during early optimization we get to 68% in cgraph_check_inline_limits.
This is weird since early inliner should not be terribly sensitive to this.  I
guess it is because we end up walking very long edge lists. I will check if I
can do something here.

Honza


[Bug c/46899] compiler optimization

2010-12-12 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899

--- Comment #10 from Andreas Schwab sch...@linux-m68k.org 2010-12-13 00:21:09 
UTC ---
The execution of an undefined operation produces an undefined value, and any
further operation becomes undefined.


[Bug tree-optimization/44563] GCC uses a lot of RAM when compiling a large numbers of functions

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 CC||dnovillo at google dot com

--- Comment #6 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-13 
00:58:04 UTC ---
letting compilation to run longer I get:
3068656  60.0462  cc1  cc1 
gsi_for_stmt
1211665  23.7093  cc1  cc1 
cgraph_check_inline_limits
3965947.7604  cc1  cc1 
gimple_set_bb
29937 0.5858  libc-2.11.1.so   libc-2.11.1.so   _IO_vfscanf
23409 0.4581  libc-2.11.1.so   libc-2.11.1.so   _int_malloc
14539 0.2845  cc1  cc1 
gimple_split_block
13307 0.2604  libc-2.11.1.so   libc-2.11.1.so   memset
9532  0.1865  cc1  cc1  htab_delete
8275  0.1619  cc1  cc1 
bitmap_set_bit

so gsi_for_stmt nonlinearity kicks in. I guess it is the inliner calling BB
split and that calling gsi_for_stmt.  We probably can have gsi_split_bb with
gsi argument too.

I always wondered why Diego did not embed gimple_seq_node_d into gimple
statment (we don't have too many statements that would not be living in basic
blocks so it would not be wasteful and it would result in better locality
walking the lists). In that case gsi_for_stmt would become O(1).

Honza


[Bug tree-optimization/44563] GCC uses a lot of RAM when compiling a large numbers of functions

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563

--- Comment #7 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-13 
00:59:53 UTC ---
... actually split_bb does not use gsi_for_stmt since it has to walk all the
statements in the BB anyway.  It seems that it is one of routines updating
callers from cgraph edges.


[Bug tree-optimization/44563] GCC uses a lot of RAM when compiling a large numbers of functions

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563

--- Comment #8 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-13 
01:07:33 UTC ---
My profile was at -O2.  Concerning Jakub's callgrind, the -O0 compilation
finishes in about 44s for me. Profile is:
4349  3.8607  libc-2.11.1.so   libc-2.11.1.so   _int_malloc
3150  2.7963  cc1  cc1 
record_reg_classes.constprop.9
2881  2.5575  cc1  cc1 
htab_find_slot_with_hash
2104  1.8678  cc1  cc1 
ggc_set_mark
2039  1.8101  libc-2.11.1.so   libc-2.11.1.so  
msort_with_tmp
2005  1.7799  cc1  cc1 
bitmap_set_bit
1836  1.6299  cc1  cc1 
df_ref_create_structure
1775  1.5757  cc1  cc1 
find_reloads
1738  1.5429  cc1  cc1 
ggc_internal_alloc_stat
1538  1.3653  libc-2.11.1.so   libc-2.11.1.so   memset
1430  1.2694  cc1  cc1  eq_node
1375  1.2206  cc1  cc1 
preprocess_constraints
1317  1.1691  libc-2.11.1.so   libc-2.11.1.so   _int_free
1309  1.1620  cc1  cc1 
df_insn_refs_collect
1289  1.1443  cc1  cc1 
ix86_function_arg_regno_p
1277  1.1336  cc1  cc1 
df_ref_record
1249  1.1088  cc1  cc1 
ix86_save_reg
1215  1.0786  cc1  cc1 
ix86_compute_frame_layout
1171  1.0395  libc-2.11.1.so   libc-2.11.1.so  
malloc_consolidate
1134  1.0067  cc1  cc1 
extract_insn

So I don't get that much of RA by itself.  Tracking that malloc ineffeciency
might be low hanging fruit.


[Bug tree-optimization/44563] GCC uses a lot of RAM when compiling a large numbers of functions

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 CC||vmakarov at redhat dot com

--- Comment #9 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-13 
01:17:19 UTC ---
And since Richard did not include 4.6 in his -ftime-reports, here is -O0
 garbage collection:   1.74 ( 4%) usr   0.00 ( 0%) sys   1.76 ( 3%) wall   
   0 kB ( 0%) ggc
 callgraph construction:   1.07 ( 2%) usr   0.26 ( 5%) sys   1.33 ( 3%) wall  
41984 kB ( 3%) ggc
 callgraph optimization:   0.62 ( 1%) usr   0.24 ( 5%) sys   0.98 ( 2%) wall  
91137 kB ( 6%) ggc
 df scan insns :   3.47 ( 8%) usr   0.32 ( 6%) sys   3.72 ( 7%) wall   
7168 kB ( 0%) ggc
 parser:   1.37 ( 3%) usr   0.41 ( 8%) sys   1.59 ( 3%) wall 
202094 kB (13%) ggc
 inline heuristics :   1.33 ( 3%) usr   0.01 ( 0%) sys   1.29 ( 3%) wall   
   0 kB ( 0%) ggc
 tree gimplify :   0.70 ( 2%) usr   0.06 ( 1%) sys   0.70 ( 1%) wall  
73728 kB ( 5%) ggc
 tree CFG construction :   0.21 ( 0%) usr   0.09 ( 2%) sys   0.25 ( 0%) wall  
82433 kB ( 5%) ggc
 tree operand scan :   0.10 ( 0%) usr   0.10 ( 2%) sys   0.15 ( 0%) wall  
69141 kB ( 5%) ggc
 expand:   2.32 ( 5%) usr   0.24 ( 5%) sys   2.45 ( 5%) wall 
242940 kB (16%) ggc
 post expand cleanups  :   0.50 ( 1%) usr   0.02 ( 0%) sys   0.49 ( 1%) wall  
76289 kB ( 5%) ggc
 integrated RA :  10.03 (22%) usr   0.15 ( 3%) sys  10.44 (20%) wall 
135680 kB ( 9%) ggc
 reload:   4.42 (10%) usr   0.07 ( 1%) sys   4.60 ( 9%) wall  
55295 kB ( 4%) ggc
 rest of compilation   :   3.03 ( 7%) usr   0.82 (16%) sys   3.65 ( 7%) wall 
170498 kB (11%) ggc
 final :   3.67 ( 8%) usr   0.09 ( 2%) sys   3.65 ( 7%) wall  
30144 kB ( 2%) ggc
 unaccounted todo  :   1.63 ( 4%) usr   0.91 (18%) sys   2.58 ( 5%) wall   
   0 kB ( 0%) ggc

Wonder what is accounted into rest of compilation.
Otherwise RA remains the compile time bottleneck. Will do memory stats later. 
Adding Vladimir to CC for RA.


[Bug fortran/46917] New: ICE

2010-12-12 Thread vivekrao4 at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46917

   Summary: ICE
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vivekr...@yahoo.com


For the code 

module random_integer_mod
implicit none
contains
function vec_block(ivec,block_size) result(jvec)
integer, intent(in) :: ivec(:)
integer, intent(in) :: block_size
integer :: jvec(size(ivec)*block_size)
jvec = 1
end function vec_block
!
function permute_blocks(nitems,block_size) result(ivec)
integer, intent(in)  :: block_size,nitems
integer  :: ivec(nitems)
integer  :: nblocks
integer, allocatable :: jvec(:)
nblocks = 1
allocate (jvec(nblocks*block_size))
jvec = vec_block(permutation(nblocks),block_size)
ivec = 1
end function permute_blocks
!
function permutation(n) result(ivec)
integer, intent(in) :: n
integer :: ivec(n)
ivec = 1
end function permutation
end module random_integer_mod

Compiling gives

gfortran -c -v random_integer_gf_ice.f90
Built by Equation Solution http://www.Equation.com.
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=c:/fsf/bin/../libexec/gcc/i686-pc-mingw32/4.6.0/lto-wrapper.exe
Target: i686-pc-mingw32
Thread model: win32
gcc version 4.6.0 20101211 (experimental) (GCC) 
COLLECT_GCC_OPTIONS='-c' '-v' '-mtune=generic' '-march=pentiumpro'
 c:/fsf/bin/../libexec/gcc/i686-pc-mingw32/4.6.0/f951.exe
random_integer_gf_ice.f90 -quiet -dumpbase random_integer_gf_ice.f90
-mtune=generic -march=pentiumpro -auxbase random_integer_gf_ice -version
-fintrinsic-modules-path c:/fsf/bin/../lib/gcc/i686-pc-mingw32/4.6.0/finclude
-o C:\DOCUME~1\Vivek\LOCALS~1\Temp\ccZNOJh6.s
GNU Fortran (GCC) version 4.6.0 20101211 (experimental) (i686-pc-mingw32)
compiled by GNU C version 4.6.0 20101211 (experimental), GMP version 5.0.1,
MPFR version 3.0.0, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU Fortran (GCC) version 4.6.0 20101211 (experimental) (i686-pc-mingw32)
compiled by GNU C version 4.6.0 20101211 (experimental), GMP version 5.0.1,
MPFR version 3.0.0, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
random_integer_gf_ice.f90: In function 'permute_blocks':
random_integer_gf_ice.f90:18:0: 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.


[Bug debug/46101] [4.6 Regression] ICE: in build_abbrev_table, at dwarf2out.c:10333 with -feliminate-dwarf2-dups -g

2010-12-12 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46101

--- Comment #5 from Zdenek Sojka zsojka at seznam dot cz 2010-12-13 01:29:11 
UTC ---
Created attachment 22729
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22729
another testcase

Running testsuite with -g -feliminate-dwarf2-dups still gives similiar (or the
same?) ICE. It seems those failures happen only in C++0x mode. Attached is one
such reduced testcase. Should I open new PR for that?

$ gcc -std=c++0x -g -feliminate-dwarf2-dups pr46101-2.C 
pr46101-2.C:8:4: internal compiler error: in build_abbrev_table, at
dwarf2out.c:10476
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tha failing assert is:
gcc_assert (dwarf_version = 4 || AT_ref (a)-die_id.die_symbol);
(indeed it passes with -gdwarf-4)


[Bug tree-optimization/44563] GCC uses a lot of RAM when compiling a large numbers of functions

2010-12-12 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563

--- Comment #10 from Jan Hubicka hubicka at gcc dot gnu.org 2010-12-13 
01:46:39 UTC ---
Created attachment 22730
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22730
Fix for inline cost problem

The attached patch fixes the inliner cost problem so we converge at -O1. It is
bit brute force, but I guess it should work well in practice. With the fix -O1
converges in 90 secons.
Profile is similar to one at -O0
14898 6.7090  libc-2.11.1.so   libc-2.11.1.so   _int_malloc
7981  3.5941  cc1  cc1 
bitmap_set_bit
5993  2.6988  libc-2.11.1.so   libc-2.11.1.so   memset
5063  2.2800  cc1  cc1  htab_delete
4091  1.8423  libc-2.11.1.so   libc-2.11.1.so   _IO_vfscanf
3849  1.7333  no-vmlinux   no-vmlinux   /no-vmlinux
3807  1.7144  libc-2.11.1.so   libc-2.11.1.so   _int_free
3632  1.6356  cc1  cc1 
df_note_compute
3469  1.5622  libc-2.11.1.so   libc-2.11.1.so  
malloc_consolidate
3352  1.5095  libc-2.11.1.so   libc-2.11.1.so  
msort_with_tmp
2978  1.3411  cc1  cc1 
htab_traverse_noresize
2941  1.3244  libc-2.11.1.so   libc-2.11.1.so   free
2824  1.2717  cc1  cc1 
bitmap_clear_bit
2653  1.1947  cc1  cc1 
df_ref_create_structure
2429  1.0938  libc-2.11.1.so   libc-2.11.1.so   malloc
2239  1.0083  cc1  cc1 
df_insn_refs_collect


[Bug target/46770] Replace .ctors/.dtors with .init_array/.fini_array on targets supporting them

2010-12-12 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770

--- Comment #47 from Ian Lance Taylor ian at airs dot com 2010-12-13 02:29:46 
UTC ---
Jan Hubicka hubi...@ucw.cz writes:

   1) is there any kind of any documented requirement on initialization of
  static libraries? (i.e. is EABI fully standard conforming?)

Not in C++.

   2) I believe that the backwarding order of .ctor section was concious
  QOI issue.

Yes.  Some programs may implicitly rely on the fact that global
constructors in archives linked later are run before constructors in the
object linked against those archives.  That is, given
g++ foo.o -lbar
where bar is a static archive, not a shared library, then currently the
global constructors in objects pulled in from libbar.c will be executed
before the global constructors in foo.o.  That was an intentional choice
because it is more likely to be correct than the reverse.  However, the
C++ standard does not guarantee it, so any programs which relies on this
ordering is technically invalid.  But of course it does not follow that
we should break such programs for no reason.

  I wonder how much legacy code this might break when static
  libraries start initializing after main modules.
  i686-linux execute a lot more code than EABI.

I don't know.


Comment #1 refers to relative relocations.  I'm sure which relocations
this means.  In a linked binary I would not expect to see any
relocations in the .ctors section.

As far as backward disk seeks, I assume this refers to the constructors
that the program calls, not the .ctors section itself.  The program will
walk through the .ctors section forward to find then end and then
backward to invoke the constructors, so no backward seek should be
introduced there.  So I assume the backward seek refers to the tendency
of the constructors called earlier to be located later in the binary.  I
think the appropriate fix for this is better code positioning in the
linker, which is completely in control.  I'm not at all opposed to using
.init_array, but changing the linker would be a better way to address
this particular issue, as it would encourage such things as putting all
the global constructors together rather than scattered across the
program.

As Mark says, obviously we can not switch to .init_array for code using
constructor priorities unless we modify the linker.  But I don't think
that is a particularly big deal; we can continue to use .ctors for
constructors with priorities and use .init_array for normal
constructors, the latter case being vastly more common.

Ian


[Bug target/46915] Wrong code is generated for conditional branch followed by zero length asm

2010-12-12 Thread dave at hiauly1 dot hia.nrc.ca
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46915

--- Comment #1 from dave at hiauly1 dot hia.nrc.ca 2010-12-13 02:45:37 UTC ---
Reduced testcase attached.


  1   2   >