[Bug tree-optimization/49849] New: loop optimization prevents vectorization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49849 Summary: loop optimization prevents vectorization Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: vincenzo.innoce...@cern.ch In the following example I suspect that some sort of loop merging at O3 prevent the optimization of the second inner loop in bar compare c++ -Wall -O2 -ftree-vectorize -ftree-vectorizer-verbose=7 -c vectHist.cpp -ffast-math c++ -Wall -O3 -ftree-vectorize -ftree-vectorizer-verbose=7 -c vectHist.cpp -ffast-math what I do not understand is that if (following man page) I compare O2 and O3 with gcc -c -Q -O3 --help=optimizers /tmp/O3-opts gcc -c -Q -O2 --help=optimizers /tmp/O2-opts diff /tmp/O2-opts /tmp/O3-opts | grep enabled -fgcse-after-reload [enabled] -finline-functions [enabled] -fipa-cp-clone [enabled] -fpredictive-commoning [enabled] -ftree-loop-distribute-patterns [enabled] -ftree-vectorize[enabled] -funswitch-loops[enabled] I still get c++ -std=gnu++0x -DNDEBUG -Wall -O2 -ftree-vectorize -msse4 -fvisibility-inlines-hidden -ftree-vectorizer-verbose=2 --param vect-max-version-for-alias-checks=30 -funsafe-loop-optimizations -ftree-loop-distribution -ftree-loop-if-convert-stores -fipa-pta -Wunsafe-loop-optimizations -fgcse-sm -fgcse-las -c vectHist.cpp -ffast-math -funswitch-loops -ftree-loop-distribute-patterns -fpredictive-commoning -finline-functions -fipa-cp-clone -fgcse-after-reload vectHist.cpp:17: note: not vectorized: data ref analysis failed x_5 = co[D.4986_4]; vectHist.cpp:16: note: vectorized 0 loops in function. vectHist.cpp:35: note: not vectorized: data ref analysis failed D.4977_30 = hist[D.4976_29]; vectHist.cpp:33: note: LOOP VECTORIZED. vectHist.cpp:31: note: not vectorized: data ref analysis failed D.4957_13 = co[D.4956_12]; vectHist.cpp:25: note: vectorized 1 loops in function. while changing just O2 in 03 (that at this point should be not really effective as I added all options by hand) does not vectorize… c++ -std=gnu++0x -DNDEBUG -Wall -O3 -mavx -ftree-vectorize -msse4 -fvisibility-inlines-hidden -ftree-vectorizer-verbose=2 --param vect-max-version-for-alias-checks=30 -funsafe-loop-optimizations -ftree-loop-distribution -ftree-loop-if-convert-stores -fipa-pta -Wunsafe-loop-optimizations -fgcse-sm -fgcse-las -c vectHist.cpp -ffast-math -funswitch-loops -ftree-loop-distribute-patterns -fpredictive-commoning -finline-functions -fipa-cp-clone -fgcse-after-reload vectHist.cpp:17: note: not vectorized: data ref analysis failed x_5 = co[D.5125_4]; vectHist.cpp:17: note: not vectorized: data ref analysis failed x_5 = co[D.5125_4]; vectHist.cpp:16: note: vectorized 0 loops in function. vectHist.cpp:30: note: not vectorized: data ref analysis failed D.5096_55 = co[D.5095_54]; vectHist.cpp:30: note: not vectorized: data ref analysis failed D.5096_55 = co[D.5095_54]; vectHist.cpp:25: note: vectorized 0 loops in function. note how it does not report anything about loops at lines 31,33 and 35 --- // a classroom example #includecmath const int N=1024; float __attribute__ ((aligned(16))) a[N]; float __attribute__ ((aligned(16))) b[N]; float __attribute__ ((aligned(16))) c[N]; float __attribute__ ((aligned(16))) d[N]; int __attribute__ ((aligned(16))) k[N]; float __attribute__ ((aligned(16))) co[12]; float __attribute__ ((aligned(16))) hist[100]; // do not expect GCC to vectorize (yet) void foo() { for (int i=0; i!=N; ++i) { float x = co[k[i]]; float y = a[i]/std::sqrt(x*b[i]); ++hist[int(y)]; } } // let's give it an hand: split the loop so that the heavy duty one vectorize void bar() { const int S=8; int loops = N/S; float x[S]; float y[S]; for (int j=0; j!=loops; ++j) { for (int i=0; i!=S; ++i) x[i] = co[k[j+i]]; for (int i=0; i!=S; ++i) // this should vectorize y[i] = a[j+i]/std::sqrt(x[i]*b[j+i]); for (int i=0; i!=S; ++i) ++hist[int(y[i])]; } }
[Bug middle-end/49671] [4.6/4.7 Regression] volatile goes missing after inlining
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49671 --- Comment #6 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-26 07:52:27 UTC --- Author: pinskia Date: Tue Jul 26 07:52:24 2011 New Revision: 176785 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176785 Log: 2011-07-25 Andrew Pinski apin...@cavium.com PR tree-opt/49671 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and TREE_THIS_NOTRAP into the inner most MEM_REF. Always copy TREE_THIS_VOLATILE. * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and arguments are not volatile references. 2011-07-25 Andrew Pinski apin...@cavium.com PR tree-opt/49671 * gcc.dg/tree-ssa/pr49671-1.c: New testcase. * gcc.dg/tree-ssa/pr49671-2.c: New testcase. Added: branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/tree-ssa/pr49671-1.c - copied unchanged from r176782, trunk/gcc/testsuite/gcc.dg/tree-ssa/pr49671-1.c branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/tree-ssa/pr49671-2.c - copied unchanged from r176782, trunk/gcc/testsuite/gcc.dg/tree-ssa/pr49671-2.c Modified: branches/gcc-4_6-branch/ (props changed) branches/gcc-4_6-branch/gcc/ChangeLog branches/gcc-4_6-branch/gcc/config/rs6000/rs6000.c (props changed) branches/gcc-4_6-branch/gcc/config/rs6000/rs6000.h (props changed) branches/gcc-4_6-branch/gcc/testsuite/ChangeLog branches/gcc-4_6-branch/gcc/tree-inline.c branches/gcc-4_6-branch/gcc/tree-sra.c Propchange: branches/gcc-4_6-branch/ ('svn:mergeinfo' modified) Propchange: branches/gcc-4_6-branch/gcc/config/rs6000/rs6000.c ('svn:mergeinfo' modified) Propchange: branches/gcc-4_6-branch/gcc/config/rs6000/rs6000.h ('svn:mergeinfo' modified)
[Bug middle-end/49671] [4.6/4.7 Regression] volatile goes missing after inlining
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49671 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #7 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-26 07:53:25 UTC --- Fixed.
[Bug tree-optimization/49849] loop optimization prevents vectorization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49849 --- Comment #1 from vincenzo Innocente vincenzo.innocente at cern dot ch 2011-07-26 08:30:45 UTC --- it may be a duplicate of my own PR49730 as void bar2(int jj) { const int S=8; float x[S]; float y[S]; int j = jj*S; for (int i=0; i!=S; ++i) x[i] = co[k[j+i]]; for (int i=0; i!=S; ++i) // this should vectorize y[i] = a[j+i]/std::sqrt(x[i]*b[j+i]); for (int i=0; i!=S; ++i) ++hist[int(y[i])]; } vectorize at 03 (of course in the example I submitted previously the external loop should read for (int jj=0; jj!=loops; ++jj) { int j = jj*S; )
[Bug middle-end/49840] [4.7 Regression] New test failures
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49840 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011.07.26 08:50:04 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Target Milestone|--- |4.7.0 Ever Confirmed|0 |1 --- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 08:50:04 UTC --- It looks like __fixunsxfdi is miscompiled.
[Bug tree-optimization/49849] loop optimization prevents vectorization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49849 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.07.26 09:21:16 Ever Confirmed|0 |1 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 09:21:16 UTC --- The loop likely completely unrolled, you can disable that with --param max-completely-peel-times=1. I think scalar-code vectorization does not handle this right now because the temporary arrays that would help it have store-motion applied (and should be later optimized away, but are not).
[Bug lto/49844] Building CodeBlocks on Windows using mingw gcc 4.6.1 -flto -fuse-linker-plugin results in many linker stage errors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49844 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 09:25:00 UTC --- It sounds like a linker bug. Please try without fancy linker options like --as-needed.
[Bug c++/49850] New: Implicit creation of a temporary object when a constant reference is passed as parameter and the actual and formal types are not identical
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49850 Summary: Implicit creation of a temporary object when a constant reference is passed as parameter and the actual and formal types are not identical Product: gcc Version: 4.4.5 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: gccb...@andreas-borchert.de The following has been tested with g++ (Debian 4.4.5-8) 4.4.5 for the amd64 architecture as shipped with stable Debian 6.0. I do not have it tested for newer releases as I do not have them conveniently available. Following code demonstrates the problem: code start #include iostream #include sys/types.h using namespace std; size_t si; void foo(const unsigned int ui) { cout address of ui = (long long int) ui endl; } int main() { cout address of si = (long long int) si endl; foo(si); } code end The code generated for the invocation of foo() in main() shows the problem: movqsi(%rip), %rax movl%eax, -20(%rbp) leaq-20(%rbp), %rax movq%rax, %rdi call_Z3fooRKj Instead of passing the address of the global si variable, a temporary object is created (at 20(%rbp)) whose address is passed. If you test this program, the output shows the effect: address of si = 6295456 address of ui = 140734739682956 The apparent problem is that unsigned int and size_t do not match, at least not on this platform (size and signedness are different). But then I would expect an error and not the implicit creation of a temporary object of the appropriate type.
[Bug c++/49776] [C++0x]ICE in build_data_member_initialization, at cp/semantics.c:5499
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49776 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot |gnu.org |com Target Milestone|--- |4.7.0 --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-26 09:29:44 UTC --- The fix seems easy.
[Bug lto/49844] Building CodeBlocks on Windows using mingw gcc 4.6.1 -flto -fuse-linker-plugin results in many linker stage errors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49844 --- Comment #2 from PcX xunxun1982 at gmail dot com 2011-07-26 09:32:14 UTC --- (In reply to comment #1) It sounds like a linker bug. Please try without fancy linker options like --as-needed. I remove -Wl,-O1 -Wl,--sort-common -Wl,--as-needed, and it also has the problem. ps: other linker option like -Wl,--enable-auto-image-base -Wl,--add-stdcall-alias -Wl,--enable-auto-import is Code::Blocks's default option.
[Bug tree-optimization/49849] loop optimization prevents vectorization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49849 --- Comment #3 from vincenzo Innocente vincenzo.innocente at cern dot ch 2011-07-26 09:38:13 UTC --- Thanks Richard, --param max-completely-peel-times=1 does the trick and, in my real life example, does not have any adverse effect elsewhere while it speeds up the loop as expected. More in general, Do you think that GCC will ever be able to transform things like foo into bar by itself?
[Bug tree-optimization/49849] loop optimization prevents vectorization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49849 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added CC||spop at gcc dot gnu.org --- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 09:45:55 UTC --- (In reply to comment #3) Thanks Richard, --param max-completely-peel-times=1 does the trick and, in my real life example, does not have any adverse effect elsewhere while it speeds up the loop as expected. More in general, Do you think that GCC will ever be able to transform things like foo into bar by itself? I hope so ;) The graphite framework is supposed to provide us with this kind of features.
[Bug c++/49850] Implicit creation of a temporary object when a constant reference is passed as parameter and the actual and formal types are not identical
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49850 Daniel Krügler daniel.kruegler at googlemail dot com changed: What|Removed |Added CC||daniel.kruegler at ||googlemail dot com --- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com 2011-07-26 10:20:47 UTC --- (In reply to comment #0) #include sys/types.h To make the definition of size_t available, you should better include a standard header, like stddef.h Instead of passing the address of the global si variable, a temporary object is created (at 20(%rbp)) whose address is passed. If you test this program, the output shows the effect: address of si = 6295456 address of ui = 140734739682956 The apparent problem is that unsigned int and size_t do not match, at least not on this platform (size and signedness are different). But then I would expect an error and not the implicit creation of a temporary object of the appropriate type. You might expect this, but this would be in contradiction to what the C++ standard requires ([dcl.init.ref] p5 last bullet). GCC is required to accept this conversion. If you want to prevent this, use a pointer type or a non-const reference instead of a reference to const as function parameter. This does not look like a compiler defect to me.
[Bug tree-optimization/49822] [4.7 regression] Segfault in remove_prop_source_from_use
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49822 Richard Earnshaw rearnsha at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Richard Earnshaw rearnsha at gcc dot gnu.org 2011-07-26 11:04:23 UTC --- Confirmed as fixing original problem.
[Bug tree-optimization/49851] New: IVOPTs makes a mess out of polyhedron air derivx and derivy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49851 Summary: IVOPTs makes a mess out of polyhedron air derivx and derivy Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org SUBROUTINE DERIVX(D,U,Ux,Al,Np,Nd,M) IMPLICIT REAL*8(A-H,O-Z) PARAMETER (NX=150,NY=150) DIMENSION D(NX,33) , U(NX,NY) , Ux(NX,NY) , Al(30) , Np(30) DO jm = 1 , M jmax = 0 jmin = 1 DO i = 1 , Nd jmax = jmax + Np(i) + 1 DO j = jmin , jmax uxt = 0. DO k = 0 , Np(i) uxt = uxt + D(j,k+1)*U(jmin+k,jm) ENDDO Ux(j,jm) = uxt*Al(i) ENDDO jmin = jmin + Np(i) + 1 ENDDO ENDDO CONTINUE END it ends up inserting loads of code into the pre-header blocks of the loops, seemingly for rewriting of the loop exit tests. As a result of this air runs about 25% slower when compiled with GCC compared to ICC.
[Bug target/49833] [x32] PIC doesn't work
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49833 --- Comment #20 from uros at gcc dot gnu.org 2011-07-26 12:00:36 UTC --- Author: uros Date: Tue Jul 26 12:00:33 2011 New Revision: 176788 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176788 Log: PR target/47381 PR target/49832 PR target/49833 * config/i386/i386.md (i): Change SImode attribute to e. (g): Change SImode attribute to rme. (di): Change SImode attribute to nF. (general_operand): Change SImode attribute to x86_64_general_operand. (general_szext_operand): Change SImode attribute to x86_64_szext_general_operand. (immediate_operand): Change SImode attribute to x86_64_immediate_operand. (nonmemory_operand): Change SImode attribute to x86_64_nonmemory_operand. (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. (*movsi_internal): Ditto. Use e constraint in alternative 2. (*lea_1): Use SWI48 mode iterator. (*lea_1_zext): New insn pattern. (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. (*btmode): Ditto. (*addmode1): Use x86_64_general_operand predicate for operand 2. Update operand constraints. (addsi_1_zext): Ditto. (*addmode2): Ditto. (*addsi_3_zext): Ditto. (*subsi_1_zext): Ditto. (*subsi_2_zext): Ditto. (*subsi_3_zext): Ditto. (*addsi3_carry_zext): Ditto. (*plusminus_insnsi3_zext_cc_overflow): Ditto. (*mulsi3_1_zext): Ditto. (*andsi_1): Ditto. (*andsi_1_zext): Ditto. (*andsi_2_zext): Ditto. (*any_or:codesi_1_zext): Ditto. (*any_or:codesi_2_zext): Ditto. (*testmode_1): Use general_operand predicate for operand 1. (*andmode_2): Ditto. (movmodecc): Use general_operand predicate for operands 1 and 2. (add-lea splitter): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (add-lea zext splitter): Do not extend input operands to DImode. (*lea_general_1): Handle only QImode and HImode operands. (*lea_general_2): Ditto. (*lea_general_3): Ditto. (*lea_general_1_zext): Remove. (*lea_general_2_zext): Ditto. (*lea_general_3_zext): Ditto. (*lea_general_4): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (ashift-lea splitter): Ditto. * config/i386/i386.c (ix86_print_operand_address): Print address registers with 'q' modifier on 64bit targets. * config/i386/predicates.md (pic_32bit_opreand): Define as special predicate. Reject non-SI and non-DI modes. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/predicates.md
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 --- Comment #4 from uros at gcc dot gnu.org 2011-07-26 12:00:36 UTC --- Author: uros Date: Tue Jul 26 12:00:33 2011 New Revision: 176788 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176788 Log: PR target/47381 PR target/49832 PR target/49833 * config/i386/i386.md (i): Change SImode attribute to e. (g): Change SImode attribute to rme. (di): Change SImode attribute to nF. (general_operand): Change SImode attribute to x86_64_general_operand. (general_szext_operand): Change SImode attribute to x86_64_szext_general_operand. (immediate_operand): Change SImode attribute to x86_64_immediate_operand. (nonmemory_operand): Change SImode attribute to x86_64_nonmemory_operand. (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. (*movsi_internal): Ditto. Use e constraint in alternative 2. (*lea_1): Use SWI48 mode iterator. (*lea_1_zext): New insn pattern. (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. (*btmode): Ditto. (*addmode1): Use x86_64_general_operand predicate for operand 2. Update operand constraints. (addsi_1_zext): Ditto. (*addmode2): Ditto. (*addsi_3_zext): Ditto. (*subsi_1_zext): Ditto. (*subsi_2_zext): Ditto. (*subsi_3_zext): Ditto. (*addsi3_carry_zext): Ditto. (*plusminus_insnsi3_zext_cc_overflow): Ditto. (*mulsi3_1_zext): Ditto. (*andsi_1): Ditto. (*andsi_1_zext): Ditto. (*andsi_2_zext): Ditto. (*any_or:codesi_1_zext): Ditto. (*any_or:codesi_2_zext): Ditto. (*testmode_1): Use general_operand predicate for operand 1. (*andmode_2): Ditto. (movmodecc): Use general_operand predicate for operands 1 and 2. (add-lea splitter): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (add-lea zext splitter): Do not extend input operands to DImode. (*lea_general_1): Handle only QImode and HImode operands. (*lea_general_2): Ditto. (*lea_general_3): Ditto. (*lea_general_1_zext): Remove. (*lea_general_2_zext): Ditto. (*lea_general_3_zext): Ditto. (*lea_general_4): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (ashift-lea splitter): Ditto. * config/i386/i386.c (ix86_print_operand_address): Print address registers with 'q' modifier on 64bit targets. * config/i386/predicates.md (pic_32bit_opreand): Define as special predicate. Reject non-SI and non-DI modes. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/predicates.md
[Bug target/49832] [x32] too many memory references for `lea'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49832 --- Comment #2 from uros at gcc dot gnu.org 2011-07-26 12:00:37 UTC --- Author: uros Date: Tue Jul 26 12:00:33 2011 New Revision: 176788 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176788 Log: PR target/47381 PR target/49832 PR target/49833 * config/i386/i386.md (i): Change SImode attribute to e. (g): Change SImode attribute to rme. (di): Change SImode attribute to nF. (general_operand): Change SImode attribute to x86_64_general_operand. (general_szext_operand): Change SImode attribute to x86_64_szext_general_operand. (immediate_operand): Change SImode attribute to x86_64_immediate_operand. (nonmemory_operand): Change SImode attribute to x86_64_nonmemory_operand. (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. (*movsi_internal): Ditto. Use e constraint in alternative 2. (*lea_1): Use SWI48 mode iterator. (*lea_1_zext): New insn pattern. (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. (*btmode): Ditto. (*addmode1): Use x86_64_general_operand predicate for operand 2. Update operand constraints. (addsi_1_zext): Ditto. (*addmode2): Ditto. (*addsi_3_zext): Ditto. (*subsi_1_zext): Ditto. (*subsi_2_zext): Ditto. (*subsi_3_zext): Ditto. (*addsi3_carry_zext): Ditto. (*plusminus_insnsi3_zext_cc_overflow): Ditto. (*mulsi3_1_zext): Ditto. (*andsi_1): Ditto. (*andsi_1_zext): Ditto. (*andsi_2_zext): Ditto. (*any_or:codesi_1_zext): Ditto. (*any_or:codesi_2_zext): Ditto. (*testmode_1): Use general_operand predicate for operand 1. (*andmode_2): Ditto. (movmodecc): Use general_operand predicate for operands 1 and 2. (add-lea splitter): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (add-lea zext splitter): Do not extend input operands to DImode. (*lea_general_1): Handle only QImode and HImode operands. (*lea_general_2): Ditto. (*lea_general_3): Ditto. (*lea_general_1_zext): Remove. (*lea_general_2_zext): Ditto. (*lea_general_3_zext): Ditto. (*lea_general_4): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (ashift-lea splitter): Ditto. * config/i386/i386.c (ix86_print_operand_address): Print address registers with 'q' modifier on 64bit targets. * config/i386/predicates.md (pic_32bit_opreand): Define as special predicate. Reject non-SI and non-DI modes. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/predicates.md
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Target||x32 Status|UNCONFIRMED |RESOLVED URL||http://gcc.gnu.org/ml/gcc-p ||atches/2011-07/msg02249.htm ||l Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #5 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 12:07:11 UTC --- Committed to trunk.
[Bug target/49832] [x32] too many memory references for `lea'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49832 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 12:10:01 UTC --- Fixed by changing *movsi_internal operand 1 alt 1 constraint from i to e.
[Bug target/49833] [x32] PIC doesn't work
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49833 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED URL||http://gcc.gnu.org/ml/gcc-p ||atches/2011-07/msg02249.htm ||l Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #21 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 12:13:26 UTC --- Fixed, please open new PR for external function symbol problem.
[Bug bootstrap/49786] [4.7 Regression] bootstrap failed with bootstrap-profiled
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49786 --- Comment #18 from Martin Jambor jamborm at gcc dot gnu.org 2011-07-26 12:26:32 UTC --- Proposed fix posted to the mailing list: http://gcc.gnu.org/ml/gcc-patches/2011-07/msg02247.html
[Bug bootstrap/49786] [4.7 Regression] bootstrap failed with bootstrap-profiled
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49786 --- Comment #19 from Martin Jambor jamborm at gcc dot gnu.org 2011-07-26 12:27:01 UTC --- Author: jamborm Date: Tue Jul 26 12:26:58 2011 New Revision: 176789 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176789 Log: 2011-07-26 Martin Jambor mjam...@suse.cz PR bootstrap/49786 * ipa-cp.c (update_profiling_info): Avoid overflow when updating counts. (update_specialized_profile): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-cp.c
[Bug c++/49850] Implicit creation of a temporary object when a constant reference is passed as parameter and the actual and formal types are not identical
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49850 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-26 12:27:33 UTC --- Let's close this.
[Bug bootstrap/49786] [4.7 Regression] bootstrap failed with bootstrap-profiled
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49786 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #20 from Martin Jambor jamborm at gcc dot gnu.org 2011-07-26 12:29:21 UTC --- Fixed.
[Bug middle-end/49840] [4.7 Regression] New test failures
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49840 --- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 12:37:03 UTC --- Author: rguenth Date: Tue Jul 26 12:37:00 2011 New Revision: 176790 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176790 Log: 2011-07-26 Richard Guenther rguent...@suse.de PR tree-optimization/49840 * tree-vrp.c (range_fits_type_p): Properly handle full double-int precision. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-vrp.c
[Bug middle-end/49840] [4.7 Regression] New test failures
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49840 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 12:37:20 UTC --- Fixed.
[Bug tree-optimization/49851] IVOPTs makes a mess out of polyhedron air derivx and derivy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49851 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 12:53:47 UTC --- Testcase with caller, use -fwhole-program to force inlining. IMPLICIT REAL*8(a-H,O-Z) PARAMETER (NX=150,NY=150) DIMENSION ux(NX,NY) , uy(NX,NY) , vx(NX,NY) , vy(NX,NY) , tx(NX,NY) DIMENSION DX(NX,33) , DY(NY,33) DIMENSION U(NX,NY) , V(NX,NY) , P(NX,NY) , RHO(NX,NY) , E(NX,NY) DIMENSION NPX(30) , x(NX) , NPY(30) , y(NY) , ALX(30) , bex(30) COMMON /XD1 / FP1 , FM1 , FP2 , FM2 , FP3 , FM3 , FP4 , FM4 , FP1x , FM1x , FP2x , FM2x , FP3x , FM3x , FP4x , FM4x , FV2 , FV3 , FV4 , DXP2 , DXM2 , DXP3 , DXM3 , DXP4 , DXM4 , DX , NPX , ALX , NDX , MXPy COMMON /BNDRY / U , V , P , RHO , T , E , AS1 , AS2 , AS3 , AS4 , NX1 , NY1 , NX2 , NY2 , SIG , GMA , S0 , T0 , P0 , PE , HOO , RR , MINlet CALL DERIVX(DX,U,ux,ALX,NPX,NDX,MXPy) END SUBROUTINE DERIVX(D,U,Ux,Al,Np,Nd,M) IMPLICIT REAL*8(A-H,O-Z) PARAMETER (NX=150,NY=150) DIMENSION D(NX,33) , U(NX,NY) , Ux(NX,NY) , Al(30) , Np(30) DO jm = 1 , M jmax = 0 jmin = 1 DO i = 1 , Nd jmax = jmax + Np(i) + 1 DO j = jmin , jmax uxt = 0. DO k = 0 , Np(i) uxt = uxt + D(j,k+1)*U(jmin+k,jm) ENDDO Ux(j,jm) = uxt*Al(i) ENDDO jmin = jmin + Np(i) + 1 ENDDO ENDDO CONTINUE END
[Bug tree-optimization/46032] openmp inhibits loop vectorization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46032 --- Comment #5 from vincenzo Innocente vincenzo.innocente at cern dot ch 2011-07-26 13:00:18 UTC --- in case anybody wandering it seems fixed in Using built-in specs. COLLECT_GCC=c++ COLLECT_LTO_WRAPPER=/afs/cern.ch/user/i/innocent/w2/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ./configure --prefix=/afs/cern.ch/user/i/innocent/w2 --enable-languages=c,c++,fortran -enable-gold=yes --enable-lto --with-build-config=bootstrap-lto --with-gmp-lib=/usr/local/lib64 --with-mpfr-lib=/usr/local/lib64 -with-mpc-lib=/usr/local/lib64 --enable-cloog-backend=isl --with-cloog=/usr/local --with-ppl-lib=/usr/local/lib64 CFLAGS='-O2 -ftree-vectorize -fPIC' CXXFLAGS='-O2 -fPIC -ftree-vectorize -fvisibility-inlines-hidden' Thread model: posix gcc version 4.7.0 20110725 (experimental) (GCC) c++ -std=gnu++0x -DNDEBUG -Wall -Ofast -mavx openmpvector.cpp -ftree-vectorizer-verbose=7 -fopenmp openmpvector.cpp:11: note: versioning for alias required: can't determine dependence between *pretmp.11_32[idx_3] and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: mark for run-time aliasing test between *pretmp.11_32[idx_3] and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: versioning for alias required: can't determine dependence between .omp_data_i_14(D)-coeff and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: mark for run-time aliasing test between .omp_data_i_14(D)-coeff and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: Unknown alignment for access: *pretmp.11_32 openmpvector.cpp:11: note: Unknown alignment for access: *pretmp.11_34 openmpvector.cpp:11: note: Vectorizing an unaligned access. openmpvector.cpp:11: note: Vectorizing an unaligned access. openmpvector.cpp:11: note: Vectorizing an unaligned access. openmpvector.cpp:11: note: vect_model_load_cost: unaligned supported by hardware. openmpvector.cpp:11: note: vect_model_load_cost: inside_cost = 2, outside_cost = 0 . openmpvector.cpp:11: note: vect_model_load_cost: unaligned supported by hardware. openmpvector.cpp:11: note: vect_model_load_cost: inside_cost = 2, outside_cost = 0 . openmpvector.cpp:11: note: vect_model_simple_cost: inside_cost = 1, outside_cost = 0 . openmpvector.cpp:11: note: vect_model_store_cost: unaligned supported by hardware. openmpvector.cpp:11: note: vect_model_store_cost: inside_cost = 2, outside_cost = 0 . openmpvector.cpp:11: note: cost model: Adding cost of checks for loop versioning aliasing. openmpvector.cpp:11: note: cost model: epilogue peel iters set to vf/2 because loop iterations are unknown . openmpvector.cpp:11: note: Cost model analysis: Vector inside of loop cost: 7 Vector outside of loop cost: 19 Scalar iteration cost: 4 Scalar outside cost: 1 prologue iterations: 0 epilogue iterations: 2 Calculated minimum iters for profitability: 7 openmpvector.cpp:11: note: Profitability threshold = 6 openmpvector.cpp:11: note: Profitability threshold is 6 loop iterations. openmpvector.cpp:11: note: create runtime check for data references *pretmp.11_32[idx_3] and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: create runtime check for data references .omp_data_i_14(D)-coeff and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: created 2 versioning for alias checks. openmpvector.cpp:11: note: LOOP VECTORIZED. openmpvector.cpp:9: note: vectorized 1 loops in function. graphite breaks it…. c++ -std=gnu++0x -DNDEBUG -Wall -Ofast -mavx openmpvector.cpp -ftree-vectorizer-verbose=7 -fopenmp -fgraphite -fgraphite-identity -floop-block -floop-flatten -floop-interchange -floop-strip-mine -ftree-loop-linear -floop-parallelize-all openmpvector.cpp:9: note: not vectorized: data ref analysis failed D.2372_47 = *pretmp.11_32[D.2403_49]; openmpvector.cpp:9: note: vectorized 0 loops in function.
[Bug tree-optimization/46032] openmp inhibits loop vectorization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46032 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||spop at gcc dot gnu.org --- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-26 13:47:35 UTC --- Good. But it Graphite breaks it, let's add Sebastian in CC..
[Bug c++/49852] New: [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 Summary: [4.7 Regression] cp-demangle.c segfault Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: ja...@redhat.com [hjl@gnu-6 asm]$ c++filt _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ Segmentation fault (core dumped) [hjl@gnu-6 asm]$
[Bug tree-optimization/49851] IVOPTs makes a mess out of polyhedron air derivx and derivy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49851 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 13:59:26 UTC --- AIR spends 86% of its time in DERIV[XY] (for ICC), 78% of its time there for GCC. The performance difference also reproduces when not inlining DERIV[XY] at all (though it's slightly less of a difference - GCC doesn't care).
[Bug debug/49846] entryval: missing DW_TAG_GNU_call_site_parameter for stack-passed `double' parameter
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49846 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011.07.26 14:00:49 AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-26 14:00:49 UTC --- Created attachment 24835 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24835 gcc47-pr49846.patch Untested fix.
[Bug fortran/45586] [4.6/4.7 Regression] ICE non-trivial conversion at assignment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586 --- Comment #59 from Tobias Burnus burnus at gcc dot gnu.org 2011-07-26 14:27:43 UTC --- (In reply to comment #53) reduced testcase for 4.7 y=rs_gauge(i)%rs(j)%rs_grid%r Here, %r-data is marked as restricted as r is allocatable. However, all other references are a pointer. The derived type is obtained via a nested calls to gfc_get_derived_type. For r one calls gfc_get_array_type_bounds - seemingly with restricted = 1. If one now declares rs_gauge, one calls gfc_nonrestricted_type which removes the restrict qualifier from the type (i.e. rs_gauge) and from the rs_gauge-rs but does not go higher up the chain. Thus, one somehow needs to walk the components and remove the restrict there ... With the following patch, one does not get any ICE anymore, but I am neither sure whether it is sufficient, nor whether it removes restrict qualifiers where it shouldn't, nor whether it is correct at all. --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -2421,6 +2421,9 @@ gfc_get_derived_type (gfc_symbol * derived) !c-attr.proc_pointer) field_type = build_pointer_type (field_type); + if (c-attr.pointer) + field_type = gfc_nonrestricted_type (field_type); + /* vtype fields can point to different types to the base type. */ if (c-ts.type == BT_DERIVED c-ts.u.derived-attr.vtype) field_type = build_pointer_type_for_mode (TREE_TYPE (field_type),
[Bug tree-optimization/49851] IVOPTs makes a mess out of polyhedron air derivx and derivy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49851 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-26 14:32:35 UTC --- (In reply to comment #2) AIR spends 86% of its time in DERIV[XY] (for ICC), 78% of its time there for GCC. The performance difference also reproduces when not inlining DERIV[XY] at all (though it's slightly less of a difference - GCC doesn't care). Actually it does not. Without inlining: GCC: air 2.42 4728556 3.99 10 0.1798 SUBROUTINE DERIVX(D,U,Ux,Al,Np,Nd,M) /* derivx_ total: 8194999 42.3750 */ SUBROUTINE DERIVY(D,U,Uy,Al,Np,Nd,M) /* derivy_ total: 8176250 42.2781 */ ICC: air 2.90 4072563 3.45 10 0.1809 SUBROUTINE DERIVX(D,U,Ux,Al,Np,Nd,M) /* derivx_ total: 8060834 47.2620 */ SUBROUTINE DERIVY(D,U,Uy,Al,Np,Nd,M) /* derivy_ total: 7070627 41.4563 */ so not much difference in the total hits. Which means ICC performs some context-dependent optimization.
[Bug target/47446] [x32] .quad instead of .long is used for address
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47446 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #6 from H.J. Lu hjl.tools at gmail dot com 2011-07-26 14:33:34 UTC --- Fixed by: http://gcc.gnu.org/ml/gcc-cvs/2011-07/msg00806.html
[Bug target/49853] New: [x32] PIC doesn't work with external symbol
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49853 Summary: [x32] PIC doesn't work with external symbol Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com [hjl@gnu-6 gcc]$ cat /tmp/bar.c typedef unsigned int Elf32_Addr; extern void _start (void); int dl_main ( Elf32_Addr *user_entry) { if (*user_entry == (Elf32_Addr) _start) return 0; else return 1; } [hjl@gnu-6 gcc]$ ./xgcc -B./ -S -O2 -fPIC /tmp/bar.c -mx32 -std=gnu99 -dp /tmp/bar.c: In function ‘dl_main’: /tmp/bar.c:10:1: error: unrecognizable insn: (insn 6 5 7 3 (set (reg:SI 67) (symbol_ref:SI (_start) [flags 0x41] function_decl 0x7faad972ff00 _start)) /tmp/bar.c:6 -1 (nil)) /tmp/bar.c:10:1: internal compiler error: in extract_insn, at recog.c:2115 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. [hjl@gnu-6 gcc]$
[Bug c++/49852] [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 --- Comment #1 from Jan Kratochvil jan.kratochvil at redhat dot com 2011-07-26 14:40:32 UTC --- 78de04b4b6af769e72b723db729459736a67bc33 is the first bad commit commit 78de04b4b6af769e72b723db729459736a67bc33 Author: DJ Delorie d...@delorie.com Date: Wed Jun 22 19:13:31 2011 + merge from gcc = +2011-06-20 Jason Merrill ja...@redhat.com + + PR c++/37089 + * cp-demangle.c (d_print_comp): Handle reference smashing. + * testsuite/demangle-expected: Test it.
[Bug c++/49852] [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 Ian Lance Taylor ian at airs dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||ian at airs dot com Resolution||FIXED --- Comment #2 from Ian Lance Taylor ian at airs dot com 2011-07-26 15:24:28 UTC --- Already fixed. I think there is a compiler problem in that this symbol was generated in the first place.
[Bug target/49854] New: Clean up SPE/e500 option handling
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49854 Summary: Clean up SPE/e500 option handling Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: js...@gcc.gnu.org Target: powerpc*-*-* As described at http://gcc.gnu.org/ml/gcc-patches/2010-08/msg01667.html, the handling of SPE/e500 options should be cleaned up as follows: * Enable rs6000_spe, rs6000_spe_abi, rs6000_float_gprs based on information in the processor_target_table used to enable other features based on the CPU, or failing that based on direct comparisons with PROCESSOR_PPC8540 and PROCESSOR_PPC8548 as done for various other processor peculiarities in rs6000_override_options. Don't limit this to vxworks.h; do it for all targets. * If rs6000_spe is set while TARGET_SPE is 0, or similarly for the other settings, give an error that the options given are not supported in this compiler configuration (it's been built without e500 support). (You should do it in rs6000_option_override_internal after things have been defaulted from the CPU.) * Remove various special settings of defaults in eabispe.h and linuxspe.h and e500-double.h, and the For the powerpc-eabispe configuration, we set all these by default code in rs6000_override_options. Instead, config.gcc should enable --with-cpu=8540 / --with-cpu=8548 given one of the *spe targets, selecting which of those options to enable based on whether --enable-e500-double is passed - as well as ensuring e500.h is in tm_file so the e500 support is built into the compiler, of course. Then the logic to default things from the CPU would do the rest. * Remove the TARGET_E500 macro. Everything using it should check either features or specific PROCESSOR_* settings.
[Bug c++/49852] [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 --- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2011-07-26 15:36:56 UTC --- (In reply to comment #1) 78de04b4b6af769e72b723db729459736a67bc33 is the first bad commit commit 78de04b4b6af769e72b723db729459736a67bc33 Author: DJ Delorie d...@delorie.com Date: Wed Jun 22 19:13:31 2011 + merge from gcc = +2011-06-20 Jason Merrill ja...@redhat.com + + PR c++/37089 + * cp-demangle.c (d_print_comp): Handle reference smashing. + * testsuite/demangle-expected: Test it. It isn't fixed as of Tue Jul 26 08:36:39 PDT 2011. I still got [hjl@gnu-6 binutils]$ ./cxxfilt _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ Segmentation fault (core dumped) [hjl@gnu-6 binutils]$
[Bug c++/49852] [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|RESOLVED|REOPENED Last reconfirmed||2011.07.26 15:38:53 Resolution|FIXED | Ever Confirmed|0 |1 --- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2011-07-26 15:38:53 UTC --- (gdb) r _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ Starting program: /export/build/gnu/binutils/build-x86_64-linux/binutils/cxxfilt _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ Program received signal SIGSEGV, Segmentation fault. 0x004c61fd in d_print_comp (dpi=0x7fffd100, options=267, dc=0x7fffd508) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:3899 3899if (sub-type == DEMANGLE_COMPONENT_REFERENCE (gdb) bt #0 0x004c61fd in d_print_comp (dpi=0x7fffd100, options=267, dc=0x7fffd508) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:3899 #1 0x004c5586 in d_print_subexpr (dpi=0x7fffd100, options=267, dc=0x7fffd508) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:3554 #2 0x004c74ed in d_print_comp (dpi=0x7fffd100, options=267, dc=0x7fffd520) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:4393 #3 0x004c690a in d_print_comp (dpi=0x7fffd100, options=267, dc=0x7fffd538) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:4106 #4 0x004c69a3 in d_print_comp (dpi=0x7fffd100, options=267, dc=0x7fffd4d8) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:4118 #5 0x004c7f8a in d_print_function_type (dpi=0x7fffd100, options=267, dc=0x7fffd550, mods=0x7fffcf80) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:4728 #6 0x004c6552 in d_print_comp (dpi=0x7fffd100, options=267, dc=0x7fffd550) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:3991 #7 0x004c5a30 in d_print_comp (dpi=0x7fffd100, options=267, dc=0x7fffd568) ---Type return to continue, or q return to quit--- at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:3683 #8 0x004c5258 in cplus_demangle_print_callback (options=267, dc=0x7fffd568, callback=0x4c4f3b d_growable_string_callback_adapter, opaque=0x7fffdd50) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:3402 #9 0x004c86e0 in d_demangle_callback ( mangled=0x7fffe324 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_, options=267, callback=0x4c4f3b d_growable_string_callback_adapter, opaque=0x7fffdd50) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:4961 #10 0x004c8735 in d_demangle ( mangled=0x7fffe324 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_, options=267, palc=0x7fffdda8) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:4982 #11 0x004c879f in cplus_demangle_v3 ( mangled=0x7fffe324 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_, options=267) at /export/gnu/import/git/binutils/libiberty/cp-demangle.c:5139 #12 0x004b85f1 in cplus_demangle ( mangled=0x7fffe324 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_, options=11) at /export/gnu/import/git/binutils/libiberty/cplus-dem.c:858 #13 0x004023b4 in demangle_it ( mangled_name=0x7fffe324 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_)---Type return to continue, or q return to quit--- at /export/gnu/import/git/binutils/binutils/cxxfilt.c:63 #14 0x0040275d in main (argc=2, argv=0x7fffdfa8) at /export/gnu/import/git/binutils/binutils/cxxfilt.c:227 (gdb) p sub $1 = (const struct demangle_component *) 0x0 (gdb)
[Bug c++/49852] [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 --- Comment #5 from Jan Kratochvil jan.kratochvil at redhat dot com 2011-07-26 15:40:23 UTC --- Patch committed: Fix demangler crash http://gcc.gnu.org/ml/gcc-patches/2011-07/msg02263.html From: Ian Lance Taylor iant at google dot com DJ's script will merge it.
[Bug c++/49852] [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 --- Comment #6 from Jürg Billeter j at bitron dot ch 2011-07-26 15:43:11 UTC --- It works here now, both, just calling cxxfilt and the full ld command from libreoffice. Thanks for the quick fix. For some reason, 'make' didn't rebuild libbfd after updating cp-mangle.c. After 'make clean' it looks all fine, though.
[Bug middle-end/48470] ICE in expand_expr_addr_expr_1 at expr.c:6835
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48470 --- Comment #3 from Stephen Cleary gcc.ourteddybear at xoxy dot net 2011-07-26 15:56:40 UTC --- (In reply to comment #2) The test case reduces to the following: void __attribute__((naked)) f(void) { int x = 0; g(x); } It ICEs 4.4.5, 4.5.2, and 4.6.0, but not 4.3.5, 4.2.4, or 4.1.2. I suspect it isn't valid to make recursive calls or take the address of local variables in naked functions. It is important to note, however, that the original test case does not take the address of a local variable in a naked function. The original test case is like this: static void g(void); void __attribute__((naked)) f(void) { g(); } void g(void) { int x = 0; h(x); } So this may be due to overzealous inlining.
[Bug c++/49852] [4.7 Regression] cp-demangle.c segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49852 --- Comment #7 from H.J. Lu hjl.tools at gmail dot com 2011-07-26 16:27:39 UTC --- On Linux/ia32, revision 176793 gave: FAIL at line 4023: unknown demangling style _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ FAIL at line 4027: unknown demangling style yz.qrs FAIL at line 4031: unknown demangling style oper.+ FAIL at line 4035: unknown demangling style yz.qrs FAIL at line 4039: unknown demangling style yz.qrs.tuv FAIL at line 4042: unknown demangling style yz.qrs.tuv FAIL at line 4045: unknown demangling style yz.qrs.tuv FAIL at line 4049: unknown demangling style yz.qrs.tuv FAIL at line 4053: unknown demangling style x_E FAIL at line 4056: unknown demangling style x.m1 FAIL at line 4059: unknown demangling style x.m3 FAIL at line 4062: unknown demangling style x.y.m2 FAIL at line 4066: unknown demangling style x.y.z.r FAIL at line 4070: unknown demangling style x.y.j FAIL at line 4074: unknown demangling style x.m3 FAIL at line 4078: unknown demangling style p'Elab_Body FAIL at line 4082: unknown demangling style p'Elab_Spec FAIL at line 4086: unknown demangling style p.taskobj FAIL at line 4090: unknown demangling style p.taskobj.f1 FAIL at line 4093: unknown demangling style prot.lock.get FAIL at line 4096: unknown demangling style prot.lock.get FAIL at line 4099: unknown demangling style prot.lock.get.sub FAIL at line 4102: unknown demangling style prot.lock.set FAIL at line 4106: unknown demangling style prot.lock.set FAIL at line 4109: unknown demangling style prot.lock.update FAIL at line 4113: unknown demangling style prot.lock.update FAIL at line 4116: unknown demangling style gnat.sockets.sockets_library_controller.Finalize FAIL at line 4120: unknown demangling style system.partition_interface.racw_stub_type.Adjust FAIL at line 4123: unknown demangling style gnat.wide_wide_string_split.slice_set'Read FAIL at line 4126: unknown demangling style ada.real_time.timing_events.events.list'Write FAIL at line 4129: unknown demangling style system.finalization_root.root_controlled'Input FAIL at line 4133: unknown demangling style ada.finalization.limited_controlled'Output FAIL at line 4136: unknown demangling style ada.synchronous_task_control'Size FAIL at line 4139: unknown demangling style ada.real_time.timing_events.events'Alignment FAIL at line 4144: unknown demangling style system.finalization_root.:= FAIL at line 4149: unknown demangling style DFA FAIL at line 4152: unknown demangling style Psi::VariantDetail::SelectVisitorResultVariantTest::TestVisit::test_method()::{lambda(char const*)#2}, VariantTest::TestVisit::test_method()::{lambda(char)#3}, VariantTest::TestVisit::test_method()::{lambda(Psi::None)#1}::type Psi::Variantchar, char const*::visitVariantTest::TestVisit::test_method()::{lambda(char const*)#2}, VariantTest::TestVisit::test_method()::{lambda(char)#3}, VariantTest::TestVisit::test_method()::{lambda(Psi::None)#1}((VariantTest::TestVisit::test_method()::{lambda(Psi::None)#1})...) Revision 176790 is OK.
[Bug c++/49855] New: internal compiler error: in fold_convert_const_int_from_real
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49855 Summary: internal compiler error: in fold_convert_const_int_from_real Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: xinlian...@gmail.com In the following code, FE should generate FIX_TRUNC_EXPR instead of NOP_EXPR for the float to int conversion. extern void foo(int); template class Key, class Value void Basic() { const int kT = 1.5e6;// --- causes ICE int size = kT*2/3; do { foo(size); size = size * 0.5 - 1; } while (size = 0 ); } Note that removing the template specification, the right code is generated and there is no ICE. David
[Bug target/49853] [x32] PIC doesn't work with external symbol
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49853 --- Comment #1 from uros at gcc dot gnu.org 2011-07-26 18:03:59 UTC --- Author: uros Date: Tue Jul 26 18:03:54 2011 New Revision: 176798 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176798 Log: PR target/47369 PR target/49853 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode if legitimize_tls_address returned operand in wrong mode. Allow SImode and DImode symbolic operand for PIC. Call convert_to_mode if legitimize_pic_address returned operand in wrong mode. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c
[Bug target/47369] [x32] internal compiler error: in extract_insn, at recog.c:2109
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47369 --- Comment #2 from uros at gcc dot gnu.org 2011-07-26 18:03:59 UTC --- Author: uros Date: Tue Jul 26 18:03:54 2011 New Revision: 176798 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176798 Log: PR target/47369 PR target/49853 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode if legitimize_tls_address returned operand in wrong mode. Allow SImode and DImode symbolic operand for PIC. Call convert_to_mode if legitimize_pic_address returned operand in wrong mode. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c
[Bug tree-optimization/48805] ICE in rename_uses, at sese.c:533 while compiling qutecom 2.2 with -fgraphite-identity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48805 --- Comment #4 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 18:47:51 UTC --- Author: spop Date: Tue Jul 26 18:47:44 2011 New Revision: 176801 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176801 Log: Fix PR48805: Do not instantiate ADDR_EXPRs With this patch we avoid instantiating ADDR_EXPR: it makes no sense to translate b[i] into b[{0, +, 1}_1]. Bootstrapped and tested on amd64-linux. 2011-07-26 Sebastian Pop sebastian@amd.com PR middle-end/48805 * tree-scalar-evolution.c (instantiate_scev_r): Return chrec_dont_know for ADDR_EXPR. * gcc.dg/graphite/id-pr48805.c: New. Added: trunk/gcc/testsuite/gcc.dg/graphite/id-pr48805.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-scalar-evolution.c
[Bug middle-end/47653] [4.6/4.7 Regression] gcc.c-torture/execute/930614-2.c FAILs with -fstack-check=generic -fgraphite-identity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47653 --- Comment #10 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 18:48:19 UTC --- Author: spop Date: Tue Jul 26 18:48:08 2011 New Revision: 176802 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176802 Log: Fix PR47653: do not handle loops using wrapping semantics in graphite 2011-07-26 Sebastian Pop sebastian@amd.com PR middle-end/47653 * graphite-scop-detection.c (graphite_can_represent_loop): Discard loops using wrapping semantics. * gcc.dg/graphite/run-id-pr47653.c: New. * gcc.dg/graphite/interchange-3.c: Do not use unsigned types for induction variables. * gcc.dg/graphite/scop-16.c: Same. * gcc.dg/graphite/scop-17.c: Same. * gcc.dg/graphite/scop-21.c: Same. Added: trunk/gcc/testsuite/gcc.dg/graphite/run-id-pr47653.c Modified: trunk/gcc/ChangeLog trunk/gcc/graphite-scop-detection.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/graphite/interchange-3.c trunk/gcc/testsuite/gcc.dg/graphite/scop-16.c trunk/gcc/testsuite/gcc.dg/graphite/scop-17.c trunk/gcc/testsuite/gcc.dg/graphite/scop-21.c trunk/libgomp/testsuite/libgomp.graphite/force-parallel-1.c
[Bug middle-end/47653] [4.6/4.7 Regression] gcc.c-torture/execute/930614-2.c FAILs with -fstack-check=generic -fgraphite-identity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47653 --- Comment #11 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 18:48:32 UTC --- Author: spop Date: Tue Jul 26 18:48:20 2011 New Revision: 176803 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176803 Log: Add testcase for PR47593 2011-07-26 Sebastian Pop sebastian@amd.com PR middle-end/47653 * gcc.dg/graphite/run-id-pr47593.c: New. Added: trunk/gcc/testsuite/gcc.dg/graphite/run-id-pr47593.c Modified: trunk/gcc/testsuite/ChangeLog
[Bug middle-end/47046] gcc.target/i386/sse4_1-movntdqa.c ICEs with -fgraphite-identity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47046 --- Comment #3 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 18:48:57 UTC --- Author: spop Date: Tue Jul 26 18:48:49 2011 New Revision: 176805 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176805 Log: Fix PR47046: correct evolution_function_is_affine_p Bug 47046 - gcc.target/i386/sse4_1-movntdqa.c ICEs with -fgraphite-identity The problem here is that we are left with the following code to be translated in the new representation following the transform that Graphite has chosen: D.2709_14 = j_33 * i_32; D.2710_15 = D.2709_14 * i_32; D.2711_16 = D.2710_15 * sign_34; *D.2708_13 = D.2711_16; In this particular case we have a nonlinear expression i * i for which we have to generate code following the new graphite_iv variables. The patch fixes the function that detects whether we are passing non linear stuff to graphite: evolution_function_is_affine_p. It seems like for the moment evolution_function_is_affine_p is testing whether an evolution function is affine only in the innermost loop, without looking recursively at what happens in outer loops. The chrec for this case is: {0, +, {0, +, {1, +, 2}_1}_1}_2 and we are testing whether the evolution is affine only for the loop_2, which is true as we have {0, +, blah}_2 with blah invariant in loop_2. The patch adds the recursive call to evolution_function_is_affine_p. Bootstrapped and tested on amd64-linux. 2011-07-26 Sebastian Pop sebastian@amd.com PR middle-end/47046 * tree-chrec.h (evolution_function_is_affine_p): Recursively call evolution_function_is_affine_p on CHREC_RIGHT. * gcc.dg/graphite/id-pr47046.c: New. Added: trunk/gcc/testsuite/gcc.dg/graphite/id-pr47046.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-chrec.h
[Bug middle-end/47046] gcc.target/i386/sse4_1-movntdqa.c ICEs with -fgraphite-identity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47046 Sebastian Pop spop at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #4 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 18:53:47 UTC --- Fixed.
[Bug tree-optimization/48805] ICE in rename_uses, at sese.c:533 while compiling qutecom 2.2 with -fgraphite-identity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48805 Sebastian Pop spop at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #5 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 18:54:46 UTC --- Fixed.
[Bug middle-end/47653] [4.6/4.7 Regression] gcc.c-torture/execute/930614-2.c FAILs with -fstack-check=generic -fgraphite-identity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47653 Sebastian Pop spop at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #12 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 18:56:23 UTC --- Fixed.
[Bug target/49853] [x32] PIC doesn't work with external symbol
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49853 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added CC||ubizjak at gmail dot com --- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2011-07-26 19:29:01 UTC --- Another testcase: [hjl@gnu-6 ilp32-10]$ cat x.i typedef struct FILE FILE; int _fwalk(int (*)(FILE *)); int __sflush(FILE *); int fflush(FILE *fp) { return (_fwalk(__sflush)); } [hjl@gnu-6 ilp32-10]$ make /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -S -o x.s -mx32 -O2 -g -fPIC -dp x.i x.i: In function ‘fflush’: x.i:8:1: internal compiler error: in simplify_subreg, at simplify-rtx.c:5417 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. make: *** [x.s] Error 1 [hjl@gnu-6 ilp32-10]$
[Bug c/49820] Explicit check for integer negative after abs optimized away
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49820 --- Comment #13 from Agner Fog agner at agner dot org 2011-07-26 19:31:48 UTC --- My example does indeed give a warning when compiled with -Wstrict-overflow=2. Unfortunately, -Wall implies only -Wstrict-overflow=1 so I got no warning in the first place. I think the warning levels need to be adjusted so that we get the warning with -Wall because the consequences are no less serious than ignoring an overflow check with if(a+consta), which gives a warning with -Wstrict-overflow=1
[Bug target/49764] [avr-g++] Rejects attribute progmem
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49764 --- Comment #18 from _artem_ artemeas at gmail dot com 2011-07-26 19:34:13 UTC --- I've compiled gcc-avr from trunk and Arduino IDE stoped complaining about PROGMEM. I downgraded binutils-avr from 2.21 to 2.20 patched and now delay() function works as it should on arduino. Thank you guys. You can close that bug report. I'm hoping that gcc 4.7 will be released soon (so I don't have to compile it myself)
[Bug target/49853] [x32] PIC doesn't work with external symbol
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49853 --- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 19:34:47 UTC --- (In reply to comment #2) Another testcase: This is PR47372.
[Bug target/49853] [x32] PIC doesn't work with external symbol
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49853 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2011-07-26 19:37:09 UTC --- Fixed.
[Bug tree-optimization/46194] [4.5 Regression] gcc.dg/graphite/block-0.c FAILs with -ftree-parallelize-loops
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46194 Sebastian Pop spop at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|NEW AssignedTo|spop at gcc dot gnu.org |unassigned at gcc dot ||gnu.org --- Comment #18 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 19:38:41 UTC --- Unassigning: I won't backport this patch. So I guess we could just close it as wont_fix.
[Bug target/49856] New: ICE when compiling mktime.c (gnulib, embedded in libvirt)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49856 Summary: ICE when compiling mktime.c (gnulib, embedded in libvirt) Product: gcc Version: 4.4.6 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: t...@mirbsd.org Created attachment 24836 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24836 preprocessed source exhibiting the problem tg@zigo:~ $ m68k-linux-gnu-gcc -O2 -c y.i y.i: In function ‘ranged_convert’: y.i:632: internal compiler error: in m68k_sched_issue_rate, at config/m68k/m68k.c:5877 Please submit a full bug report, with preprocessed source if appropriate. tg@zigo:~ $ gdb --args /home/tg/Xg/gcc-4.4-4.4.6/build/gcc/cc1 -fpreprocessed y.i -m68020 -O2 -o y.s (gdb) b fancy_abort Breakpoint 1 at 0x4c1850: file ../../src/gcc/diagnostic.c, line 711. (gdb) frame 1 #1 0x00754f2d in m68k_sched_issue_rate () at ../../src/gcc/config/m68k/m68k.c:5877 5877 gcc_unreachable (); (gdb) list m68k_sched_issue_rate 5860} 5861 5862/* Return maximal number of insns that can be scheduled on a single cycle. */ 5863static int 5864m68k_sched_issue_rate (void) 5865{ 5866 switch (m68k_sched_cpu) 5867{ 5868case CPU_CFV1: 5869case CPU_CFV2: (gdb) 5870case CPU_CFV3: 5871 return 1; 5872 5873case CPU_CFV4: 5874 return 2; 5875 5876default: 5877 gcc_unreachable (); 5878 return 0; 5879} (gdb) print m68k_sched_cpu $1 = CPU_UNKNOWN
[Bug c++/49776] [C++0x]ICE in build_data_member_initialization, at cp/semantics.c:5499
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49776 --- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 2011-07-26 20:00:34 UTC --- Author: paolo Date: Tue Jul 26 20:00:31 2011 New Revision: 176809 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176809 Log: /cp 2011-07-26 Paolo Carlini paolo.carl...@oracle.com PR c++/49776 * typeck.c (cp_build_modify_expr): Check digest_init return value for error_mark_node. /testsuite 2011-07-26 Paolo Carlini paolo.carl...@oracle.com PR c++/49776 * g++.dg/cpp0x/constexpr-49776.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-49776.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog
[Bug c++/49776] [C++0x]ICE in build_data_member_initialization, at cp/semantics.c:5499
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49776 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-26 20:01:51 UTC --- Fixed.
[Bug target/49856] ICE when compiling mktime.c (gnulib, embedded in libvirt)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49856 --- Comment #1 from Thorsten Glaser tg at mirbsd dot org 2011-07-26 20:04:49 UTC --- Also applies to 4.6.1-4: root@ara5:~ # /usr/lib/m68k-linux-gnu/gcc/m68k-linux-gnu/4.6.1/cc1 -fpreprocessed y.i -m68020 -O2 -o y.s __strcspn_c1 __strcspn_c2 __strcspn_c3 __strspn_c1 __strspn_c2 __strspn_c3 __strpbrk_c2 __strpbrk_c3 __strtok_r_1c __strsep_1c __strsep_2c __strsep_3c leapyear isdst_differ ydhms_diff time_t_avg time_t_add_ok time_t_int_add_ok guess_time_tm ranged_convert mktime_internal rpl_mktime Analyzing compilation unit Performing interprocedural optimizations *free_lang_data visibility early_local_cleanups whole-program ipa-profile cp inline pure-const static-varAssembling functions: ranged_convert y.i: In function ‘ranged_convert’: y.i:632:1: internal compiler error: in m68k_sched_issue_rate, at config/m68k/m68k.c:6055 Please submit a full bug report,
[Bug target/43804] [4.5/4.6 regression] ICE in reload_cse_simplify_operands
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43804 --- Comment #26 from Thorsten Glaser tg at mirbsd dot org 2011-07-26 20:16:22 UTC --- Both gcc-4.4 and gcc-4.6 with that patch applied compile memtest.i properly.
[Bug tree-optimization/44303] [graphite] Segmentation fault within CLooG
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44303 --- Comment #5 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 20:19:03 UTC --- I will close this PR when the patches from Tobias will go on trunk: http://gcc.gnu.org/ml/gcc-patches/2011-07/msg01892.html This patch-set removes support for CLooG-PPL.
[Bug target/49856] ICE when compiling mktime.c (gnulib, embedded in libvirt)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49856 Mikael Pettersson mikpe at it dot uu.se changed: What|Removed |Added CC||mikpe at it dot uu.se --- Comment #2 from Mikael Pettersson mikpe at it dot uu.se 2011-07-26 20:24:33 UTC --- Dupe of PR47908. As a workaround, remove '#pragma GCC optimize (wrapv)' from the source code and compile with an explicit -fwrapv instead.
[Bug target/49857] New: Put constant switch-tables into flash
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49857 Summary: Put constant switch-tables into flash Product: gcc Version: 4.6.1 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: g...@gcc.gnu.org CC: eric.wedding...@atmel.com Target: avr Created attachment 24837 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24837 C source with constant switch statement For constant switches like int sw_2 (char x) { switch(x) { case '0': return -1; case '1': return 2; case '2': return 3; case '3': return 5; case '4': return 7; case '5': return 11; case '6': return 13; case '7': return 17; case '8': return 19; case '9': return 23; case 'a':return 29; case 'A':return 29; } return -1; } avr-gcc 4.6.1 generates a lookup table (-Os -mmcu=atmega8 -S -fverbose-asm) sw_2: subi r24,lo8(-(-49)) ; csui.0, cpi r24,lo8(49) ; csui.0, brsh .L3 ; , mov r30,r24 ; tmp50, csui.0 ldi r31,lo8(0) ; , subi r30,lo8(-(CSWTCH.1)) ; tmp50, sbci r31,hi8(-(CSWTCH.1)) ; tmp50, ld r24,Z ; tmp51, CSWTCH.1 clr r25 ; D.1929 sbrc r24,7 ; D.1929 com r25 ; D.1929 ret .L3: ldi r24,lo8(-1) ; D.1929, ldi r25,hi8(-1) ; D.1929, ret .sizesw_2, .-sw_2 .data .typeCSWTCH.1, @object .sizeCSWTCH.1, 49 CSWTCH.1: .byte2 .byte3 .byte5 .byte7 .byte11 .byte13 .byte17 .byte19 .byte23 .byte-1 .byte-1 .byte-1 ... CSWTCH.1 is put in .data (.rodata would not be better) so that the lookup table ends up in RAM. The table is constant and could go into flash memory, i.e. .progmem.data. === avr-gcc -v -Os -fverbose-asm -mmcu=atmega8 -W -Wall -S foo.c # dp -mmcu=atmega128 foo.c -save-temps -Os -c Using built-in specs. COLLECT_GCC=e:\WinAVR\4.6.1\bin\avr-gcc.exe COLLECT_LTO_WRAPPER=e:/winavr/4.6.1/bin/../libexec/gcc/avr/4.6.1/lto-wrapper.exe Target: avr Configured with: ../../gcc.gnu.org/gcc-4_6-branch/configure --target=avr --prefix=/local/gnu/install/gcc-4.6-mingw32 --host=i586-mingw32 --build=i686-linux-gnu --enable-languages=c,c++ --disable-nls --disable-shared --with-dwarf2 Thread model: single gcc version 4.6.1 20110620 (prerelease) (GCC) GNU C (GCC) version 4.6.1 20110620 (prerelease) (avr) compiled by GNU C version 3.3.1 (mingw special 20030804-1), GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=32702
[Bug target/49857] Put constant switch-tables into flash
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49857 Eric Weddington eric.weddington at atmel dot com changed: What|Removed |Added Severity|normal |enhancement
[Bug target/47908] attribute((optimize(2))) causes ICE in m68k_sched_issue_rate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47908 Andreas Schwab sch...@linux-m68k.org changed: What|Removed |Added CC||tg at mirbsd dot org --- Comment #5 from Andreas Schwab sch...@linux-m68k.org 2011-07-26 20:57:11 UTC --- *** Bug 49856 has been marked as a duplicate of this bug. ***
[Bug target/49856] ICE when compiling mktime.c (gnulib, embedded in libvirt)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49856 Andreas Schwab sch...@linux-m68k.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE --- Comment #3 from Andreas Schwab sch...@linux-m68k.org 2011-07-26 20:57:11 UTC --- . *** This bug has been marked as a duplicate of bug 47908 ***
[Bug fortran/49597] gfortran namelist read bug
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49597 Jerry DeLisle jvdelisle at gcc dot gnu.org changed: What|Removed |Added CC||jvdelisle at gcc dot ||gnu.org AssignedTo|unassigned at gcc dot |jvdelisle at gcc dot |gnu.org |gnu.org --- Comment #2 from Jerry DeLisle jvdelisle at gcc dot gnu.org 2011-07-26 20:59:04 UTC --- I will tke this one.
[Bug driver/49858] New: lost ability to use driver for external language support?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49858 Summary: lost ability to use driver for external language support? Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: driver AssignedTo: unassig...@gcc.gnu.org ReportedBy: big...@acm.org The nesC compiler at http://sourceforge.net/projects/nescc/ has historically used a host/target gcc driver to process its files by using an wrapper driver that invokes the target gcc with a -specs option defining a suffix-spec pair describing how to translate its source files. The documentation at http://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html suggests that this practice, as shown below, is a legitimate use of the driver: .nc: perl -S nesc-compile %{_*} %{m*} %{D*U*A*} %{H} %{I*} %{undef} %{trigraphs} %{i*} %{nostdinc} %{a*} %{g*} %{O*} %{W*} %{w} %{S} %{pedantic*} %{std*} %{ansi} %{traditional} %{v} %{p*} %{f*} %{!fsyntax-only:%{!fnesc-cfile=*:%{!_fnesc-cfile=*:-fnesc-tmpcfile=%g.c}} %{S:%W{o*}%{!o*:-o %b.s}}%{!S:%{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}}} %{fsyntax-only:-o %j} %{-param*} %i -_ASM %Y The change in commit 171307 rejects the options formerly allowed by this spec string: gcc: error: unrecognized command line option ‘-_fnesc-include=nesc_nx’ The wildcard spec string %{_*} no longer allows these options. Explicitly adding %{_fnesc-include=*} didn't work either. Is there a mechanism by which the driver can be informed of options that it should allow in this situation, given that the list of these options is not known at the time the driver is compiled?
[Bug tree-optimization/45450] [graphite] some programs do not pass the legality check
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45450 Sebastian Pop spop at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||spop at gcc dot gnu.org Resolution||INVALID --- Comment #1 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 21:07:33 UTC --- I went to investigate this bug, and I found out that inserting gcc_assert (graphite_legal_transform (scop)); is invalid: the legality function is not supposed to return true when the dependence analysis cannot be performed at compile time. On the particular case of id-1.c, we have this code: lambda_vector_add_mc (lambda_vector vec1, int const1, lambda_vector vec2, int const2, lambda_vector vec3, int size) { int i; for (i = 0; i size; i++) vec3[i] = const1 * vec1[i] + const2 * vec2[i]; } and the assert would fail because the dependence analysis returns a relation classified as unknown because it is not possible to prove that vec1 and vec3 do not alias: if (!(pdr_read_p (pdr1) pdr_read_p (pdr2)) PDR_BASE_OBJECT_SET (pdr1) != PDR_BASE_OBJECT_SET (pdr2) may_alias) PDDR_KIND (res) = unknown_dependence; I investigated the other fails that I can see today on trunk: FAIL: gcc.dg/graphite/scop-matmult.c (internal compiler error) FAIL: gcc.dg/graphite/scop-mvt.c (internal compiler error) FAIL: gcc.dg/graphite/id-1.c (internal compiler error) FAIL: gcc.dg/graphite/run-id-pr42644.c (internal compiler error) FAIL: gcc.dg/graphite/interchange-14.c (internal compiler error) FAIL: gcc.dg/graphite/interchange-15.c (internal compiler error) FAIL: gcc.dg/graphite/interchange-mvt.c (internal compiler error) FAIL: gcc.dg/graphite/pr31183.c (internal compiler error) FAIL: gcc.dg/graphite/pr38510.c (internal compiler error) FAIL: gcc.dg/graphite/pr38786.c (internal compiler error) FAIL: gcc.dg/graphite/pr42211.c (internal compiler error) FAIL: libgomp.graphite/pr41118.c (internal compiler error) FAIL: gfortran.dg/graphite/pr29581.f90 -O0 (internal compiler error) FAIL: gfortran.dg/graphite/pr29832.f90 -O0 (internal compiler error) FAIL: gfortran.dg/graphite/pr42334-1.f -O (internal compiler error) FAIL: gfortran.dg/graphite/pr42393-1.f90 -O (internal compiler error) FAIL: gfortran.dg/graphite/pr42393.f90 -O (internal compiler error) when run in gdb, they all break on the statement before ICE-ing: PDDR_KIND (res) = unknown_dependence; I am closing this bug as invalid.
[Bug tree-optimization/45313] [graphite] interchange-7.c is miscompiled
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45313 Sebastian Pop spop at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #2 from Sebastian Pop spop at gcc dot gnu.org 2011-07-26 21:20:17 UTC --- Works on trunk.
[Bug target/47372] [x32] internal compiler error: in simplify_subreg, at simplify-rtx.c:5222
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47372 --- Comment #6 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-07-26 21:44:01 UTC --- Author: hjl Date: Tue Jul 26 21:43:57 2011 New Revision: 176812 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176812 Log: Call simplify_gen_subreg for PIC with mode of x. 2011-07-26 H.J. Lu hongjiu...@intel.com PR target/47372 * config/i386/i386.c (ix86_delegitimize_address): Call simplify_gen_subreg for PIC with mode of x only if modes of x and orig_x are different. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c
[Bug target/47369] [x32] internal compiler error: in extract_insn, at recog.c:2109
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47369 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Target||x32 Status|UNCONFIRMED |RESOLVED Version|4.6.0 |4.7.0 Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 21:51:27 UTC --- Fixed.
[Bug target/47537] [x32] internal compiler error: in copy_to_mode_reg, at explow.c:635
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47537 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Target||x32 Status|UNCONFIRMED |RESOLVED URL||http://gcc.gnu.org/ml/gcc-p ||atches/2011-07/msg01469.htm ||l Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 22:02:57 UTC --- Fixed by: Author: hjl Date: Fri Jul 22 00:56:10 2011 New Revision: 176612 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176612 Log: Convert to Pmode if needed and use force_reg after convert. 2011-07-21 H.J. Lu hongjiu...@intel.com * config/i386/i386.c (ix86_expand_move): Convert to Pmode if needed and use force_reg after convert. (ix86_expand_call): Likewise. (ix86_expand_special_args_builtin): Likewise. (ix86_expand_builtin): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c
[Bug target/47926] [x32] nested function pointer doesn't work
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47926 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Target||x32 Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 22:12:34 UTC --- Fixed.
[Bug driver/49858] lost ability to use driver for external language support?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49858 --- Comment #1 from joseph at codesourcery dot com joseph at codesourcery dot com 2011-07-26 23:31:27 UTC --- On Tue, 26 Jul 2011, bigotp at acm dot org wrote: Is there a mechanism by which the driver can be informed of options that it should allow in this situation, given that the list of these options is not known at the time the driver is compiled? No. By design there is now a structured notion of options shared by the driver and cc1 and a single mechanism for option parsing, that consistently rejects unknown options rather than having them sometimes only inconsistently rejected depending on which phases of compilation are run, and that is intended in future to support multilib selection based on logical option state rather than option text, and maybe eventually disallowing options without --help text. It was a mistake that specs were ever documented in the user manual; they should be considered a purely internal interface between different parts of GCC. It is not expected that you can drop in support for new languages without at least part of that support being present when GCC is built (GNU/Linux distributors may include the minimal set of files defining specs and options for languages such as D and Pascal when they build their main GCC packages, for example, so that the driver then supports those languages even though the language compilers themselves are built separately). (I do not rule out that the plugin mechanism could be extended in future to allow driver plugins, that might modify the unknown option handling, but the change away from allowing arbitrary options that just happen to be matched by some spec, to having a structured notion allowing a meaningful enumeration of all supported options and their associated properties, is deliberate. It would also be reasonable to provide a way to export the properties of GCC's options for use in external wrappers to know what options take arguments. But processing options unknown to GCC is outside the intended uses of the driver at present, although you may be able to find a hack where your wrapper hides them within options known to GCC that take an argument but where the driver doesn't validate that argument in any way; -fplugin-arg-* might be the most sensible option to use.)
[Bug driver/49858] lost ability to use driver for external language support?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49858 --- Comment #2 from Peter A. Bigot bigotp at acm dot org 2011-07-27 00:38:16 UTC --- On Tue, Jul 26, 2011 at 6:31 PM, joseph at codesourcery dot com gcc-bugzi...@gcc.gnu.org wrote: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49858 --- Comment #1 from joseph at codesourcery dot com joseph at codesourcery dot com 2011-07-26 23:31:27 UTC --- On Tue, 26 Jul 2011, bigotp at acm dot org wrote: Is there a mechanism by which the driver can be informed of options that it should allow in this situation, given that the list of these options is not known at the time the driver is compiled? No. By design there is now a structured notion of options shared by the driver and cc1 and a single mechanism for option parsing, that consistently rejects unknown options rather than having them sometimes only inconsistently rejected depending on which phases of compilation are run, and that is intended in future to support multilib selection based on logical option state rather than option text, and maybe eventually disallowing options without --help text. It was a mistake that specs were ever documented in the user manual; they should be considered a purely internal interface between different parts of GCC. It is not expected that you can drop in support for new languages without at least part of that support being present when GCC is built (GNU/Linux distributors may include the minimal set of files defining specs and options for languages such as D and Pascal when they build their main GCC packages, for example, so that the driver then supports those languages even though the language compilers themselves are built separately). On one hand, I think a regression like this warrants discussion, as this removes a feature that has been supported by gcc (and arguably documented as supported) for many years. Worst, the people who depend on it are folks who are unlikely to be involved in gcc development and will not be aware of the change until after 4.7.0 comes out and their systems have to be rearchitected to work with new vendor-provided gcc installations. I only found it now because I'm updating an out-of-tree back-end (TI msp430) and most of my practical applications depend on nesC. On the other hand, I'm sympathetic to the position that specs are a matter of internal implementation feature and that the change is reasonable. If that's going to be the resolution, though, the spec files material should be moved to the internals documentation. Peter (I do not rule out that the plugin mechanism could be extended in future to allow driver plugins, that might modify the unknown option handling, but the change away from allowing arbitrary options that just happen to be matched by some spec, to having a structured notion allowing a meaningful enumeration of all supported options and their associated properties, is deliberate. It would also be reasonable to provide a way to export the properties of GCC's options for use in external wrappers to know what options take arguments. But processing options unknown to GCC is outside the intended uses of the driver at present, although you may be able to find a hack where your wrapper hides them within options known to GCC that take an argument but where the driver doesn't validate that argument in any way; -fplugin-arg-* might be the most sensible option to use.) -- Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You reported the bug.
[Bug c++/49808] GCC adds an address-of somewhere!
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49808 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011.07.27 00:51:13 CC||jason at gcc dot gnu.org AssignedTo|unassigned at gcc dot |jason at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1
[Bug c/49859] New: gcc could warn about statements between switch and first case
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859 Summary: gcc could warn about statements between switch and first case Product: gcc Version: 4.5.2 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: wkos...@gmail.com Created attachment 24838 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24838 Sample source code. wkoszek@wkoszek:~/p/switch$ cat switch.c #include stdio.h int main(int argc, char **argv) { inttype; type = 123; switch (type) { printf(SOMETHING\n); case 1: printf(1\n); break; case 2: printf(2\n); break; default: printf(default\n); return 1; } return 0; } wkoszek@wkoszek:~/p/switch$ gcc -pedantic -Wall -Wunused -Wunreachable-code -c switch.c wkoszek@wkoszek:~/p/switch$ clang -pedantic -Wall -Wunused -Wunreachable-code -c switch.c switch.c:10:3: warning: will never be executed [-Wunreachable-code] printf(SOMETHING\n); ^ 1 warning generated. wkoszek@wkoszek:~/p/switch$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/i386-linux-gnu --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
[Bug c/49859] gcc could warn about statements between switch and first case
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859 --- Comment #1 from Wojciech Koszek wkoszek at gmail dot com 2011-07-27 01:16:25 UTC --- I'd expect GCC to warn me about this case, since it's very likely an error.
[Bug target/49764] [avr-g++] Rejects attribute progmem
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49764 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Known to work||4.6.2, 4.7.0 Resolution||FIXED --- Comment #19 from Jonathan Wakely redi at gcc dot gnu.org 2011-07-27 01:18:20 UTC --- caused by, and fixed by, changes for PR 44643
[Bug c/49859] gcc could warn about statements between switch and first case
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859 --- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-27 01:22:05 UTC --- -Wunreachable-code support was removed because it dependent on optimization and caused some false positives (well they are not false positives in the sense they were unreachable code but rather the code compiled with some optimization was a truly unreachable but only with inlining and such). Also does clang warn about Duff's loops?
[Bug c/49859] gcc could warn about statements between switch and first case
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859 --- Comment #3 from Wojciech Koszek wkoszek at gmail dot com 2011-07-27 01:28:28 UTC --- Looks like GCC and Clang both agree on Duff's stuff: wkoszek@wkoszek:~/p/duff$ cat duff.c #include stdio.h void duff(to, from, count) register short *to, *from; register int count; { register int n=(count+7)/8; switch(count%8){ case 0: do{ *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; }while(--n0); } } int main(int argc, char **argv) { short*dummy = NULL; (void)argc; (void)argv; duff(dummy, dummy, 123); return 0; } wkoszek@wkoszek:~/p/duff$ gcc -Wall -pedantic -Wunreachable-code -c duff.c wkoszek@wkoszek:~/p/duff$ clang -Wall -pedantic -Wunreachable-code -c duff.c
[Bug c/48388] libgcc compilation causes a segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48388 Daniel E. Platt danp57 at optonline dot net changed: What|Removed |Added CC||danp57 at optonline dot net --- Comment #2 from Daniel E. Platt danp57 at optonline dot net 2011-07-27 03:20:50 UTC --- (In reply to comment #1) llvm bug *** This bug has been marked as a duplicate of bug 48301 *** I have the same bug, shows up on an macbook and an imac that I recently installed OS X 10.7 for testing.
[Bug target/47446] [x32] .quad instead of .long is used for address
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47446 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|RESOLVED|REOPENED Last reconfirmed||2011.07.27 04:19:39 Resolution|FIXED | Ever Confirmed|0 |1 --- Comment #7 from H.J. Lu hjl.tools at gmail dot com 2011-07-27 04:19:39 UTC --- Testcase in comment #4 isn't fixed yet.
[Bug target/47446] [x32] .quad instead of .long is used for address
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47446 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||FIXED --- Comment #8 from H.J. Lu hjl.tools at gmail dot com 2011-07-27 04:24:20 UTC --- Fixed.
[Bug target/49860] New: [x32] Error: cannot represent relocation type BFD_RELOC_64 in x32 mode
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49860 Summary: [x32] Error: cannot represent relocation type BFD_RELOC_64 in x32 mode Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: ubiz...@gmail.com [hjl@gnu-6 ilp32-30]$ cat x.i extern char inbuf[]; extern char outbuf[]; extern unsigned insize; extern unsigned inptr; static int max_len; static int peek_bits; void build_tree() { int len; char *prefixp; max_len = inbuf[inptr++]; peek_bits = ((max_len) = (12) ? (max_len) : (12)); prefixp = outbuf[1peek_bits]; for (len = 1; len = peek_bits; len++) { } while (prefixp outbuf) *--prefixp = 0; } [hjl@gnu-6 ilp32-30]$ make /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -S -o x.s -mx32 -funroll-all-loops -O3 -dp x.i /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -mx32 -funroll-all-loops -O3 -dp -c -o x.o x.s x.s: Assembler messages: x.s:25: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode make: *** [x.o] Error 1 [hjl@gnu-6 ilp32-30]
[Bug target/49547] LZCNT should be enabled only if ABM or LZCNT bits are set
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49547 --- Comment #2 from Yukhin Kirill kirill.yukhin at intel dot com 2011-07-27 05:04:04 UTC --- Patch prepared. Discussion is here: http://gcc.gnu.org/ml/gcc-patches/2011-07/msg02266.html
[Bug c/49861] New: Cross compile for mingw32, All executable file can not start up, lead crash!
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49861 Summary: Cross compile for mingw32, All executable file can not start up, lead crash! Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: loa...@gmail.com Created attachment 24839 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24839 crash executable file I am testing GCC 4.4.6 and 4.5.3, both them works well for mingw32 if use cross build. But when use 4.6.0 or 4.6.1, will lead start up crash. My configure: ../../src/gcc-$sver/configure \ --prefix=/usr \ --build=i686-linux-gnu \ --host=i686-linux-gnu \ --target=$host \ --enable-languages=c \ --enable-threads \ --disable-shared \ --disable-lto \ --disable-plugin \ --disable-libssp \ --disable-libgomp \ --disable-nls \ --disable-sjlj-exceptions \ --with-dwarf2 \ --with-pkgversion='qp-MinGW32' \ --with-bugurl=http://qp-gcc.googlecode.com code: int main() { return 0; }
[Bug c/49861] Cross compile for mingw32, All executable file can not start up, lead crash!
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49861 --- Comment #1 from Yuchen Deng loaden at gmail dot com 2011-07-27 05:51:01 UTC --- Created attachment 24840 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24840 Full build script host=i686-mingw32