[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10

2010-11-29 Thread saellaven at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46651

--- Comment #7 from saellaven at gmail dot com 2010-11-29 08:13:31 UTC ---
(In reply to comment #2)
 This crash was not in the 20101104 weekly snapshot, but has been in all
 snapshots since, including 20101125.

Based on this, I just did some manual bisecting. There appears to
be 3 patches added just before gcc-4.5.1-r1 was unmasked in portage:

20_all_gcc-4.5-fno-strict-overflow.patch
49_all_gcc-4.5-pr46491-kernel-miscompile.patch
90_all_gcc-4.5-graphite-ICE.patch

removal of all 3 resulted in a gcc that would compile cairo without ICE. 

I then dropped just the graphite-ICE patch. Result: successful compile
I then dropped just the pr46491-kernel-miscompile. Result: ICE
I then dropped just the fno-strict-overflow patch. Result: ICE

90_all_gcc-4.5-graphite-ICE.patch points to:
https://bugs.gentoo.org/345861
http://gcc.gnu.org/PR45314


[Bug rtl-optimization/45354] [4.6 regression] ICE with -fselective-scheduling and -freorder-blocks-and-partition

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45354

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.6 regression] ICE:   |[4.6 regression] ICE with
   |fallthru edge crosses   |-fselective-scheduling and
   |section boundary (bb 6) |-freorder-blocks-and-partit
   |with|ion
   |g++.dg/bprob/g++-bprob-1.C  |

--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
08:24:57 UTC ---
Reduced testcase to be attached.  This is selective scheduling removing a
BARRIER and a JUMP:

(note 40 41 4 6 [bb 6] NOTE_INSN_BASIC_BLOCK)

(insn 4 40 54 6 (set (reg/v:SI 65 [ result ])
(const_int 1024 [0x400])) t.c:12 64 {*movsi_internal}
 (nil))

(jump_insn 54 4 55 6 (set (pc)
(label_ref 21)) t.c:12 -1
 (expr_list:REG_CROSSING_JUMP (nil)
(nil))
 - 21)

(barrier 55 54 21)

(code_label 21 55 22 7 2  [2 uses])

(note 22 21 52 7 [bb 7] NOTE_INSN_BASIC_BLOCK)


They cannot be removed since the edge is EDGE_CROSSING.


[Bug rtl-optimization/45354] [4.6 regression] ICE with -fselective-scheduling and -freorder-blocks-and-partition

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45354

--- Comment #8 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
08:26:47 UTC ---
Created attachment 22560
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22560
Reduced testcase

Compile with -O -fschedule-insns -fselective-scheduling
-freorder-blocks-and-partition -fno-inline and -fprofile-generate/-fprofile-use


[Bug rtl-optimization/45354] [4.6 regression] ICE with -fselective-scheduling and -freorder-blocks-and-partition

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45354

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

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


[Bug tree-optimization/46675] [4.6 Regression] profiledbootstrap failed

2010-11-29 Thread rakdver at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46675

Zdenek Dvorak rakdver at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

--- Comment #28 from Zdenek Dvorak rakdver at gcc dot gnu.org 2010-11-29 
08:37:01 UTC ---
As far as I can tell, there is no overflow in the code.  So, this is indeed a
bug in # of iterations analysis.


[Bug fortran/46703] New: Wrong I/O output (only) when running under valgrind

2010-11-29 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46703

   Summary: Wrong I/O output (only) when running under valgrind
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: jvdeli...@gcc.gnu.org


There is something odd with the following program. It shows (here) always the
correct output -- except I run it through valgrind.

(The program is from
http://groups.google.com/group/comp.lang.fortran/msg/cb8e13e6226bc6c5 (part of
the c.l.f thread
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/1b907e3b7b6f3461).
James reports that it fails on MinGW with the www.equation.com version but not
with the MinGW version.)

Without valgrind, the program prints (with GCC 4.6 and 4.5 and any optimization
level):
  3.36210314311209350626E-4912
  ...
  3.36210314311209350626E-4912
  1.18973149535723176502E+4932
  ...
  1.18973149535723176502E+4932

However, using valgrind I get:
   0.000
   ...
   0.000
  i.f   E+
   ...
  i.f   E+

But otherwise no warning and no leakage.

Using GCC 4.5, I get with valgrind 0. and +Infinity.

The issue seems to be in libgfortran as the result depends on the library and
not on the FE compiler. I am also not sure whether there is a real issue or
whether it is just a side effect of valgrind.


program bugs2
   implicit none
   integer, parameter :: ep = 10
   real(ep) x
   integer i

   x = tiny(x)
   write(*,*) x
   do i = 1, 10
  x = 100*x
  write(*,*) x
   end do
   x = huge(x)
   write(*,*) x
   do i = 1, 10
  x = x/1.0e100_ep
  write(*,*) x
   end do
end program bugs2


[Bug preprocessor/39213] [4.4/4.5/4.6 regression] Preprocessor ICE with -m64 and --traditional-cpp

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39213

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 CC||tromey at gcc dot gnu.org

--- Comment #13 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
08:41:06 UTC ---
Tom, what's the best approach to fixing this?


[Bug rtl-optimization/46337] dse.c:replace_inc_dec mis-use of gen_int_mode

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46337

--- Comment #4 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
08:57:56 UTC ---
Author: ebotcazou
Date: Mon Nov 29 08:57:53 2010
New Revision: 167235

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167235
Log:
PR rtl-optimization/46337
Backport from mainline
2009-04-20  Ian Lance Taylor  i...@google.com

* dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.

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


[Bug rtl-optimization/46337] dse.c:replace_inc_dec mis-use of gen_int_mode

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46337

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
08:59:43 UTC ---
Fixed on 4.4 branch.


[Bug target/46655] invalid '.line 0' directive emitted with -g

2010-11-29 Thread michael.haubenwallner at salomon dot at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46655

--- Comment #6 from Michael Haubenwallner michael.haubenwallner at salomon dot 
at 2010-11-29 09:05:53 UTC ---
I'm in contact with IBM vi a customer's support channel - initially for another
problem, and have added this 64k-line-limit recently.
Although no reply yet, I'll add updates here when available.


[Bug ada/46704] New: ada bootstrap failure on arm-linux-gnueabi

2010-11-29 Thread doko at ubuntu dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46704

   Summary: ada bootstrap failure on arm-linux-gnueabi
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: d...@ubuntu.com


trunk 20101116 was the last one to build (with the patch suggested in PR46040),
20101128 fails. both builds done with binutils from the 2.21 branch.

gcc is configured with
 --with-arch=armv7-a
 --with-float=softfp
 --with-fpu=vfpv3-d16
 --with-mode=thumb

gnatgcc -static-libgcc  -o gnat1 ada/b_gnat1.o ada/adadecode.o ada/adaint.o
ada/cstreams.o ada/cio.o ada/targtyps.o ada/decl.o ada/misc.o ada/utils.o
ada/utils2.o ada/trans.o ada/cuintp.o ada/argv.o ada/raise.o ada/init.o
ada/tracebak.o ada/initialize.o ada/env.o ada/a-charac.o ada/a-chlat1.o
ada/a-elchha.o ada/a-except.o ada/a-ioexce.o ada/ada.o ada/ali.o ada/alloc.o
ada/aspects.o ada/atree.o ada/butil.o ada/casing.o ada/checks.o ada/comperr.o
ada/csets.o ada/cstand.o ada/debug.o ada/debug_a.o ada/einfo.o ada/elists.o
ada/err_vars.o ada/errout.o ada/erroutc.o ada/eval_fat.o ada/exp_aggr.o
ada/exp_atag.o ada/exp_attr.o ada/exp_cg.o ada/exp_ch11.o ada/exp_ch12.o
ada/exp_ch13.o ada/exp_ch2.o ada/exp_ch3.o ada/exp_ch4.o ada/exp_ch5.o
ada/exp_ch6.o ada/exp_ch7.o ada/exp_ch8.o ada/exp_ch9.o ada/exp_code.o
ada/exp_dbug.o ada/exp_disp.o ada/exp_dist.o ada/exp_fixd.o ada/exp_imgv.o
ada/exp_intr.o ada/exp_pakd.o ada/exp_prag.o ada/exp_sel.o ada/exp_smem.o
ada/exp_strm.o ada/exp_tss.o ada/exp_util.o ada/exp_vfpt.o ada/expander.o
ada/fmap.o ada/fname-uf.o ada/fname.o ada/freeze.o ada/frontend.o
ada/g-byorma.o ada/g-hesora.o ada/g-htable.o ada/g-spchge.o ada/g-speche.o
ada/g-u3spch.o ada/get_scos.o ada/get_targ.o ada/gnat.o ada/gnatvsn.o ada/hlo.o
ada/hostparm.o ada/impunit.o ada/inline.o ada/interfac.o ada/itypes.o
ada/krunch.o ada/layout.o ada/lib-load.o ada/lib-util.o ada/lib-writ.o
ada/lib-xref.o ada/lib.o ada/live.o ada/namet-sp.o ada/namet.o ada/nlists.o
ada/nmake.o ada/opt.o ada/osint-c.o ada/osint.o ada/output.o ada/par.o
ada/par_sco.o ada/prep.o ada/prepcomp.o ada/put_scos.o ada/repinfo.o
ada/restrict.o ada/rident.o ada/rtsfind.o ada/s-addope.o ada/s-assert.o
ada/s-bitops.o ada/s-carun8.o ada/s-casuti.o ada/s-conca2.o ada/s-conca3.o
ada/s-conca4.o ada/s-conca5.o ada/s-conca6.o ada/s-conca7.o ada/s-conca8.o
ada/s-conca9.o ada/s-crc32.o ada/s-crtl.o ada/s-except.o ada/s-exctab.o
ada/s-htable.o ada/s-imenne.o ada/s-imgenu.o ada/s-mastop.o ada/s-memory.o
ada/s-os_lib.o ada/s-parame.o ada/s-purexc.o ada/s-restri.o ada/s-secsta.o
ada/s-soflin.o ada/s-sopco3.o ada/s-sopco4.o ada/s-sopco5.o ada/s-stache.o
ada/s-stalib.o ada/s-stoele.o ada/s-strcom.o ada/s-strhas.o ada/s-string.o
ada/s-strops.o ada/s-traceb.o ada/s-traent.o ada/s-unstyp.o ada/s-utf_32.o
ada/s-wchcnv.o ada/s-wchcon.o ada/s-wchjis.o ada/scans.o ada/scil_ll.o
ada/scn.o ada/scng.o ada/scos.o ada/sdefault.o ada/seh_init.o ada/sem.o
ada/sem_aggr.o ada/sem_attr.o ada/sem_aux.o ada/sem_case.o ada/sem_cat.o
ada/sem_ch10.o ada/sem_ch11.o ada/sem_ch12.o ada/sem_ch13.o ada/sem_ch2.o
ada/sem_ch3.o ada/sem_ch4.o ada/sem_ch5.o ada/sem_ch6.o ada/sem_ch7.o
ada/sem_ch8.o ada/sem_ch9.o ada/sem_disp.o ada/sem_dist.o ada/sem_elab.o
ada/sem_elim.o ada/sem_eval.o ada/sem_intr.o ada/sem_mech.o ada/sem_prag.o
ada/sem_res.o ada/sem_scil.o ada/sem_smem.o ada/sem_type.o ada/sem_util.o
ada/sem_vfpt.o ada/sem_warn.o ada/sinfo-cn.o ada/sinfo.o ada/sinput-d.o
ada/sinput-l.o ada/sinput.o ada/snames.o ada/sprint.o ada/stand.o ada/stringt.o
ada/style.o ada/styleg.o ada/stylesw.o ada/switch-c.o ada/switch.o ada/system.o
ada/table.o ada/targext.o ada/targparm.o ada/tbuild.o ada/tree_gen.o
ada/tree_in.o ada/tree_io.o ada/treepr.o ada/treeprs.o ada/ttypes.o ada/types.o
ada/uintp.o ada/uname.o ada/urealp.o ada/usage.o ada/validsw.o ada/widechar.o
ada/back_end.o ada/gnat1drv.o prefix.o main.o tree-browser.o libbackend.a
../libcpp/libcpp.a ../libdecnumber/libdecnumber.a attribs.o ../libcpp/libcpp.a 
 ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a   -lcloog -lppl_c
