[Bug tree-optimization/46651] ICE with graphite enabled in cairo-1.8.10
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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!=.
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
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!=.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)