-lppl -lgmpxx -lmpc -lmpfr -lgmp -rdynamic -ldl  -lz -g -fkeep-inline-functions
ada/a-charac.o:(.debug_aranges+0x6): undefined reference to `.Ldebug_info0'
ada/ada.o:(.debug_aranges+0x6): undefined reference to `.Ldebug_info0'
ada/alloc.o:(.debug_aranges+0x6): undefined reference to `.Ldebug_info0'
ada/g-htable.o:(.debug_aranges+0x6): undefined reference to `.Ldebug_info0'
ada/g-spchge.o:(.debug_aranges+0x6): undefined reference to `.Ldebug_info0'
ada/get_scos.o:(.debug_aranges+0x6): more undefined references to
`.Ldebug_info0' follow
/usr/bin/ld: warning: .init_array section has zero size
/usr/bin/ld: warning: .fini_array section has zero size
collect2: ld returned 1 exit status
make[5]: *** [gnat1] Error 1
make[5]: Leaving directory `/build/buildd/gcc-snapshot-20101128/build/gcc'
make[4]: *** [all-stage1-gcc] 

[Bug target/46655] invalid '.line 0' directive emitted with -g

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46655

--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
09:09:21 UTC ---
The compiler needs to be prevented from emitting .line 0 in any case since BFD
also chokes on that.


[Bug target/46655] invalid '.line 0' directive emitted with -g

2010-11-29 Thread hainque at adacore dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46655

--- Comment #8 from hainque at adacore dot com hainque at adacore dot com 
2010-11-29 09:17:03 UTC ---
dje at gcc dot gnu.org wrote:

 Has anyone reported this AIX assembler behavior to IBM?  It would be
 much more effective coming from an external customer than from me.

 We haven't done that on our side. We haven't observed the 64K limit.

 We had observed the 0 case and thought it was legitimate to
 consider this invalid, so came up with a change close to what was
 suggested upthread, with comments on their possible origin after
 investgation. (attached)

 I can provide a testcase that triggered on 4.5 at least.

 Olivier


[Bug tree-optimization/46675] [4.6 Regression] profiledbootstrap failed

2010-11-29 Thread rakdver at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46675

--- Comment #29 from Zdenek Dvorak rakdver at gcc dot gnu.org 2010-11-29 
09:16:56 UTC ---
Created attachment 22561
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22561
patch to fix overflow in # of iterations analysi

Fixes overflow in # of iterations analysis -- when splitting var - INT_MIN to a
sum of a variable part and a constant offset, we performed the negation of the
offset in the original type (which overflows for INT_MIN) instead of in full
precision.


[Bug fortran/46705] New: Spurious Missing '' in continued character constant warning occurs twice

2010-11-29 Thread mathewc at nag dot co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46705

   Summary: Spurious Missing '' in continued character constant
warning occurs twice
   Product: gcc
   Version: fortran-dev
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: math...@nag.co.uk


 uname -a
Linux loanamd27 2.6.11.4-20a-smp #1 SMP Wed Mar 23 21:52:37 UTC 2005 x86_64
x86_64 x86_64 GNU/Linux

 gfortran --version
GNU Fortran (GCC) 4.6.0 20101120 (experimental)

 cat contin_char.f90 
1 FORMAT (''
   )
END

 gfortran -Wampersand contin_char.f90
contin_char.f90:2.8:

   )
1
Warning: Missing '' in continued character constant at (1)
contin_char.f90:2.8:

   )
1
Warning: Missing '' in continued character constant at (1)


[Bug c++/46669] New: [C++0x] ICE in TBB's atomic header

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

   Summary: [C++0x] ICE in TBB's atomic header
   Product: gcc
   Version: 4.6.0
Status: WAITING
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jeffrey.don...@gmail.com
  Last reconfirmed: 2010-11-29 10:37:34


Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2010.11.29 10:37:34
Summary|ICE with 4.6.0 2010-11-26   |[C++0x] ICE in TBB's
   |with c++0x, in TBB's|atomic header
   |atomic header |
 Ever Confirmed|0   |1

It doesn't happen without the -std=c++0x flag. 

Command line. Pre-processed, mostly-TBB-including file attached (it's the
open-source one, v3.0.3 I think.) 

j...@shade:~/projects/tbb-play$ g++ -v -save-temps -std=c++0x
-I/usr/local/tbb/include provoke.cpp
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/gcc-svn/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure --prefix=/usr/local/gcc-svn
--disable-multilib --enable-languages=c,c++
Thread model: posix
gcc version 4.6.0 20101126 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++0x' '-I'
'/usr/local/tbb/include' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/local/gcc-svn/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/cc1plus -E
-quiet -v -I /usr/local/tbb/include -D_GNU_SOURCE provoke.cpp -mtune=generic
-march=x86-64 -std=c++0x -fpch-preprocess -o provoke.ii
ignoring nonexistent directory
/usr/local/gcc-svn/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../x86_64-unknown-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/local/tbb/include

/usr/local/gcc-svn/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0

/usr/local/gcc-svn/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/x86_64-unknown-linux-gnu

/usr/local/gcc-svn/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/backward
 /usr/local/gcc-svn/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include
 /usr/local/include
 /usr/local/gcc-svn/include
 /usr/local/gcc-svn/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++0x' '-I'
'/usr/local/tbb/include' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/local/gcc-svn/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/cc1plus
-fpreprocessed provoke.ii -quiet -dumpbase provoke.cpp -mtune=generic
-march=x86-64 -auxbase provoke -std=c++0x -version -o provoke.s
GNU C++ (GCC) version 4.6.0 20101126 (experimental) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.6.0 20101126 (experimental), GMP version
4.3.2, MPFR version 2.4.2-p1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C++ (GCC) version 4.6.0 20101126 (experimental) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.6.0 20101126 (experimental), GMP version
4.3.2, MPFR version 2.4.2-p1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 031a1f3491053d565cf85073149b7157
In file included from /usr/local/tbb/include/tbb/atomic.h:41:0,
 from provoke.cpp:1:
/usr/local/tbb/include/tbb/tbb_machine.h: In function ‘T __TBB_ReverseBits(T)’:
/usr/local/tbb/include/tbb/tbb_machine.h:686:66: internal compiler error: in
dependent_type_p, at cp/pt.c:17928
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2010-11-29 
10:37:34 UTC ---
Pre-processed file missing.


[Bug c/46702] inlining generates strict-aliasing warnings

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46702

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
10:48:36 UTC ---
The code is strictly invalid with or without inlining, but with inlining the
compiler gets to see it.  You are accessing buf via an lvalue which type
does not alias any of bufs members.

GCC 4.5 and up will tolerate this if you only ever read from the memory
location using an lvalue which type aliases the type of the lvalue you
used for the store.


[Bug middle-end/46674] [4.6 Regression] Weak alias is mistakenly optimized away

2010-11-29 Thread jiez at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46674

--- Comment #3 from Jie Zhang jiez at gcc dot gnu.org 2010-11-29 10:56:37 UTC 
---
If I revert this change, this bug will disappear.

@@ -416,7 +415,7 @@ cgraph_remove_unreachable_nodes (bool be
   found = true;

   /* If so, we need to keep node in the callgraph.  */
-  if (found || node-needed)
+  if (found)
 {
   if (node-analyzed)
 {


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread jorton at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

Joe Orton jorton at redhat dot com changed:

   What|Removed |Added

 CC||jorton at redhat dot com

--- Comment #19 from Joe Orton jorton at redhat dot com 2010-11-29 11:02:26 
UTC ---
(In reply to comment #18)
 Using
 
 #define APR_RING_SENTINEL(hp, elem, link)\
 (struct elem *)((char *)(hp) - APR_OFFSETOF(struct elem, link))
 
 should be safer wrt strict aliasing.

We changed the macro from that to the current definition to avoid strict
aliasing warnings from gcc:

  http://svn.apache.org/viewvc?view=revisionrevision=662299

Does the cast through a char * not have the desired effect of allowing the
pointer to alias any other pointer regardless of type?  That is one of the
exceptions in C99 6.5/par 7.

Why specifically does this result in an C99 aliasing violation anyway?  The
pointers to which this macro evaluates are never dereferenced, only compared
for equality.


[Bug rtl-optimization/46337] dse.c:replace_inc_dec mis-use of gen_int_mode

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46337

--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
11:03:07 UTC ---
Author: ebotcazou
Date: Mon Nov 29 11:03:03 2010
New Revision: 167238

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167238
Log:
PR rtl-optimization/46337
Backport from mainline
2009-04-20  Ian Lance Taylor  i...@google.com

* dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.

Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/dse.c


[Bug c++/46669] [C++0x] ICE in TBB's atomic header

2010-11-29 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46669

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||DUPLICATE

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2010-11-29 
11:05:09 UTC ---
Dup, 46670 has preprocessed source and is already reduced by HJ

For some reason bugzilla is not sending out emails for new bugs until someone
replies to them. See
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03512.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03492.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03488.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03493.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03486.html
and PR 46482

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


[Bug c++/46670] [4.6 Regression] ICE in dependent_type_p, at cp/pt.c:17553

2010-11-29 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46670

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2010-11-29 
11:05:09 UTC ---
*** Bug 46669 has been marked as a duplicate of this bug. ***


[Bug web/46482] [bugzilla] emails not sent to gcc-bugs

2010-11-29 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46482

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2010-11-29 
11:06:39 UTC ---
bugzilla did not sending out emails for some new bugs until someone
replies to them. See
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03512.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03492.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03488.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03493.html
http://gcc.gnu.org/ml/gcc-bugs/2010-11/msg03486.html
all those emails say New:  but also contain comment #1 as well as the
original bug


[Bug web/46482] [bugzilla] emails not sent to gcc-bugs

2010-11-29 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46482

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org 2010-11-29 
11:08:50 UTC ---
(In reply to comment #4)
 bugzilla did not sending out emails for some new bugs until someone
 replies to them.

Should read Bugzilla *is* not sending out ...


[Bug web/46482] [bugzilla] emails not sent to gcc-bugs

2010-11-29 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46482

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2010-11-29 
11:12:09 UTC ---
For PR 46669 THREE DAYS passed without an email being sent for the initial bug,
then finally a New: email was sent when Paolo responded to it.

If bugs are not sent to the gcc-bugs list then they will be missed and will go
unanswered until/unless someone searches for unconfirmed bugs


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

--- Comment #20 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
11:15:58 UTC ---
 We changed the macro from that to the current definition to avoid strict
 aliasing warnings from gcc:
 
   http://svn.apache.org/viewvc?view=revisionrevision=662299

Bummer. :-)

 Does the cast through a char * not have the desired effect of allowing the
 pointer to alias any other pointer regardless of type?  That is one of the
 exceptions in C99 6.5/par 7.

Classical misconception.  What matters is the type of the lvalue used to access
the object, not the types through which the pointer value is casted, i.e:

  float f = 0.0;
  int t;

  t = *(int *)(char *)f;

is as erroneous as:

  float f = 0.0;
  int t;

  t = *(int *)f;

 Why specifically does this result in an C99 aliasing violation anyway?  The
 pointers to which this macro evaluates are never dereferenced, only compared
 for equality.

I think they are dereferenced by the macro APR_RING_{NEXT,PREV} in some cases.


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread jorton at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

--- Comment #21 from Joe Orton jorton at redhat dot com 2010-11-29 11:38:44 
UTC ---
Thanks for the explanation.

(In reply to comment #20)
  Why specifically does this result in an C99 aliasing violation anyway?  The
  pointers to which this macro evaluates are never dereferenced, only compared
  for equality.
 
 I think they are dereferenced by the macro APR_RING_{NEXT,PREV} in some cases.

The pointers are constructed explicitly to never be dereferenced, only compared
for equality; if a dereference exists it would be a bug, but I don't see one.

In the absence of such a smoking gun, can an C99 aliasing issue occur merely in
handling pointer equivalence?


[Bug middle-end/46685] [4.6 Regression] New stack alignment failures

2010-11-29 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46685

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-11-29 
11:46:28 UTC ---
What is the assembly difference on SPARC Linux?  The only difference I see with
a cross compiler to sparc64-linux, both for -O1 -m32 -mptr32 and -O1 -m64 is
.section.text.startup,ax,@progbits
line added before main, which I don't see how it should break things up.


[Bug middle-end/46685] [4.6 Regression] New stack alignment failures

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46685

--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
11:58:56 UTC ---
 What is the assembly difference on SPARC Linux?  The only difference I see 
 with
 a cross compiler to sparc64-linux, both for -O1 -m32 -mptr32 and -O1 -m64 is
 .section.text.startup,ax,@progbits
 line added before main, which I don't see how it should break things up.

The errors are also visible on SPARC/Solaris.  You need -fpic.

FAIL: gcc.dg/torture/stackalign/non-local-goto-1.c  -Os  (test for excess
error\
s)
Excess errors:
/var/tmp//ccC9NwIg.s:27: Error: invalid sections for operation on `.LL3' and
`L\
0^A'
/var/tmp//ccC9NwIg.s:29: Error: invalid sections for operation on `.LL3' and
`L\
0^A'

WARNING: gcc.dg/torture/stackalign/non-local-goto-1.c  -Os  compilation failed
\
to produce executable


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

--- Comment #22 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
12:09:30 UTC ---
 The pointers are constructed explicitly to never be dereferenced, only
 compared for equality; if a dereference exists it would be a bug, but
 I don't see one.

APR_RING_SPLICE_HEAD does such a dereference as far I can see:

#define APR_RING_SPLICE_HEAD(hp, ep1, epN, elem, link)\
APR_RING_SPLICE_AFTER(APR_RING_SENTINEL((hp), elem, link),\
 (ep1), (epN), link)

#define APR_RING_SPLICE_AFTER(lep, ep1, epN, link) do {\
APR_RING_PREV((ep1), link) = (lep);\
APR_RING_NEXT((epN), link) = APR_RING_NEXT((lep), link);\
APR_RING_PREV(APR_RING_NEXT((lep), link), link) = (epN);\
APR_RING_NEXT((lep), link) = (ep1);\
} while (0)

#define APR_RING_NEXT(ep, link)(ep)-link.next
#define APR_RING_PREV(ep, link)(ep)-link.prev

 In the absence of such a smoking gun, can an C99 aliasing issue occur merely
 in handling pointer equivalence?

That would be a real compiler bug. :-)


You seem to be quite familiar with the httpd code.  Can you pinpoint what is
miscompiled exactly in ap_core_input_filter or ap_core_output_filter?  I'm not
saying that the miscompilation comes from this strict aliasing issue, only that
it might at this point.


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

2010-11-29 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46671

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Target|hppa2.0w-hp-hpux11.11   |hppa2.0w-hp-hpux11.11,
   ||alpha-dec-osf5.1b
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.11.29 12:20:47
 CC||ro at gcc dot gnu.org
   Host|hppa2.0w-hp-hpux11.11   |hppa2.0w-hp-hpux11.11,
   ||alpha-dec-osf5.1b
 Ever Confirmed|0   |1
  Build|hppa2.0w-hp-hpux11.11   |hppa2.0w-hp-hpux11.11,
   ||alpha-dec-osf5.1b

--- Comment #3 from Rainer Orth ro at gcc dot gnu.org 2010-11-29 12:20:47 UTC 
---
Tru64 UNIX V5.1B is equally affected.  Please fix.


[Bug c++/46653] [trans-mem] ICE with volatile int in transactional constructor using -O1

2010-11-29 Thread aldyh at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46653

Aldy Hernandez aldyh at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2010.11.29 12:44:58
 Ever Confirmed|0   |1

--- Comment #1 from Aldy Hernandez aldyh at gcc dot gnu.org 2010-11-29 
12:44:58 UTC ---
Where's the testcase?


[Bug c++/46653] [trans-mem] ICE with volatile int in transactional constructor using -O1

2010-11-29 Thread patrick.marlier at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46653

--- Comment #2 from Patrick Marlier patrick.marlier at gmail dot com 
2010-11-29 13:34:36 UTC ---
Created attachment 22563
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22563
testcase ICE with volatile int in transactional constructor using -O1

Sorry, I don't why it was not uploaded...


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org

--- Comment #23 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
13:36:20 UTC ---
(In reply to comment #22)
  The pointers are constructed explicitly to never be dereferenced, only
  compared for equality; if a dereference exists it would be a bug, but
  I don't see one.
 
 APR_RING_SPLICE_HEAD does such a dereference as far I can see:
 
 #define APR_RING_SPLICE_HEAD(hp, ep1, epN, elem, link)\
 APR_RING_SPLICE_AFTER(APR_RING_SENTINEL((hp), elem, link),\
  (ep1), (epN), link)
 
 #define APR_RING_SPLICE_AFTER(lep, ep1, epN, link) do {\
 APR_RING_PREV((ep1), link) = (lep);\
 APR_RING_NEXT((epN), link) = APR_RING_NEXT((lep), link);\
 APR_RING_PREV(APR_RING_NEXT((lep), link), link) = (epN);\
 APR_RING_NEXT((lep), link) = (ep1);\
 } while (0)
 
 #define APR_RING_NEXT(ep, link)(ep)-link.next
 #define APR_RING_PREV(ep, link)(ep)-link.prev
 
  In the absence of such a smoking gun, can an C99 aliasing issue occur merely
  in handling pointer equivalence?
 
 That would be a real compiler bug. :-)
 
 
 You seem to be quite familiar with the httpd code.  Can you pinpoint what is
 miscompiled exactly in ap_core_input_filter or ap_core_output_filter?  I'm not
 saying that the miscompilation comes from this strict aliasing issue, only 
 that
 it might at this point.

Btw, in 4.6 this was likely fixed by making all pointers inherit the
same alias set as void * (as this is a very common misconception that
you can alias all pointers with void *, or that all pointers do alias
in general):

2010-08-25  Richard Guenther  rguent...@suse.de

* alias.c (get_alias_set): Assign a single alias-set to all pointers.
* gimple.c (gimple_get_alias_set): Remove special handling
for pointers.

it doesn't make the type-punning valid, of course, but in 4.6 we try
harder to not break users code just because we are allowed to.


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

--- Comment #24 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
13:39:02 UTC ---
(In reply to comment #18)
 Using
 
 #define APR_RING_SENTINEL(hp, elem, link)\
 (struct elem *)((char *)(hp) - APR_OFFSETOF(struct elem, link))
 
 should be safer wrt strict aliasing.

not really.  But using

typedef struct elem elem_ __attribute__((may_alias));
#define APR_RING_SENTINEL(hp, elem, link) \
(struct elem_ *)((char *)(hp) - APR_OFFSETOF(struct elem, link))

would be safe wrt strict aliasing (if the pointer is only dereferenced
directly and not casted to another pointer type before, of course).


[Bug rtl-optimization/45354] [4.6 regression] ICE with -fselective-scheduling and -freorder-blocks-and-partition

2010-11-29 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45354

Alexander Monakov amonakov at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #9 from Alexander Monakov amonakov at gcc dot gnu.org 2010-11-29 
13:58:45 UTC ---
Thanks.  We go over-eager when cleaning up degenerate jumps and don't pay
attention to EDGE_CROSSING.

diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index 7956cd8..0adc836 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -156,6 +156,7 @@ static void move_bb_info (basic_block, basic_block);
 static void remove_empty_bb (basic_block, bool);
 static void sel_merge_blocks (basic_block, basic_block);
 static void sel_remove_loop_preheader (void);
+static bool have_removable_jump_p (basic_block, basic_block);

 static bool insn_is_the_only_one_in_bb_p (insn_t);
 static void create_initial_data_sets (basic_block);
@@ -3675,7 +3676,7 @@ tidy_control_flow (basic_block xbb, bool full_tidying)
 return changed;

   /* Check if there is a unnecessary jump after insn left.  */
-  if (jump_leads_only_to_bb_p (BB_END (xbb), xbb-next_bb)
+  if (have_removable_jump_p (xbb, xbb-next_bb)
INSN_SCHED_TIMES (BB_END (xbb)) == 0
!IN_CURRENT_FENCE_P (BB_END (xbb)))
 {
@@ -3716,7 +3717,7 @@ tidy_control_flow (basic_block xbb, bool full_tidying)
   /* And unconditional jump in previous basic block leads to
  next basic block of XBB and this jump can be safely removed.  */
in_current_region_p (xbb-prev_bb)
-   jump_leads_only_to_bb_p (BB_END (xbb-prev_bb), xbb-next_bb)
+   have_removable_jump_p (xbb-prev_bb, xbb-next_bb)
INSN_SCHED_TIMES (BB_END (xbb-prev_bb)) == 0
   /* Also this jump is not at the scheduling boundary.  */
!IN_CURRENT_FENCE_P (BB_END (xbb-prev_bb)))
@@ -6104,11 +6105,13 @@ sel_is_loop_preheader_p (basic_block bb)
   return false;
 }

-/* Checks whether JUMP leads to basic block DEST_BB and no other blocks.  */
-bool
-jump_leads_only_to_bb_p (insn_t jump, basic_block dest_bb)
+/* Check whether JUMP_BB ends with a jump insn that leads only to DEST_BB and
+   can be removed, making the corresponding edge fallthrough (assuming that
+   all basic blocks between JUMP_BB and DEST_BB are empty).  */
+static bool
+have_removable_jump_p (basic_block jump_bb, basic_block dest_bb)
 {
-  basic_block jump_bb = BLOCK_FOR_INSN (jump);
+  insn_t jump = BB_END (jump_bb);

   /* It is not jump, jump with side-effects or jump can lead to several
  basic blocks.  */
@@ -6119,7 +6122,7 @@ jump_leads_only_to_bb_p (insn_t jump, basic_block
dest_bb)
   /* Several outgoing edges, abnormal edge or destination of jump is
  not DEST_BB.  */
   if (EDGE_COUNT (jump_bb-succs) != 1
-  || EDGE_SUCC (jump_bb, 0)-flags  EDGE_ABNORMAL
+  || EDGE_SUCC (jump_bb, 0)-flags  (EDGE_ABNORMAL | EDGE_CROSSING)
   || EDGE_SUCC (jump_bb, 0)-dest != dest_bb)
 return false;

@@ -6199,7 +6202,7 @@ sel_remove_loop_preheader (void)
  basic block if it becomes empty.  */
   if (next_bb-prev_bb == prev_bb
prev_bb != ENTRY_BLOCK_PTR
-   jump_leads_only_to_bb_p (BB_END (prev_bb), next_bb))
+   have_removable_jump_p (prev_bb, next_bb))
 {
   redirect_edge_and_branch (EDGE_SUCC (prev_bb, 0), next_bb);
   if (BB_END (prev_bb) == bb_note (prev_bb))
diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h
index 9ab0466..1f3dec4 100644
--- a/gcc/sel-sched-ir.h
+++ b/gcc/sel-sched-ir.h
@@ -1590,7 +1590,6 @@ extern bool sel_remove_insn (insn_t, bool, bool);
 extern bool bb_header_p (insn_t);
 extern void sel_init_invalid_data_sets (insn_t);
 extern bool insn_at_boundary_p (insn_t);
-extern bool jump_leads_only_to_bb_p (insn_t, basic_block);

 /* Basic block and CFG functions.  */


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread jorton at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

--- Comment #25 from Joe Orton jorton at redhat dot com 2010-11-29 14:03:40 
UTC ---
(In reply to comment #22)
 APR_RING_SPLICE_HEAD does such a dereference as far I can see:

You are right, sorry, I had forgotten exactly how this code works.

(In reply to comment #24)
 not really.  But using
 
 typedef struct elem elem_ __attribute__((may_alias));
 #define APR_RING_SENTINEL(hp, elem, link) \
 (struct elem_ *)((char *)(hp) - APR_OFFSETOF(struct elem, link))
 
 would be safe wrt strict aliasing (if the pointer is only dereferenced
 directly and not casted to another pointer type before, of course).

I don't think we can guarantee this with the API unchanged; the sentinel
pointer could well be stored in a struct elem * pointer.


[Bug tree-optimization/46675] [4.6 Regression] profiledbootstrap failed

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

--- Comment #30 from Uros Bizjak ubizjak at gmail dot com 2010-11-29 14:07:19 
UTC ---
(In reply to comment #29)

 Fixes overflow in # of iterations analysis -- when splitting var - INT_MIN to 
 a
 sum of a variable part and a constant offset, we performed the negation of the
 offset in the original type (which overflows for INT_MIN) instead of in full
 precision.

This patch fixes profiledbootstrap as well. Also, there are no new testsuite
failures on x86_64-pc-linux-gnu.


[Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3

2010-11-29 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488

--- Comment #26 from rguenther at suse dot de rguenther at suse dot de 
2010-11-29 14:20:45 UTC ---
On Mon, 29 Nov 2010, jorton at redhat dot com wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488
 
 --- Comment #25 from Joe Orton jorton at redhat dot com 2010-11-29 14:03:40 
 UTC ---
 (In reply to comment #22)
  APR_RING_SPLICE_HEAD does such a dereference as far I can see:
 
 You are right, sorry, I had forgotten exactly how this code works.
 
 (In reply to comment #24)
  not really.  But using
  
  typedef struct elem elem_ __attribute__((may_alias));
  #define APR_RING_SENTINEL(hp, elem, link) \
  (struct elem_ *)((char *)(hp) - APR_OFFSETOF(struct elem, link))
  
  would be safe wrt strict aliasing (if the pointer is only dereferenced
  directly and not casted to another pointer type before, of course).
 
 I don't think we can guarantee this with the API unchanged; the sentinel
 pointer could well be stored in a struct elem * pointer.

You could stick the attribute on the elem struct declaration itself then.

Richard.


[Bug c++/46706] New: global constructors does not work properly since changes from bug 29141

2010-11-29 Thread mschulze at ivs dot cs.ovgu.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46706

   Summary: global constructors does not work properly since
changes from bug 29141
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mschu...@ivs.cs.ovgu.de
CC: mschu...@ivs.cs.ovgu.de
Target: avr


In my opinion the bug 29141 is still pending and not fixed. I reported it there
but until now no reaction and I am not able to reopen the bug thus I open a new
one.

The proposed fix of bug 29141 rises another issue. Since this change, global
constructors does not work properly anymore. The fix uses register r20 within
the __do_global_ctors loop but this register could be clobbered by a
constructor that is called, leading to destructing the exit condition of the
__do_global_ctors loop. In new version of gcc (see bug 45263 but still not
confirmed) this is weakly fixed by pushing and poping r20 around the
constructor call. I would suggest using a register between r2-r17 instead of
r20. According to the compiler abi this should be a register that the called
routine has to save if it needs to use it.

In my eyes, this is a critical or maybe a blocker bug, because global objects
can not be used as long as r20 is used unprotected without pushing/poping, or
by using another register instead that is not faced by this problem. 

Affected gcc versions 4.4.0 - 4.5.1


[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10

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

--- Comment #8 from H.J. Lu hjl.tools at gmail dot com 2010-11-29 14:37:24 
UTC ---
Please try the unmodified GCC 4.5.1.


[Bug c++/46653] [trans-mem] ICE with volatile int in transactional constructor using -O1

2010-11-29 Thread aldyh at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46653

--- Comment #3 from Aldy Hernandez aldyh at gcc dot gnu.org 2010-11-29 
14:41:20 UTC ---
Fixed here:
http://gcc.gnu.org/ml/gcc-patches/2010-11/msg02793.html

Pending approval.


[Bug tree-optimization/46675] [4.6 Regression] profiledbootstrap failed

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46675

--- Comment #31 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
14:54:26 UTC ---
(In reply to comment #30)
 (In reply to comment #29)
 
  Fixes overflow in # of iterations analysis -- when splitting var - INT_MIN 
  to a
  sum of a variable part and a constant offset, we performed the negation of 
  the
  offset in the original type (which overflows for INT_MIN) instead of in full
  precision.
 
 This patch fixes profiledbootstrap as well. Also, there are no new testsuite
 failures on x86_64-pc-linux-gnu.

Looks obvious even ;)  Thanks Zdenek.


[Bug c++/46701] [C++0x] ICE in build_data_member_initialization, at cp/semantics.c:5503

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

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.11.29 14:56:22
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1

--- Comment #7 from H.J. Lu hjl.tools at gmail dot com 2010-11-29 14:56:22 
UTC ---
ICE on the preprocessed testcase is caused by revision 166165:

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


[Bug c++/46706] global constructors does not work properly since changes from bug 29141

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46706

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
14:57:33 UTC ---
.

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


[Bug target/45263] registers used in __do_global_ctors can get clobbered

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45263

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mschulze at ivs dot
   ||cs.ovgu.de

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
14:57:33 UTC ---
*** Bug 46706 has been marked as a duplicate of this bug. ***


[Bug target/26427] with -fsection-anchors with zero sized structs

2010-11-29 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26427

--- Comment #21 from Iain Sandoe iains at gcc dot gnu.org 2010-11-29 14:58:23 
UTC ---
Author: iains
Date: Mon Nov 29 14:58:16 2010
New Revision: 167242

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167242
Log:

PR target/26427
PR target/33120
PR testsuite/35710

gcc:
* config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
(ASM_OUTPUT_LOCAL): Likewise.
* config/darwin-protos.h (darwin_asm_declare_object_name): New.
(darwin_output_aligned_bss): Likewise.
(darwin_asm_output_aligned_decl_local): Likewise.
(darwin_asm_output_aligned_decl_common): Likewise.
(darwin_use_anchors_for_symbol_p): Likewise.
* config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
(TARGET_ASM_OUTPUT_ANCHOR): Define.
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
(DARWIN_SECTION_ANCHORS): Set to 1.
* config/darwin.c (emit_aligned_common): New var.
(darwin_init_sections): Check that the Darwin private zero-size section
marker is in range.
(darwin_text_section): Check for zero-sized objects.
(darwin_mergeable_string_section): Likewise.
(darwin_mergeable_constant_section): Likewise.
(machopic_select_section): Adjust to check for zero-sized objects.
Assert that OBJC meta data are non-zero sized.
(darwin_asm_declare_object_name): New.
(darwin_asm_declare_constant_name): Adjust for zero-sized
object sections.
(BYTES_ZFILL): Define.
(darwin_emit_weak_or_comdat): New.
(darwin_emit_local_bss): New.
(darwin_emit_common): New.
(darwin_output_aligned_bss): New.
(darwin_asm_output_aligned_decl_common): New.
(darwin_asm_output_aligned_decl_local): New.
(darwin_file_end): Disable subsections_via_symbols when section
anchoring is active.
(darwin_asm_output_anchor): Re-enable.
(darwin_use_anchors_for_symbol_p): New.
(darwin_override_options): Check for versions that can emit
aligned common.  Update usage of flags to current.
* config/darwin-sections.def: Update comments and flags for
non-anchor sections.  zobj_const_section, zobj_data_section,
zobj_bss_section, zobj_const_data_section: New.
* config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
(ASM_OUTPUT_ALIGN): Make whitespace output consistent.
(L2_MAX_OFILE_ALIGNMENT): Define.
(ASM_OUTPUT_ALIGNED_BSS): Define.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
(SECTION_NO_ANCHOR): Define.
(TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
(DARWIN_SECTION_ANCHORS): Define with a default of 0.

boehm-gc:
* dyn_load.c (GC_register_dynamic_libraries/DARWIN):  Add new writable
data section names.
(GC_dyld_name_for_hdr): Adjust layout.
(GC_dyld_image_add): Adjust layout, add new Darwin sections, adjust
debug to name the sections.
(GC_dyld_image_remove): Adjust layout, remove new Darwin sections,
adjust debug to name the sections.
(GC_register_dynamic_libraries): Adjust layout.
(GC_init_dyld): Likewise.
(GC_register_main_static_data): Likewise.

gcc/testsuite:
* gcc.target/powerpc/darwin-abi-12.c: Adjust for new allocators.
* gcc.dg/pr26427.c: Remove redundant warning for powerpc.
* gcc.dg/darwin-comm.c: Adjust for new allocators.
* gcc.dg/darwin-sections.c: New test.
* g++.dg/ext/instantiate2.C: Adjust for new allocators.


Added:
trunk/gcc/testsuite/gcc.dg/darwin-sections.c
Modified:
trunk/boehm-gc/ChangeLog
trunk/boehm-gc/dyn_load.c
trunk/gcc/ChangeLog
trunk/gcc/config/darwin-protos.h
trunk/gcc/config/darwin-sections.def
trunk/gcc/config/darwin.c
trunk/gcc/config/darwin.h
trunk/gcc/config/i386/darwin.h
trunk/gcc/config/rs6000/darwin.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/instantiate2.C
trunk/gcc/testsuite/gcc.dg/darwin-comm.c
trunk/gcc/testsuite/gcc.dg/pr26427.c
trunk/gcc/testsuite/gcc.target/powerpc/darwin-abi-12.c


[Bug testsuite/35710] FAIL: gcc.dg/vect/section-anchors-pr27770.c (test for excess errors)

2010-11-29 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35710

--- Comment #8 from Iain Sandoe iains at gcc dot gnu.org 2010-11-29 14:58:25 
UTC ---
Author: iains
Date: Mon Nov 29 14:58:16 2010
New Revision: 167242

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167242
Log:

PR target/26427
PR target/33120
PR testsuite/35710

gcc:
* config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
(ASM_OUTPUT_LOCAL): Likewise.
* config/darwin-protos.h (darwin_asm_declare_object_name): New.
(darwin_output_aligned_bss): Likewise.
(darwin_asm_output_aligned_decl_local): Likewise.
(darwin_asm_output_aligned_decl_common): Likewise.
(darwin_use_anchors_for_symbol_p): Likewise.
* config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
(TARGET_ASM_OUTPUT_ANCHOR): Define.
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
(DARWIN_SECTION_ANCHORS): Set to 1.
* config/darwin.c (emit_aligned_common): New var.
(darwin_init_sections): Check that the Darwin private zero-size section
marker is in range.
(darwin_text_section): Check for zero-sized objects.
(darwin_mergeable_string_section): Likewise.
(darwin_mergeable_constant_section): Likewise.
(machopic_select_section): Adjust to check for zero-sized objects.
Assert that OBJC meta data are non-zero sized.
(darwin_asm_declare_object_name): New.
(darwin_asm_declare_constant_name): Adjust for zero-sized
object sections.
(BYTES_ZFILL): Define.
(darwin_emit_weak_or_comdat): New.
(darwin_emit_local_bss): New.
(darwin_emit_common): New.
(darwin_output_aligned_bss): New.
(darwin_asm_output_aligned_decl_common): New.
(darwin_asm_output_aligned_decl_local): New.
(darwin_file_end): Disable subsections_via_symbols when section
anchoring is active.
(darwin_asm_output_anchor): Re-enable.
(darwin_use_anchors_for_symbol_p): New.
(darwin_override_options): Check for versions that can emit
aligned common.  Update usage of flags to current.
* config/darwin-sections.def: Update comments and flags for
non-anchor sections.  zobj_const_section, zobj_data_section,
zobj_bss_section, zobj_const_data_section: New.
* config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
(ASM_OUTPUT_ALIGN): Make whitespace output consistent.
(L2_MAX_OFILE_ALIGNMENT): Define.
(ASM_OUTPUT_ALIGNED_BSS): Define.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
(SECTION_NO_ANCHOR): Define.
(TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
(DARWIN_SECTION_ANCHORS): Define with a default of 0.

boehm-gc:
* dyn_load.c (GC_register_dynamic_libraries/DARWIN):  Add new writable
data section names.
(GC_dyld_name_for_hdr): Adjust layout.
(GC_dyld_image_add): Adjust layout, add new Darwin sections, adjust
debug to name the sections.
(GC_dyld_image_remove): Adjust layout, remove new Darwin sections,
adjust debug to name the sections.
(GC_register_dynamic_libraries): Adjust layout.
(GC_init_dyld): Likewise.
(GC_register_main_static_data): Likewise.

gcc/testsuite:
* gcc.target/powerpc/darwin-abi-12.c: Adjust for new allocators.
* gcc.dg/pr26427.c: Remove redundant warning for powerpc.
* gcc.dg/darwin-comm.c: Adjust for new allocators.
* gcc.dg/darwin-sections.c: New test.
* g++.dg/ext/instantiate2.C: Adjust for new allocators.


Added:
trunk/gcc/testsuite/gcc.dg/darwin-sections.c
Modified:
trunk/boehm-gc/ChangeLog
trunk/boehm-gc/dyn_load.c
trunk/gcc/ChangeLog
trunk/gcc/config/darwin-protos.h
trunk/gcc/config/darwin-sections.def
trunk/gcc/config/darwin.c
trunk/gcc/config/darwin.h
trunk/gcc/config/i386/darwin.h
trunk/gcc/config/rs6000/darwin.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/instantiate2.C
trunk/gcc/testsuite/gcc.dg/darwin-comm.c
trunk/gcc/testsuite/gcc.dg/pr26427.c
trunk/gcc/testsuite/gcc.target/powerpc/darwin-abi-12.c


[Bug target/33120] Data not put in BSS section on Mac OS

2010-11-29 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33120

--- Comment #18 from Iain Sandoe iains at gcc dot gnu.org 2010-11-29 14:58:24 
UTC ---
Author: iains
Date: Mon Nov 29 14:58:16 2010
New Revision: 167242

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167242
Log:

PR target/26427
PR target/33120
PR testsuite/35710

gcc:
* config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
(ASM_OUTPUT_LOCAL): Likewise.
* config/darwin-protos.h (darwin_asm_declare_object_name): New.
(darwin_output_aligned_bss): Likewise.
(darwin_asm_output_aligned_decl_local): Likewise.
(darwin_asm_output_aligned_decl_common): Likewise.
(darwin_use_anchors_for_symbol_p): Likewise.
* config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
(TARGET_ASM_OUTPUT_ANCHOR): Define.
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
(DARWIN_SECTION_ANCHORS): Set to 1.
* config/darwin.c (emit_aligned_common): New var.
(darwin_init_sections): Check that the Darwin private zero-size section
marker is in range.
(darwin_text_section): Check for zero-sized objects.
(darwin_mergeable_string_section): Likewise.
(darwin_mergeable_constant_section): Likewise.
(machopic_select_section): Adjust to check for zero-sized objects.
Assert that OBJC meta data are non-zero sized.
(darwin_asm_declare_object_name): New.
(darwin_asm_declare_constant_name): Adjust for zero-sized
object sections.
(BYTES_ZFILL): Define.
(darwin_emit_weak_or_comdat): New.
(darwin_emit_local_bss): New.
(darwin_emit_common): New.
(darwin_output_aligned_bss): New.
(darwin_asm_output_aligned_decl_common): New.
(darwin_asm_output_aligned_decl_local): New.
(darwin_file_end): Disable subsections_via_symbols when section
anchoring is active.
(darwin_asm_output_anchor): Re-enable.
(darwin_use_anchors_for_symbol_p): New.
(darwin_override_options): Check for versions that can emit
aligned common.  Update usage of flags to current.
* config/darwin-sections.def: Update comments and flags for
non-anchor sections.  zobj_const_section, zobj_data_section,
zobj_bss_section, zobj_const_data_section: New.
* config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
(ASM_OUTPUT_ALIGN): Make whitespace output consistent.
(L2_MAX_OFILE_ALIGNMENT): Define.
(ASM_OUTPUT_ALIGNED_BSS): Define.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
(SECTION_NO_ANCHOR): Define.
(TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
(DARWIN_SECTION_ANCHORS): Define with a default of 0.

boehm-gc:
* dyn_load.c (GC_register_dynamic_libraries/DARWIN):  Add new writable
data section names.
(GC_dyld_name_for_hdr): Adjust layout.
(GC_dyld_image_add): Adjust layout, add new Darwin sections, adjust
debug to name the sections.
(GC_dyld_image_remove): Adjust layout, remove new Darwin sections,
adjust debug to name the sections.
(GC_register_dynamic_libraries): Adjust layout.
(GC_init_dyld): Likewise.
(GC_register_main_static_data): Likewise.

gcc/testsuite:
* gcc.target/powerpc/darwin-abi-12.c: Adjust for new allocators.
* gcc.dg/pr26427.c: Remove redundant warning for powerpc.
* gcc.dg/darwin-comm.c: Adjust for new allocators.
* gcc.dg/darwin-sections.c: New test.
* g++.dg/ext/instantiate2.C: Adjust for new allocators.


Added:
trunk/gcc/testsuite/gcc.dg/darwin-sections.c
Modified:
trunk/boehm-gc/ChangeLog
trunk/boehm-gc/dyn_load.c
trunk/gcc/ChangeLog
trunk/gcc/config/darwin-protos.h
trunk/gcc/config/darwin-sections.def
trunk/gcc/config/darwin.c
trunk/gcc/config/darwin.h
trunk/gcc/config/i386/darwin.h
trunk/gcc/config/rs6000/darwin.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/instantiate2.C
trunk/gcc/testsuite/gcc.dg/darwin-comm.c
trunk/gcc/testsuite/gcc.dg/pr26427.c
trunk/gcc/testsuite/gcc.target/powerpc/darwin-abi-12.c


[Bug middle-end/46685] [4.6 Regression] New stack alignment failures

2010-11-29 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46685

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2010-11-29 
15:17:30 UTC ---
I guess we could do something like:
--- varasm.c.jj2010-11-29 12:39:07.0 +0100
+++ varasm.c2010-11-29 15:15:53.0 +0100
@@ -534,6 +534,15 @@ section *
 default_function_section (tree decl, enum node_frequency freq,
   bool startup, bool exit)
 {
+  /* Force nested functions into the same section as the containing
+ function.  */
+  if (decl
+   DECL_SECTION_NAME (decl) == NULL_TREE
+   DECL_CONTEXT (decl) != NULL_TREE
+   TREE_CODE (DECL_CONTEXT (decl)) == FUNCTION_DECL
+   DECL_SECTION_NAME (DECL_CONTEXT (decl)) == NULL_TREE)
+return function_section (DECL_CONTEXT (decl));
+
   /* Startup code should go to startup subsection unless it is
  unlikely executed (this happens especially with function splitting
  where we can split away unnecesary parts of static constructors.  */

or perhaps instead of changing default_function_section write a wrapper around
it and use it on targets that need it.  This will use the same section as the
containing function for nested functions.

On the other side, the above is still broken with
-freorder-blocks-and-partition and I guess even before Honza's change it has
been broken.

Alternatively, we could do something like:
--- gcc/config/sparc/sparc.c.jj2010-11-26 18:39:04.0 +0100
+++ gcc/config/sparc/sparc.c2010-11-29 15:35:00.727219374 +0100
@@ -1066,8 +1066,13 @@ sparc_expand_move (enum machine_mode mod
  are absolutely sure that X is in the same segment as the GOT.
  Unfortunately, the flexibility of linker scripts means that we
  can't be sure of that in general, so assume that _G_O_T_-relative
- accesses are never valid on VxWorks.  */
-  if (GET_CODE (operands[1]) == LABEL_REF  !TARGET_VXWORKS_RTP)
+ accesses are never valid on VxWorks.
+ If the label is non-local, it might be placed in a different section
+ from . and movMODE_pic_label_ref patterns require the label and .
+ to be in the same section.  */
+  if (GET_CODE (operands[1]) == LABEL_REF
+   !TARGET_VXWORKS_RTP
+   !LABEL_REF_NONLOCAL_P (operands[1]))
 {
   if (mode == SImode)
 {

Not sure if even in the current function it could happen that sparc_expand_move
is asked for a label that is in the other partition.  I mean something like:
__attribute__((noinline, noclone))
void bar (void *x)
{
  asm volatile ( : : r (x) : memory);
}

__attribute__((noinline, noclone))
void baz (void)
{
  asm volatile ( : : : memory);
}

__attribute__((noinline, noclone))
int foo (int x)
{
  __label__ lab;
  if (__builtin_expect (x, 0))
{
  lab:
  baz ();
  return 2;
}
  bar (lab);
  return 1;
}

int
main (void)
{
  int x, i;
  asm volatile ( : =r (x) : 0 (0));
  for (i = 0; i  100; i++)
foo (x);
  return 0;
}

first compiled/linked with -O2 -fprofile-generate
-freorder-blocks-and-partition -fpic, then executed, then compiled again with
-O2 -fprofile-use -freorder-blocks-and-partition -fpic.  At least on
x86_64-linux the baz () bb is .text.unlikely, while bar (lab) is .text
section.  Now, I guess this wouldn't assemble on sparc-linux or Solaris, even
before Honza's patch.

In that case we perhaps could look at LABEL_REF's operand (if any, nonlocal
labels probably don't have them) and look at bb flags of its INSN_BLOCK. 
Unfortunately, the partitions are only computed during *.bbpart, so this is not
known at expansion time (and in sparc_expand_move we might not even know in
which bb we are going to end up).
So, perhaps we'd just need some splitter for these insns and change them to
something else if the current bb and target LABEL_REF have different partition.
Or simply ammend the second patch above and disable this optimization even for
flag_reorder_blocks_and_partition.


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

2010-11-29 Thread aldyh at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45940

Aldy Hernandez aldyh at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|WAITING

--- Comment #8 from Aldy Hernandez aldyh at gcc dot gnu.org 2010-11-29 
15:38:44 UTC ---
This fixes the -O0 case.  Pending approval.

http://gcc.gnu.org/ml/gcc-patches/2010-11/msg02803.html


[Bug driver/44986] -fuse-linker-plugin -save-temps gives resolution file base name of last argument

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44986

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
15:40:51 UTC ---
The problem is that --end-group is identified as input_basename by the driver
which it does because:

case OPT_Wl_:
  {
int prev, j;
/* Split the argument at commas.  */
prev = 0;
for (j = 0; arg[j]; j++)
  if (arg[j] == ',')
{
  add_infile (save_string (arg + prev, j - prev), *);
  prev = j + 1;
}
/* Record the part after the last comma.  */
add_infile (arg + prev, *);

maybe we should just disregard infiles with starting '-' here
(same with -Xlinker).  Note that a plain -lfoo will also count
as infile.  -save-temps will simply re-use the last infile it got.

Maybe it's also the unfortunate position of the -fresolution spec
in LINK_COMMAND_SPEC that we run into this.

I have a patch.


[Bug target/45084] configure: error: no 8-bit type

2010-11-29 Thread norak.van at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45084

--- Comment #8 from norak.van at gmail dot com 2010-11-29 15:43:20 UTC ---
Created attachment 22564
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22564
config


[Bug target/45084] configure: error: no 8-bit type

2010-11-29 Thread norak.van at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45084

norak.van at gmail dot com changed:

   What|Removed |Added

 CC||norak.van at gmail dot com

--- Comment #9 from norak.van at gmail dot com 2010-11-29 15:46:48 UTC ---
Hi,

I get this error building gcc

I did the suggested changes in patch PR 45084, about including square brackets
in AC_MSG_ERROR function.. 

and did 'make' again with same result

Use:
cygwin
binutilis 2.20.1
gcc4.5.0

../gcc-4.5.0/configure --target=powerpc-ibm-eabi --with-newlib --disable-nls
--disable-multilib i686-ibm-cygwin

...
checking stdbool.h usability... no
checking stdbool.h presence... yes
configure: WARNING: stdbool.h: present but cannot be compiled
configure: WARNING: stdbool.h: check for missing prerequisite headers?
configure: WARNING: stdbool.h: see the Autoconf documentation
configure: WARNING: stdbool.h: section Present But Cannot Be Compiled
configure: WARNING: stdbool.h: proceeding with the compiler's result

...

checking float.h usability... no
checking float.h presence... yes
configure: WARNING: float.h: present but cannot be compiled
configure: WARNING: float.h: check for missing prerequisite headers?
configure: WARNING: float.h: see the Autoconf documentation
configure: WARNING: float.h: section Present But Cannot Be Compiled
configure: WARNING: float.h: proceeding with the compiler's result

...

checking size of void *...
/cygdrive/c/data/gcc/gcc-4.5.0/libstdc++-v3/configure
: line 2302: conftest.c: Permission denied
0
checking size of long... 0
checking size of int... 0
checking size of short... 0
checking size of char... 0
checking for type equivalent to int8_t... configure: error: no 8-bit type,
pleas
e report a bug
make[1]: *** [configure-target-libstdc++-v3] Error 1
make[1]: Leaving directory `/cygdrive/c/data/gcc/gcc-build'
make: *** [all] Error 2

Any ideas?
Thanks


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

2010-11-29 Thread aldyh at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45940

--- Comment #9 from Aldy Hernandez aldyh at gcc dot gnu.org 2010-11-29 
16:04:18 UTC ---
The -O1 ICE is due to the fact that we have an inline function that has been
marked as transaction_pure, but contains an inline asm.  The following code
sets the 'saw_unsafe' bit, regardless of the transaction_pure attribute:

case GIMPLE_ASM:
  /* ??? We ought to come up with a way to add attributes to
 asm statements, and then add transaction_safe to it.
 Either that or get the language spec to resurrect __tm_waiver.  */
  if (d-block_flags  DIAG_TM_SAFE)
error_at (gimple_location (stmt),
  asm not allowed in atomic transaction);
  else if (d-func_flags  DIAG_TM_SAFE)
error_at (gimple_location (stmt),
  asm not allowed in %transaction_safe% function);
  else
d-saw_unsafe = true;
  break;

The easy way to solve this, is to pass the fndecl in d-, and check for
transaction_pure attributes.  The hard way, is to add attributes to asm
statements (see comment above), mark asm statements as safe/pure when
appropriate, and never loose this information.

You can guess which way I want to solve it.

Richard?


[Bug target/45640] gcc.c-torture/execute/20050316-2.c ICEs with -mno-mmx -m3dnow -flto

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45640

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.11.29 16:19:20
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
16:19:20 UTC ---
Confirmed.

With LTO we somehow decided we can do

(insn 2 3 4 2 (set (subreg:DI (reg:V2SF 61) 0)
(reg:DI 21 xmm0 [ x ])) 20050316-2.c:17 -1
 (nil))

but without we go through the stack.

I'm sure our option-replay code is at fault, but if it is then possibly
there exists a user command-line option that triggers this without LTO.


[Bug c++/46653] [trans-mem] ICE with volatile int in transactional constructor using -O1

2010-11-29 Thread aldyh at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46653

Aldy Hernandez aldyh at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED

--- Comment #4 from Aldy Hernandez aldyh at gcc dot gnu.org 2010-11-29 
16:27:08 UTC ---
Committed workable fix, though a more thorough patch should go in.  I am
closing the PR, but will fix it thoroughly shortly...


[Bug lto/45949] ICE: SIGSEGV in gimple_default_def (tree-dfa.c:538) with -flto/-fwhopr on invalid code

2010-11-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45949

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-29 
16:27:29 UTC ---
Mine.


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

2010-11-29 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46101

--- Comment #4 from Dodji Seketeli dodji at gcc dot gnu.org 2010-11-29 
16:29:11 UTC ---
Author: dodji
Date: Mon Nov 29 16:29:05 2010
New Revision: 167246

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167246
Log:
Fix PR debug/46101

gcc/
* dwarf2out.c (lookup_type_die_strip_naming_typedef): New
function.
(scope_die_for, gen_type_die_for_member): Replace uses of
lookup_type_die with use of lookup_type_die_strip_naming_typedef.

gcc/testsuite/
* g++.dg/debug/dwarf2/typedef5.C: New test

Added:
trunk/gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/45383] [4.5/4.6 Regression] Implicit conversion to pointer does no longer automatically generate operator== and operator!=.

2010-11-29 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45383

--- Comment #5 from Dodji Seketeli dodji at gcc dot gnu.org 2010-11-29 
16:31:07 UTC ---
Author: dodji
Date: Mon Nov 29 16:30:54 2010
New Revision: 167248

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167248
Log:
Fix PR c++/45383

Reverting the fix for PR c++/42260 fixes c++/45383.
This reverts commit r155415.

gcc/cp/
Reverted patch for PR c++/42260
* cp-tree.h (lookup_conversions): Reverted Add new bool parameter to
declarationE.
* search.c (lookup_conversion): Reverted Use new bool parameter in
definition.
* call.c (add_builtin_candidates): Reverted Don't lookup template
  conversion
(convert_class_to_reference, build_user_type_conversion_1,
 build_op_call): Reverted Adjust.
* cvt.c (build_expr_type_conversion): Reverted Likewise.

gcc/testsuite/
Reverted patch for PR c++/42260
* conversion/cast2.C: Reverted New test.

Removed:
trunk/gcc/testsuite/g++.dg/conversion/cast2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/cvt.c
trunk/gcc/cp/search.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/42260] [4.3/4.4/4.5 Regression] ICE looking up template conversion operator

2010-11-29 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42260

--- Comment #4 from Dodji Seketeli dodji at gcc dot gnu.org 2010-11-29 
16:31:10 UTC ---
Author: dodji
Date: Mon Nov 29 16:30:54 2010
New Revision: 167248

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167248
Log:
Fix PR c++/45383

Reverting the fix for PR c++/42260 fixes c++/45383.
This reverts commit r155415.

gcc/cp/
Reverted patch for PR c++/42260
* cp-tree.h (lookup_conversions): Reverted Add new bool parameter to
declarationE.
* search.c (lookup_conversion): Reverted Use new bool parameter in
definition.
* call.c (add_builtin_candidates): Reverted Don't lookup template
  conversion
(convert_class_to_reference, build_user_type_conversion_1,
 build_op_call): Reverted Adjust.
* cvt.c (build_expr_type_conversion): Reverted Likewise.

gcc/testsuite/
Reverted patch for PR c++/42260
* conversion/cast2.C: Reverted New test.

Removed:
trunk/gcc/testsuite/g++.dg/conversion/cast2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/cvt.c
trunk/gcc/cp/search.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/45383] [4.5/4.6 Regression] Implicit conversion to pointer does no longer automatically generate operator== and operator!=.

2010-11-29 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45383

--- Comment #6 from Dodji Seketeli dodji at gcc dot gnu.org 2010-11-29 
16:31:54 UTC ---
Author: dodji
Date: Mon Nov 29 16:31:40 2010
New Revision: 167250

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167250
Log:
Fix PR c++/42260 and ensure PR c++/45383 is fixed

gcc/cp/
c++/42260
* call.c (add_builtin_candidate): At this point the resulting type
of an indirection operator should be complete.

gcc/testsuite/
c++/42260
c++/45383
* g++.dg/conversion/cast2.C: New test.
* g++.dg/conversion/cond4/C: Likewise. Ensures we don't regress on
PR c++/45383

Added:
trunk/gcc/testsuite/g++.dg/conversion/cast2.C
trunk/gcc/testsuite/g++.dg/conversion/cond4.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/42260] [4.3/4.4/4.5 Regression] ICE looking up template conversion operator

2010-11-29 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42260

--- Comment #5 from Dodji Seketeli dodji at gcc dot gnu.org 2010-11-29 
16:31:53 UTC ---
Author: dodji
Date: Mon Nov 29 16:31:40 2010
New Revision: 167250

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167250
Log:
Fix PR c++/42260 and ensure PR c++/45383 is fixed

gcc/cp/
c++/42260
* call.c (add_builtin_candidate): At this point the resulting type
of an indirection operator should be complete.

gcc/testsuite/
c++/42260
c++/45383
* g++.dg/conversion/cast2.C: New test.
* g++.dg/conversion/cond4/C: Likewise. Ensures we don't regress on
PR c++/45383

Added:
trunk/gcc/testsuite/g++.dg/conversion/cast2.C
trunk/gcc/testsuite/g++.dg/conversion/cond4.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10

2010-11-29 Thread saellaven at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46651

--- Comment #9 from saellaven at gmail dot com 2010-11-29 16:53:31 UTC ---
fails with the unmodified 20101125 snapshot. I'm going to revert the patch I
found above and will report back in a little while on whether or not it solves
it in vanillla gcc.

/usr/src/build/./gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=/usr/src/build/./gcc/xgcc
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-4.5-20101125/configure --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.1
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --with-ppl --with-cloog --disable-lto --enable-nls
--without-included-gettext --with-system-zlib --disable-werror
--enable-secureplt --enable-multilib --enable-libmudflap --disable-libssp
--enable-libgomp --enable-cld
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/python
--enable-checking=release --disable-libgcj --enable-languages=c,c++,fortran
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-clocale=gnu
Thread model: posix
gcc version 4.5.2 20101125 (prerelease) (GCC)



/usr/src/build/./gcc/xgcc -B/usr/src/build/./gcc/
-B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem
/usr/x86_64-pc-linux-gnu/include -DHAVE_CONFIG_H -I. -I..  -I.
-I/usr/include/pixman-1  -I/usr/include/freetype2 -I/usr/include/libpng14  
  -O2   -ggdb -floop-interchange -floop-strip-mine
-floop-block -fgraphite-identity -finline-limit=1200 -MT cairo-cff-subset.lo
-MD -MP -MF .deps/cairo-cff-subset.Tpo -c -o cairo-cff-subset.lo
cairo-cff-subset.c
cairo-cff-subset.c: In function 'cff_index_write':
cairo-cff-subset.c:313:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug ada/46707] New: Storage_Error in GNAT with anonymous not null subtype

2010-11-29 Thread jp.sittingduck+gcc at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46707

   Summary: Storage_Error in GNAT with anonymous not null
subtype
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jp.sittingduck+...@gmail.com
  Host: Linux 2.6.35 (Arch Linux), x86_64
Target: Linux 2.6.35 (Arch Linux), x86_64


= GCC version
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr
--enable-languages=c,c++,fortran,objc,obj-c++,ada --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--enable-gnu-unique-object --enable-lto --enable-plugin --disable-multilib
--disable-libstdcxx-pch --with-system-zlib --with-ppl --with-cloog
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info
Thread model: posix
gcc version 4.5.1 (GCC) 

= Test case
$ cat foo.ads
package Foo is
   type Integer_Access is access Integer;
   procedure Test (I: not null Integer_Access) is abstract;
end Foo;

= Expected behaviour
Compilation of spec file.

= Actual behaviour
$ gcc -save-temps -c foo.ads
+===GNAT BUG DETECTED==+
| 4.5.1 (x86_64-unknown-linux-gnu) Storage_Error stack overflow (or erroneous
memory access)|
| Error detected at system.ads:153:5   |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.|
| Use a subject line meaningful to you and us to track the bug.|
| Include the entire contents of this bug box in the report.   |
| Include the exact gcc or gnatmake command that you entered.  |
| Also include sources listed below in gnatchop format |
| (concatenated together with no headers between files).   |
+==+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

foo.ads

compilation abandoned
$ cat foo.s
.file   foo.ads

= Workaround
...
subtype Not_Null_Integer_Access is not null Integer_Access;
procedure Test (I: Not_Null_Integer_Access) is abstract;
...
The bug also doesn't show when not null is removed completely.


[Bug tree-optimization/46675] [4.6 Regression] profiledbootstrap failed

2010-11-29 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46675

--- Comment #32 from uros at gcc dot gnu.org 2010-11-29 17:08:20 UTC ---
Author: uros
Date: Mon Nov 29 17:08:16 2010
New Revision: 167256

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167256
Log:
2010-11-29  Zdenek Dvorak  rakd...@kam.uniff.cz

PR tree-optimization/46675
* tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
in offset calculation.

testsuite/ChangeLog:

2010-11-29  Richard Guenther  rguent...@suse.de
Zdenek Dvorak  rakd...@kam.uniff.cz

PR tree-optimization/46675
* gcc.dg/pr46675.c: New test.


Added:
trunk/gcc/testsuite/gcc.dg/pr46675.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-loop-niter.c


[Bug c/46708] New: SFU 3.5 SDK on Windows XP Professional, segmentation fault with gcc (program cc1) is

2010-11-29 Thread adutta at easylink dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46708

   Summary: SFU 3.5 SDK on Windows XP Professional, segmentation
fault with gcc (program cc1) is
   Product: gcc
   Version: 3.3
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: adu...@easylink.com


Installed SFU 3.5 SDK on Windows XP Professional,
rebooted, then ran gcc on a simple program and it
prints a segmentation fault.

$ uname -a
Interix ENGPC32 3.5 SP-8.0.1969.1 x86 Intel_x86_Family15_Model4_Stepping3

$ gcc -v
Reading specs from /opt/gcc.3.3/lib/gcc-lib/i586-pc-interix3/3.3/specs
Configured with:  : (reconfigured)  : (reconfigured) /dev/fs/C/gnu2.intel/egcs.
ource//configure --verbose --prefix=/opt/gcc.3.3 --disable-shared --with-stabs
-enable-nls --with-local-prefix=/opt/gcc.3.3 --with-gnu-as --with-gnu-ld --enab
e-targets=i586-pc-interix3 --enable-threads=posix
Thread model: posix
gcc version 3.3

$ cat test1.c
#include stdio.h

int main(int argc, char *argv[])
{
printf(Hello World\n);
return 0;
}

$ gcc -o test1 test1.c
gcc: Internal error: Segmentation fault (program cc1)
Please submit a full bug report.
See URL:http://gcc.gnu.org/bugs.html for instructions.


[Bug tree-optimization/46675] [4.6 Regression] profiledbootstrap failed

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

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2010-11/msg02819.htm
   ||l
 Resolution||FIXED

--- Comment #33 from Uros Bizjak ubizjak at gmail dot com 2010-11-29 17:21:31 
UTC ---
Fixed.


[Bug target/46708] SFU 3.5 SDK on Windows XP Professional, segmentation fault with gcc (program cc1) is

2010-11-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46708

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|c   |target
 Resolution||WONTFIX

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2010-11-29 
17:31:11 UTC ---
Please report this to Microsoft since it is their binary version of GCC you
downloaded.


[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10

2010-11-29 Thread saellaven at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46651

--- Comment #10 from saellaven at gmail dot com 2010-11-29 17:50:32 UTC ---
success after reverting the patch from http://gcc.gnu.org/PR45314

/usr/src/build-revert/./gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=/usr/src/build-revert/./gcc/xgcc
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-4.5-20101125/configure --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.1
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --with-ppl --with-cloog --disable-lto --enable-nls
--without-included-gettext --with-system-zlib --disable-werror
--enable-secureplt --enable-multilib --enable-libmudflap --disable-libssp
--enable-libgomp --enable-cld
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/python
--enable-checking=release --disable-libgcj --enable-languages=c,c++,fortran
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-clocale=gnu
Thread model: posix
gcc version 4.5.2 20101125 (prerelease) (GCC)


[Bug c++/46078] [4.6 regression] new valgrind warnings when compiling an optimization test case

2010-11-29 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46078

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2010-11-29 
18:04:52 UTC ---
As I said earlier, libcpp warnings aren't actually bugs.
For the zlib warnings, here is a standalone testcase:
#include zlib.h
#include stdlib.h
#include string.h

static void *
lto_zalloc (void *opaque, unsigned items, unsigned size)
{
  void *p = malloc (items * size);
//  memset (p, 0xaa, items * size);
  return p;
}

static void
lto_zfree (void *opaque, void *address)
{
  free (address);
}

/* #define lto_zalloc NULL */
/* #define lto_zfree NULL */

__attribute__((noinline, noclone)) void
lto_end_compression (unsigned char *cursor, size_t remaining)
{
  const size_t outbuf_length = 4096;
  unsigned char *outbuf = (unsigned char *) malloc (outbuf_length);
  z_stream out_stream;
  size_t compressed_bytes = 0;
  int status;

  out_stream.next_out = outbuf;
  out_stream.avail_out = outbuf_length;
  out_stream.next_in = cursor;
  out_stream.avail_in = remaining;
  out_stream.zalloc = lto_zalloc;
  out_stream.zfree = lto_zfree;
  out_stream.opaque = Z_NULL;

  status = deflateInit (out_stream, Z_DEFAULT_COMPRESSION);
  if (status != Z_OK)
abort ();

  size_t in_bytes, out_bytes;
  status = deflate (out_stream, Z_FINISH);
  if (status != Z_STREAM_END)
abort ();

  in_bytes = remaining - out_stream.avail_in;
  out_bytes = outbuf_length - out_stream.avail_out;

  compressed_bytes += out_bytes;

  cursor += in_bytes;
  remaining -= in_bytes;
  out_stream.next_out = outbuf;
  out_stream.avail_out = outbuf_length;
  out_stream.next_in = cursor;
  out_stream.avail_in = remaining;
  status = deflateEnd (out_stream);
  if (status != Z_OK)
abort ();
}

unsigned char blob[1024] = {
1, 0, 0, 0, 10, 0, 0, 0, 0x58, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 2, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0x80, 0, 0, 0xab, 3, 0,
0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0x78, 0x38,
0x36, 0x2d, 0x36, 0x34, 1, 0, 0, 0, 0, 0x80, 0, 0, 0xef, 3, 0, 0,
0, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0x67, 0x65, 0x6e,
0x65, 0x72, 0x69, 0x63, 1, 0, 0, 0 };

int
main (void)
{
  lto_end_compression (blob, 104);
  return 0;
}

on which valgrind warns when it is linked against gcc's libz.a (but not when
linked against Fedora 14 libz.so).

But
http://zlib.net/zlib_faq.html#faq36
says this is not a bug either.  zlib 1.2.4 nevertheless has some changes in
fill_window etc. which memset the area.


[Bug c/28575] misleading __builtin_choose_expr documentation error

2010-11-29 Thread przemoc at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28575

Przemysław Pawełczyk przemoc at gmail dot com changed:

   What|Removed |Added

 CC||przemoc at gmail dot com

--- Comment #4 from Przemysław Pawełczyk przemoc at gmail dot com 2010-11-29 
18:06:57 UTC ---
I'm also curious why the trivial fix has not been applied yet.

--- a/gcc-4.5.1/gcc/doc/extend.texi2010-11-29 18:39:21.0 +0100
+++ b/gcc-4.5.1/gcc/doc/extend.texi2010-11-29 18:39:54.0 +0100
@@ -7026,7 +7026,7 @@
 You can use the built-in function @code{__builtin_choose_expr} to
 evaluate code depending on the value of a constant expression.  This
 built-in function returns @var{exp1} if @var{const_exp}, which is an
-integer constant expression, is nonzero.  Otherwise it returns 0.
+integer constant expression, is nonzero.  Otherwise it returns @var{exp2}.

 This built-in function is analogous to the @samp{? :} operator in C,
 except that the expression returned has its type unaltered by promotion


[Bug lto/45475] target use in libcpp breaks LTO bootstrap

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45475

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot
   ||gnu.org

--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
18:17:43 UTC ---
This is only the tip of the iceberg though.  The attribute isn't rematerialized
on the LTRANS side so, with the help of the TYPE_MODE kludge for vector types:

/* Vector types need to check target flags to determine type.  */
extern enum machine_mode vector_type_mode (const_tree);
#define TYPE_MODE(NODE) \
  (TREE_CODE (TYPE_CHECK (NODE)) == VECTOR_TYPE \
   ? vector_type_mode (NODE) : (NODE)-type.mode)
#define SET_TYPE_MODE(NODE, MODE) \
  (TYPE_CHECK (NODE)-type.mode = (MODE))

it still breaks LTO bootstrap on x86:

e...@atlantis:~/build/gcc/native32-lto gcc/lto1 -quiet -mtune=pentium
-march=pentium -O2 -fomit-frame-pointer -fuse-linker-plugin -frandom-seed=1
-fltrans cc1.ltrans29.o
In file included from /home/eric/svn/gcc/gcc/attribs.c:7134:0,
 from :3737:
/home/eric/svn/gcc/libcpp/lex.c: In function 'search_line_sse2':
/home/eric/svn/gcc/libcpp/lex.c:370:15: internal compiler error: in
convert_move, at expr.c:326
Please submit a full bug report,

Reduced testcase to be attached:

e...@atlantis:~/build/gcc/native32 gcc/xgcc -Bgcc -o lex lex.c -flto
In file included from lex.c:15:0,
 from :0:
lex.c: In function 'foo':
lex.c:16:15: internal compiler error: in convert_move, at expr.c:326
Please submit a full bug report,
with preprocessed source if appropriate.

e...@atlantis:~/build/gcc/native32 gcc/xgcc -Bgcc -o lex lex.c -flto -msse2
e...@atlantis:~/build/gcc/native32   

The TYPE_MODE kludge makes the mode of vector types depend on the attribute.


[Bug lto/45475] target use in libcpp breaks LTO bootstrap

2010-11-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45475

--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-11-29 
18:18:33 UTC ---
Created attachment 22565
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22565
Reduced testcase for x86


[Bug target/44392] [4.5 Regression] libgcc compile with --enable-target-optspace (-Os) causes recursion in __bswapsi2

2010-11-29 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44392

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
  Known to work||4.6.0
Summary|[4.5/4.6 Regression] libgcc |[4.5 Regression] libgcc
   |compile with|compile with
   |--enable-target-optspace|--enable-target-optspace
   |(-Os) causes recursion in   |(-Os) causes recursion in
   |__bswapsi2  |__bswapsi2

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org 2010-11-29 
18:24:14 UTC ---
Fixed on the trunk then.


[Bug treelang/46709] New: [4.6 regression] internal compiler error: segmentation fault

2010-11-29 Thread jojelino at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46709

   Summary: [4.6 regression] internal compiler error: segmentation
fault
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: treelang
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jojel...@gmail.com
  Host: i686-pc-cygwin
Target: i686-pc-cygwin
 Build: i686-pc-cygwin


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

gcc ctype_.i -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-cygwin/4.6.0/lto-wrapper.exe
Target: i686-pc-cygwin
Configured with: ./configure --prefix=/usr --disable-win32-registry
--enable-threads=posix --enable-languages=c,c++,lto --with-win32-nlsapi=unicode
--enable-tls --disable-bootstrap --enable-shared --disable-sjlj-exceptions
--enable-gomp
Thread model: posix
gcc version 4.6.0 20101129 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=pentiumpro'
 /usr/libexec/gcc/i686-pc-cygwin/4.6.0/cc1.exe -fpreprocessed ctype_.i -quiet
-dumpbase ctype_.i -mtune=generic -march=pentiumpro -auxbase ctype_ -version -o
/cygdrive/d/temp/cache/ccXLGxhF.s
GNU C (GCC) version 4.6.0 20101129 (experimental) (i686-pc-cygwin)
compiled by GNU C version 4.6.0 20101129 (experimental), GMP version
5.0.0, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 4.6.0 20101129 (experimental) (i686-pc-cygwin)
compiled by GNU C version 4.6.0 20101129 (experimental), GMP version
5.0.0, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: fc44f5abb6a0b2db9b440e397cdf946e
../../../.././newlib/libc/ctype/ctype_.c:115:1: internal compiler error:
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug target/42894] [4.5/4.6 Regression] Invalid rtl sharing in Thumb1.

2010-11-29 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42894

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2010-11-29 
18:30:15 UTC ---
I'd say the arm backend just shouldn't ignore the IL restrictions and simply
apply a patch like in comment 8.  shared_const_p is just an exception for the
most frequently used CONST, we really shouldn't agree to share arbitrarily
complex CONST expressions, that will just leads to lots of bugs everywhere.


[Bug objc/46710] New: fast enumeration tests failing on ia64-suse-linux-gnu

2010-11-29 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46710

   Summary: fast enumeration tests failing on ia64-suse-linux-gnu
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: objc
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: nic...@gcc.gnu.org


Looking at the gcc-testresults mailing list, I see that some Objective-C fast
enumeration tests are failing, during execution, on some 64-bit systems.  Eg:

http://gcc.gnu.org/ml/gcc-testresults/2010-11/msg02436.html

Btw, is there a way to get the objc.log file for the testresults ?

Thanks


[Bug lto/45475] target use in libcpp breaks LTO bootstrap

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

Andi Kleen andi-gcc at firstfloor dot org changed:

   What|Removed |Added

 Status|RESOLVED|NEW
 Resolution|FIXED   |

--- Comment #8 from Andi Kleen andi-gcc at firstfloor dot org 2010-11-29 
18:51:19 UTC ---
Reopen it if it's really still broken.


[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10

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

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

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #11 from H.J. Lu hjl.tools at gmail dot com 2010-11-29 18:55:42 
UTC ---
This bug was fixed on trunk by revision 163156:

http://gcc.gnu.org/ml/gcc-cvs/2010-08/msg00367.html


[Bug treelang/46709] [4.6 regression] internal compiler error: process_function_and_variable_attributes gcc/cgraphunit.c:847

2010-11-29 Thread jojelino at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46709

gee jojelino at gmail dot com changed:

   What|Removed |Added

Summary|[4.6 regression] internal   |[4.6 regression] internal
   |compiler error: |compiler error:
   |segmentation fault  |process_function_and_variab
   ||le_attributes
   ||gcc/cgraphunit.c:847

--- Comment #1 from gee jojelino at gmail dot com 2010-11-29 18:58:28 UTC ---
[New Thread 2200.0x1464]
[New Thread 2200.0x10e8]

Program received signal SIGSEGV, Segmentation fault.
process_function_and_variable_attributes (first=value optimized out,
first_var=0x0) at ../.././gcc/cgraphunit.c:847
847TREE_PUBLIC (node-decl))
(gdb) bt
#0  process_function_and_variable_attributes (first=value optimized out,
first_var=0x0) at ../.././gcc/cgraphunit.c:847
#1  0x0065bc76 in cgraph_analyze_functions () at ../.././gcc/cgraphunit.c:880
#2  0x0065dfb9 in cgraph_finalize_compilation_unit ()
at ../.././gcc/cgraphunit.c:1022
#3  0x0041c8bc in c_write_global_declarations () at ../.././gcc/c-decl.c:9837
#4  0x006670cb in compile_file (argc=0x2, argv=0x52aa530)
at ../.././gcc/toplev.c:813
#5  do_compile (argc=0x2, argv=0x52aa530) at ../.././gcc/toplev.c:2205
#6  toplev_main (argc=0x2, argv=0x52aa530) at ../.././gcc/toplev.c:2268
#7  0x00c4e510 in main (argc=0x2, argv=0x52aa530) at ../.././gcc/main.c:36


[Bug middle-end/46709] [4.6 regression] internal compiler error: process_function_and_variable_attributes gcc/cgraphunit.c:847

2010-11-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46709

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10

2010-11-29 Thread bjackson at inavia dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46651

--- Comment #12 from Brad Jackson bjackson at inavia dot net 2010-11-29 
19:08:53 UTC ---
Can the fix be applied to the branch before the 4.5.2 release? Seems like it's
low risk since probably not too many people are using Graphite options.


[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10

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

--- Comment #13 from H.J. Lu hjl.tools at gmail dot com 2010-11-29 19:10:15 
UTC ---
Created attachment 22567
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22567
A patch backported from trunk

Please try this.


[Bug middle-end/46651] ICE with graphite enabled in cairo-1.8.10

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

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

   What|Removed |Added

  Component|tree-optimization   |middle-end
   Target Milestone|--- |4.5.2


[Bug middle-end/46651] ICE with graphite enabled in cairo-1.8.10

2010-11-29 Thread dirtyepic at gentoo dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46651

--- Comment #14 from Ryan Hill dirtyepic at gentoo dot org 2010-11-29 
19:12:18 UTC ---
Created attachment 22568
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22568
cairo-cff-subset.i

This is with 4.5 branch svn HEAD (rev 167257).  No patches are applied, other
than branding.

cairo-1.10.0/src # x86_64-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I..
-I/usr/include/pixman-1 -Wno-unused-parameter -Wno-attributes -O2 -floop-block
-c cairo-cff-subset.c 
cairo-cff-subset.c: In function 'cff_index_write':
cairo-cff-subset.c:316:1: internal compiler error: tree check: expected
ssa_name, have integer_cst in insert_out_of_ssa_copy, at
graphite-sese-to-poly.c:2129
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/ for instructions.
halo ~/portage/x11-libs/cairo-1.10.0-r3/work/cairo-1.10.0/src #
x86_64-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I.. -I/usr/include/pixman-1
-Wno-unused-parameter -Wno-attributes -O2 -floop-block -c cairo-cff-subset.c -v
-save-temps
Using built-in specs.
COLLECT_GCC=/usr/x86_64-unknown-linux-gnu/gcc-bin/4.5.2-pre/x86_64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-4.5.2_pre/work/gcc-4.5.2-/configure
--prefix=/usr --bindir=/usr/x86_64-unknown-linux-gnu/gcc-bin/4.5.2-pre
--includedir=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/include
--datadir=/usr/share/gcc-data/x86_64-unknown-linux-gnu/4.5.2-pre
--mandir=/usr/share/gcc-data/x86_64-unknown-linux-gnu/4.5.2-pre/man
--infodir=/usr/share/gcc-data/x86_64-unknown-linux-gnu/4.5.2-pre/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/include/g++-v4
--host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
--disable-altivec --disable-fixed-point --with-ppl --with-cloog --enable-lto
--disable-nls --with-system-zlib --disable-werror --enable-secureplt
--enable-multilib --disable-libmudflap --disable-libssp --enable-libgomp
--enable-cld
--with-python-dir=/share/gcc-data/x86_64-unknown-linux-gnu/4.5.2-pre/python
--enable-checking=yes --disable-libgcj --enable-languages=c,c++ --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo SVN'
Thread model: posix
gcc version 4.5.2-pre 20101129 (prerelease) rev. 167257 (Gentoo SVN) 
COLLECT_GCC_OPTIONS='-DHAVE_CONFIG_H' '-I..' '-I/usr/include/pixman-1'
'-Wno-unused-parameter' '-Wno-attributes' '-O2' '-floop-block' '-c' '-v'
'-save-temps' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/cc1 -E -quiet -v -I..
-I/usr/include/pixman-1 -DHAVE_CONFIG_H cairo-cff-subset.c -mtune=generic
-march=x86-64 -Wno-unused-parameter -Wno-attributes -floop-block -O2
-fpch-preprocess -o cairo-cff-subset.i
ignoring nonexistent directory /usr/local/include
ignoring nonexistent directory
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/../../../../x86_64-unknown-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 ..
 /usr/include/pixman-1
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/include
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-DHAVE_CONFIG_H' '-I..' '-I/usr/include/pixman-1'
'-Wno-unused-parameter' '-Wno-attributes' '-O2' '-floop-block' '-c' '-v'
'-save-temps' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.5.2-pre/cc1 -fpreprocessed
cairo-cff-subset.i -quiet -dumpbase cairo-cff-subset.c -mtune=generic
-march=x86-64 -auxbase cairo-cff-subset -O2 -Wno-unused-parameter
-Wno-attributes -version -floop-block -o cairo-cff-subset.s
GNU C (Gentoo SVN) version 4.5.2-pre 20101129 (prerelease) rev. 167257
(x86_64-unknown-linux-gnu)
compiled by GNU C version 4.5.2-pre 20101129 (prerelease) rev.
167257, GMP version 5.0.1, MPFR version 3.0.0-p3, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (Gentoo SVN) version 4.5.2-pre 20101129 (prerelease) rev. 167257
(x86_64-unknown-linux-gnu)
compiled by GNU C version 4.5.2-pre 20101129 (prerelease) rev.
167257, GMP version 5.0.1, MPFR version 3.0.0-p3, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: af73c8cd9faabd3e4d17cfeaf8807132
cairo-cff-subset.c: In function 'cff_index_write':
cairo-cff-subset.c:316:1: internal compiler error: tree check: expected
ssa_name, have integer_cst in insert_out_of_ssa_copy, at
graphite-sese-to-poly.c:2129
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/ for instructions.


[Bug c++/46690] Using declaration of a dependent name

2010-11-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46690

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2010-11-29 
19:13:27 UTC ---
This is the same bug as PR 14258.

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


[Bug c++/14258] typename in a using declaration not supported

2010-11-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14258

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ilpoilves at hotmail dot
   ||com

--- Comment #13 from Andrew Pinski pinskia at gcc dot gnu.org 2010-11-29 
19:13:27 UTC ---
*** Bug 46690 has been marked as a duplicate of this bug. ***


[Bug middle-end/46651] ICE with graphite enabled in cairo-1.8.10

2010-11-29 Thread dirtyepic at gentoo dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46651

Ryan Hill dirtyepic at gentoo dot org changed:

   What|Removed |Added

 CC||dirtyepic at gentoo dot org

--- Comment #15 from Ryan Hill dirtyepic at gentoo dot org 2010-11-29 
19:13:19 UTC ---
Nevermind.


[Bug debug/46338] -fcompare-debug failure (length) with -O -fprofile-generate

2010-11-29 Thread aoliva at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46338

--- Comment #7 from Alexandre Oliva aoliva at gcc dot gnu.org 2010-11-29 
19:18:27 UTC ---
Author: aoliva
Date: Mon Nov 29 19:18:24 2010
New Revision: 167263

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167263
Log:
PR debug/46338
* g++.dg/debug/pr46338.C: New.

Added:
trunk/gcc/testsuite/g++.dg/debug/pr46338.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug debug/46258] gcc.dg/tree-ssa/pr23820.c: -fcompare-debug failure with -O3 -ffloat-store

2010-11-29 Thread aoliva at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46258

--- Comment #4 from Alexandre Oliva aoliva at gcc dot gnu.org 2010-11-29 
19:20:52 UTC ---
Author: aoliva
Date: Mon Nov 29 19:20:48 2010
New Revision: 167264

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167264
Log:
PR debug/46258
* tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
debug stmts.

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


[Bug fortran/46703] Wrong I/O output (only) when running under valgrind

2010-11-29 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46703

Mikael Morin mikael at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mikael at gcc dot gnu.org

--- Comment #1 from Mikael Morin mikael at gcc dot gnu.org 2010-11-29 
19:26:37 UTC ---
Maybe yet another of x86's extra floating point precision effects.
I suppose where valgrind needs to do its verifications, it interrupts the
program and saves/restores the registers (to memory), thus losing the extra
precision.

Try to ask to the valgrind developers, the problems looks very
valgrind-related.


[Bug c/46711] New: __builtin_choose_expr checks not chosen expression

2010-11-29 Thread przemoc at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46711

   Summary: __builtin_choose_expr checks not chosen expression
   Product: gcc
   Version: 4.4.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: prze...@gmail.com


Created attachment 22569
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22569
Test case.

Built-in Function: type __builtin_choose_expr (const_exp, exp1, exp2)

Excerpts from doc:

This built-in function is analogous to the `? :' operator in C, except that the
expression returned has its type unaltered by promotion rules. Also, the
built-in function does not evaluate the expression that was not chosen.

Note: This construct is only available for C. Furthermore, the unused
expression (exp1 or exp2 depending on the value of const_exp) may still
generate syntax errors. This may change in future revisions.

-- http://gcc.gnu.org/onlinedocs/gcc-4.5.1/gcc/Other-Builtins.html


#include stdio.h

int main()
{
int a = 0;

printf(a is %s\n, 
__builtin_choose_expr(__builtin_constant_p(a),
__builtin_choose_expr((a) == 0,
constant 0,
__builtin_choose_expr((a) == 1,
constant 1,
constant non-{0,1}
)
),
non-constant
)
);

return 0;
}
(attached also as a file)

__builtin_choose_expr.c: In function ‘main’:
__builtin_choose_expr.c:11: error: first argument to ‘__builtin_choose_expr’
not a constant
__builtin_choose_expr.c:9: error: first argument to ‘__builtin_choose_expr’ not
a constant


It's theoretically correct according to the note mentioned before, but it
rather should compile without errors.
[ BTW when you run gcc with optimization, i.e. -On, where n  0, it shows also
a bug 19449:
__builtin_choose_expr.c:8: error: first argument to ‘__builtin_choose_expr’ not
a constant ]

Expressions are checked in bottom-up order, which is fine, but only for
const_exp part. exp1 or exp2 shall be checked only if const_exp is true or
false respectively, avoiding the not chosen expression.

Example I gave you above is simple and imaginary, but it shows that
__builtin_choose_expr combined with other builtins (such as
__builtin_constant_p) can be useful. Moreover, as it can return lvalue, it's
cannot be easily replaced without introducing function with ifs or switch and
returning pointer to some type.


Better example (linux kernel-space):

#ifdef CONFIG_X86_64
# define PARAM0(regs) (regs)-di
# define PARAM1(regs) (regs)-si
# define PARAM2(regs) (regs)-dx
# define PARAM3(regs) (regs)-r10
# define PARAM4(regs) (regs)-r8
# define PARAM5(regs) (regs)-r9
static inline unsigned long *
_param(struct pt_regs *regs, int num)
{
switch (num) {
case 0: return PARAM0(regs);
case 1: return PARAM1(regs);
case 2: return PARAM2(regs);
case 3: return PARAM3(regs);
case 4: return PARAM4(regs);
case 5: return PARAM5(regs);
}

/* should not happen */
return NULL;
}
# define PARAM(regs, num) \
__builtin_choose_expr(__builtin_constant_p((num)), \
__builtin_choose_expr((num) == 0, PARAM0(regs), \
__builtin_choose_expr((num) == 1, PARAM1(regs), \
__builtin_choose_expr((num) == 2, PARAM2(regs), \
__builtin_choose_expr((num) == 3, PARAM3(regs), \
__builtin_choose_expr((num) == 4, PARAM4(regs), \
__builtin_choose_expr((num) == 5, PARAM5(regs), 0)), \
*_param(regs, num)
)
#endif

PARAM can be even simplified:

# define PARAM(regs, num) \
__builtin_choose_expr(__builtin_constant_p(num), \
__builtin_choose_expr((num)  6, \
PARAM##num(regs), \
0 \
), \
*_param(regs, num)) \
)

In either case it unfortunately doesn't work now.
Theoretically I can use the function directly, but it isn't inlined with known
result for constant expressions.


[Bug c/46711] __builtin_choose_expr checks not chosen expression

2010-11-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46711

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2010-11-29 
19:37:32 UTC ---
See PR 19449 for more information.  _builtin_constant_p is not a constant
expression really.

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


[Bug c/19449] __builtin_constant_p cannot resolve to const when optimizing

2010-11-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19449

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 CC||przemoc at gmail dot com

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2010-11-29 
19:37:32 UTC ---
*** Bug 46711 has been marked as a duplicate of this bug. ***


[Bug c/46711] __builtin_choose_expr checks not chosen expression

2010-11-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46711

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2010-11-29 
19:40:04 UTC ---
Try:
static inline unsigned long *
_param(struct pt_regs *regs, const int num) __attribute__((always_inline));
static inline unsigned long *
_param(struct pt_regs *regs, const int num)
{
switch (num) {
case 0: return PARAM0(regs);
case 1: return PARAM1(regs);
case 2: return PARAM2(regs);
case 3: return PARAM3(regs);
case 4: return PARAM4(regs);
case 5: return PARAM5(regs);
}

/* should not happen */
return NULL;
}

#define PARM(regs, num) *_param(regs, num)

This will provide something which is always optimized even at -O0.


[Bug target/42536] [4.4/4.5/4.6 regression] ICE in spill_failure, at reload1.c:2141

2010-11-29 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42536

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||law at gcc dot gnu.org,
   ||vmakarov at gcc dot gnu.org
  Known to fail||

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2010-11-29 
19:50:18 UTC ---
Jeff/Vlad, how hard would it be to try to split the insn into two insns instead
of a spill failure (for insns using a MEM whose address uses more than one hard
register) - one which forces the address into register (assuming it is
supported) and the store (or load) which would use a simpler address form?


[Bug c/46711] __builtin_choose_expr checks not chosen expression

2010-11-29 Thread przemoc at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46711

--- Comment #3 from Przemysław Pawełczyk przemoc at gmail dot com 2010-11-29 
20:07:20 UTC ---
Andrew, thanks for the always_inline hint.
But weren't you too fast with marking PR 46711 as duplicate of PR 19449?

Check which lines are marked with errors. 8th line is not mentioned (unless you
turn on optimization), so it's not the same problem, right? Am I missing
something?

The problem here is with ((a) == 0) and ((a) == 1) obviously not being constant
expressions, because a alone is not a constant expression. And this problem
derive from needless checking not chosen expression.

PR 19449 is problematic too, but it's other thing.

(I am not changing the status right now, because I believe that you'll step in
and explain me why I am wrong or admit that you were not careful enough.)


[Bug driver/46712] New: exec-tool.in doesn't work with -fuse-linker-plugin in a gcc+binutils combined tree

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

   Summary: exec-tool.in doesn't work with -fuse-linker-plugin in
a gcc+binutils combined tree
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: driver
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com
CC: bonz...@gnu.org


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

exec-tool.in has

  # libtool has not relinked ld-new yet, but we cannot just use the
  # previous stage (because then the relinking would just never happen!).
  # So we take extra care to use prev-ld/ld-new *on recursive calls*.
  test x$LT_RCU = x1  exec $scriptdir/../prev-$dir/$prog ${1+$@}

  LT_RCU=1; export LT_RCU
  $scriptdir/../$dir/$prog ${1+$@}
  result=$?
  exit $result

But -fuse-linker-plugin may call ld, which sets LT_RCU and calls
as. When as is called the first time by ld with LT_RCU to 1, I get

[...@gnu-6 pr12245-1]$ make
/export/build/gnu/tools-lto/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/tools-lto/build-x86_64-linux/gcc/ -m32 -O2 -fwhole-program
-flto=jobserver -fuse-linker-plugin   -c -o x.o x.c
/export/build/gnu/tools-lto/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/tools-lto/build-x86_64-linux/gcc/ -m32 -O2 -fwhole-program
-flto=jobserver -fuse-linker-plugin   -c -o y.o y.c
/export/build/gnu/tools-lto/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/tools-lto/build-x86_64-linux/gcc/ -m32 -B./ -o foo -O2
-fwhole-program -flto=jobserver -fuse-linker-plugin x.o y.o
/export/build/gnu/tools-lto/build-x86_64-linux/gcc/as: line 73:
/export/build/gnu/tools-lto/build-x86_64-linux/gcc/../prev-gas/as-new: No such
file or directory
/export/build/gnu/tools-lto/build-x86_64-linux/gcc/as: line 73: exec:
/export/build/gnu/tools-lto/build-x86_64-linux/gcc/../prev-gas/as-new: cannot
execute: No such file or directory
make[1]: *** [/tmp/cc4haeCj.ltrans0.ltrans.o] Error 1
lto-wrapper: make returned 2 exit status
lto-wrapper failedcollect2: ld returned 1 exit status
make: *** [foo] Error 1
[...@gnu-6 pr12245-1]$ 

[...@gnu-6 pr12245-1]$ /export/build/gnu/tools-lto/build-x86_64-linux/gcc/xgcc
-v
Using built-in specs.
COLLECT_GCC=/export/build/gnu/tools-lto/build-x86_64-linux/gcc/xgcc
Target: x86_64-unknown-linux-gnu
Configured with: /export/gnu/src/tools-lto/tools/configure --enable-languages=c
--disable-bootstrap --prefix=/usr/gcc-4.6-lto --with-local-prefix=/usr/local
Thread model: posix
gcc version 4.6.0 20101129 (experimental) (GCC) 
[...@gnu-6 pr12245-1]$


[Bug tree-optimization/46651] [4.5 Regression] ICE with graphite enabled in cairo-1.8.10

2010-11-29 Thread saellaven at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46651

saellaven at gmail dot com changed:

   What|Removed |Added

  Component|middle-end  |tree-optimization

--- Comment #16 from saellaven at gmail dot com 2010-11-29 20:14:52 UTC ---
success with snapshot + HJ Lu's patch.

$ /usr/src/build-hjpatch/./gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=/usr/src/build-hjpatch/./gcc/xgcc
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-4.5-20101125/configure --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.1
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --with-ppl --with-cloog --disable-lto --enable-nls
--without-included-gettext --with-system-zlib --disable-werror
--enable-secureplt --enable-multilib --enable-libmudflap --disable-libssp
--enable-libgomp --enable-cld
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.5.1/python
--enable-checking=release --disable-libgcj --enable-languages=c,c++,fortran
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-clocale=gnu
Thread model: posix
gcc version 4.5.2 20101125 (prerelease) (GCC)


  1   2   >