[Bug target/16532] Inefficient jump to epilogue
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-09-28 06:26 --- Subject: Bug 16532 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2004-09-28 06:26:08 Modified files: gcc: ChangeLog gcc/config/sparc: sparc-protos.h sparc.c sparc.h sparc.md Log message: PR target/16532 * config/sparc/sparc.c (struct machine_function): New field 'leaf_function_p' and 'prologue_data_valid_p'. (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro to conveniently access the above fields. (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete. (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead of the generic flavor 'current_function_uses_only_leaf_regs'. (eligible_for_sibcall_delay): Likewise. (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set 'sparc_prologue_data_valid_p'. Use 'sparc_leaf_function_p'. (sparc_asm_function_prologue): Add sanity check for the assumption made in 'sparc_expand_prologue'. Use 'sparc_leaf_function_p'. (sparc_can_use_return_insn_p): New function. (sparc_expand_epilogue): Use 'sparc_leaf_function_p'. (output_restore): Likewise. (output_sibcall): Likewise. (sparc_output_mi_thunk): Likewise. * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare. * config/sparc/sparc.md (return): New expander. * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.5651r2=2.5652 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc-protos.h.diff?cvsroot=gccr1=1.48r2=1.49 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.c.diff?cvsroot=gccr1=1.335r2=1.336 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.h.diff?cvsroot=gccr1=1.267r2=1.268 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.md.diff?cvsroot=gccr1=1.215r2=1.216 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532
[Bug target/16532] Inefficient jump to epilogue
--- Additional Comments From ebotcazou at gcc dot gnu dot org 2004-09-28 06:34 --- Here's the code generated by mainline as of today at -O2 -mcpu=ultrasparc: FirstOne: save%sp, -112, %sp sethi %hi(64512), %o5 mov 0, %o4 sllx%i0, 32, %g1 srl %i1, 0, %i1 or %i1, %g1, %g1 srlx%g1, 32, %g1 srlx%g1, 32, %i4 mov %g1, %i5 or %o5, 1023, %o5 and %i4, %o4, %i4 sllx%i0, 32, %g1 srl %i1, 0, %i1 or %i1, %g1, %g1 srlx%g1, 48, %g1 srlx%g1, 32, %i2 mov %g1, %i3 orcc%i2, %i3, %g0 be,pt %icc, .LL2 and%i5, %o5, %i5 sethi %hi(first_one), %g1 or %g1, %lo(first_one), %g1 return %i7+8 ldub [%g1+%o3], %o0 .LL2: orcc%i4, %i5, %g0 be,pt %icc, .LL5 sethi %hi(64512), %g1 sethi %hi(first_one), %g1 or %g1, %lo(first_one), %g1 ldub[%g1+%i5], %i5 return %i7+8 add%o5, 16, %o0 .LL5: or %g1, 1023, %g1 and %i1, %g1, %i3 sllx%i0, 32, %g1 srl %i1, 0, %i1 or %i1, %g1, %g1 srlx%g1, 16, %g1 srlx%g1, 32, %i4 mov %g1, %i5 and %i4, %o4, %i0 and %i5, %o5, %i1 orcc%i0, %i1, %g0 be,pt %icc, .LL7 sethi %hi(first_one), %g1 or %g1, %lo(first_one), %g1 ldub[%g1+%i1], %i5 return %i7+8 add%o5, 32, %o0 .LL7: or %g1, %lo(first_one), %g1 ldub[%g1+%i3], %i5 return %i7+8 add%o5, 48, %o0 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532
[Bug target/16532] Inefficient jump to epilogue
--- Additional Comments From ebotcazou at gcc dot gnu dot org 2004-09-28 06:57 --- It appears that we also made some progress for the second testcase. We now generate at -O2 -mcpu=ultrasparc: FirstOne: add %sp, -120, %sp std %o0, [%sp+96] sllx%o0, 32, %o0 srl %o1, 0, %o1 or %o1, %o0, %o0 srlx%o0, 48, %o1 srlx%o1, 32, %o0 orcc%o0, %o1, %g0 be,pt %icc, .LL2 nop sethi %hi(first_one), %g1 sub %sp, -120, %sp or %g1, %lo(first_one), %g1 jmp %o7+8 ldub [%g1+%o1], %o0 so the 'save' instruction is not emitted anymore. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532
[Bug target/16532] Inefficient jump to epilogue
--- Additional Comments From ebotcazou at gcc dot gnu dot org 2004-09-28 07:00 --- Oops... I forgot the last chunk: FirstOne: add %sp, -120, %sp std %o0, [%sp+96] sllx%o0, 32, %o0 srl %o1, 0, %o1 or %o1, %o0, %o0 srlx%o0, 48, %o1 srlx%o1, 32, %o0 orcc%o0, %o1, %g0 be,pt %icc, .LL2 nop sethi %hi(first_one), %g1 sub %sp, -120, %sp or %g1, %lo(first_one), %g1 jmp %o7+8 ldub [%g1+%o1], %o0 .LL2: ld [%sp+96], %o0 jmp %o7+8 sub%sp, -120, %sp -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532
[Bug target/16532] Inefficient jump to epilogue
--- Additional Comments From ebotcazou at gcc dot gnu dot org 2004-09-28 07:14 --- The remaining oddities, like srl %o0, 16, %o5 mov 0, %o4 orcc%o4, %o5, %g0 in the V8 code or srlx%o0, 48, %o1 srlx%o1, 32, %o0 orcc%o0, %o1, %g0 in the V9 code are related to the suboptimal model used for 'long long' arithmetics on SPARC 32-bit. The code is better on SPARC 64-bit: FirstOne: add %sp, -208, %sp stx %o0, [%sp+2231] srlx%o0, 48, %o0 brz,pt %o0, .LL2 sethi %lm(first_one), %g4 sethi %hh(first_one), %g1 or %g1, %hm(first_one), %g1 sub %sp, -208, %sp sllx%g1, 32, %g1 add %g1, %g4, %g1 or %g1, %lo(first_one), %g1 ldub[%g1+%o0], %o0 jmp %o7+8 sra%o0, 0, %o0 .LL2: lduw[%sp+2231], %o0 sub %sp, -208, %sp jmp %o7+8 sra%o0, 0, %o0 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532
[Bug target/16532] Inefficient jump to epilogue
--- Additional Comments From ebotcazou at gcc dot gnu dot org 2004-09-28 07:17 --- Patch applied (see comment #8). -- What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532
[Bug target/16532] Inefficient jump to epilogue
-- What|Removed |Added Target Milestone|--- |4.0.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532
multidimensional variable sized array C++
Hello, I dont know if this code is supposed to compile, but gcc 3.3.1 and gcc 3.3.3 on SuSE 9.0 and SuSE 9.0 stops with an internal compiler error: class setS { public: setS( short Ni, short Nj, short Nk ) { unsigned char S[Ni][Nj][Nk]; for( short i=0; iNi; ++i ) for( short j=0; jNj; ++j ) for( short k=0; kNk; ++k ) S[i][j][k] = '1'; return; }; protected: private: }; int main() { short I=32; short J=32; short K=32; setS( I, J, K ); return(0);
[Bug tree-optimization/15678] [4.0 Regression] Compilation time increased by 10-20%
-- What|Removed |Added BugsThisDependsOn||17707 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15678
[Bug tree-optimization/17707] New: [4.0 Regression] O(N^2) in cgraph_reset_static_var_maps
This testcase (from bug 15678) shows quadratic time in cgraph_reset_static_var_maps: #define F0(a) void a(){} #define F1(a) F0(a##0) F0(a##1) F0(a##2) F0(a##3) F0(a##4) F0(a##5) F0(a##6) #define F2(a) F1(a##0) F1(a##1) F1(a##2) F1(a##3) F1(a##4) F1(a##5) F1(a##6) #define F3(a) F2(a##0) F2(a##1) F2(a##2) F2(a##3) F2(a##4) F2(a##5) F2(a##6) #define F4(a) F3(a##0) F3(a##1) F3(a##2) F3(a##3) F3(a##4) F3(a##5) F3(a##6) #define F5(a) F4(a##0)/*F4(a##1) F4(a##2) F3(a##3) F3(a##4) F3(a##5) F3(a##6)*/ F5(f) -- Summary: [4.0 Regression] O(N^2) in cgraph_reset_static_var_maps Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: compile-time-hog Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: belyshev at lubercy dot com CC: gcc-bugs at gcc dot gnu dot org OtherBugsDependingO 15678 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17707
[Bug middle-end/17603] [4.0 Regression] Cpowf and cpowl builtins broken
--- Additional Comments From pcarlini at suse dot de 2004-09-28 08:07 --- Andrew, we all know that ia64 is OK (see Comment #2): x86_64 and powerpc64 are *broken*, no news :( -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17603
[Bug fortran/17708] New: gfortran problem with goto inside loop
Here is a simple example program test do 10 i=1,3 if(i == 2) goto 10 write(*,*) ' loop with i =',i 10 enddo end where the loop stops at the second pass (i=2). Replacing the goto by cycle cures the problem (but this breaks compatibility with old g77 codes) program test do 10 i=1,3 if(i == 2) cycle write(*,*) ' loop with i =',i 10 enddo end I've used the gfortran version as of today (28 sep), on gcc 3.2.2 -- Summary: gfortran problem with goto inside loop Product: gcc Version: unknown Status: UNCONFIRMED Severity: critical Priority: P2 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mimo2 at free dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17708
[Bug libstdc++/16612] empty basic_strings can't live in shared memory
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-09-28 08:58 --- Subject: Bug 16612 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2004-09-28 08:58:36 Modified files: libstdc++-v3 : ChangeLog README acconfig.h acinclude.m4 config.h.in configure configure.ac libstdc++-v3/docs/html: configopts.html libstdc++-v3/include/bits: basic_string.h basic_string.tcc Added files: libstdc++-v3/testsuite/21_strings/basic_string/element_access/char: empty.cc libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t: empty.cc libstdc++-v3/testsuite/21_strings/basic_string/operations/char: 1.cc libstdc++-v3/testsuite/21_strings/basic_string/operations/wchar_t: 1.cc Log message: 2004-09-28 Paolo Carlini [EMAIL PROTECTED] PR libstdc++/16612 * include/bits/basic_string.h (_M_dispose, _M_refcopy, basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined, don't deal with _S_empty_rep. * include/bits/basic_string.tcc (_S_construct, _M_destroy, _M_leak_hard, _M_mutate): Likewise. * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New. * acconfig.h: Add corresponding undef. * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING. * docs/html/configopts.html: Document --enable-fully-dynamic-string. * configure: Regenerate. * config.h.in: Likewise. 2004-09-28 Benjamin Kosnik [EMAIL PROTECTED] Paolo Carlini [EMAIL PROTECTED] * testsuite/21_strings/basic_string/operations/char/1.cc: New. * testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New. * testsuite/21_strings/basic_string/element_access/char/empty.cc: New. * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc: New. 2004-09-28 Paolo Carlini [EMAIL PROTECTED] * README: Remove obsolete entry about include/c_shadow. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gccr1=1.2672r2=1.2673 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/README.diff?cvsroot=gccr1=1.16r2=1.17 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acconfig.h.diff?cvsroot=gccr1=1.42r2=1.43 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acinclude.m4.diff?cvsroot=gccr1=1.296r2=1.297 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config.h.in.diff?cvsroot=gccr1=1.83r2=1.84 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gccr1=1.406r2=1.407 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.ac.diff?cvsroot=gccr1=1.25r2=1.26 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/docs/html/configopts.html.diff?cvsroot=gccr1=1.37r2=1.38 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/basic_string.h.diff?cvsroot=gccr1=1.62r2=1.63 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/basic_string.tcc.diff?cvsroot=gccr1=1.71r2=1.72 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/empty.cc.diff?cvsroot=gccr1=NONEr2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc.diff?cvsroot=gccr1=NONEr2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/21_strings/basic_string/operations/char/1.cc.diff?cvsroot=gccr1=NONEr2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/21_strings/basic_string/operations/wchar_t/1.cc.diff?cvsroot=gccr1=NONEr2=1.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16612
internal compiler error with --prefetch-loop-arrays
Hi, Comiling the following code snippet with gcc -v -save-temps -Wall -O2 -march=i486 -m3dnow -fprefetch-loop-arrays -o gcc-bug.o gcc-bug.c causes gcc to abort with an internal compiler error: - SNIP - Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/specs Configured with: /var/tmp/portage/gcc-3.3.4-r1/work/gcc-3.3.4/configure --prefix=/usr --bindi r=/usr/i686-pc-linux-gnu/gcc-bin/3.3 --includedir=/usr/lib/gcc-lib/i686-pc-l inux-gnu/3.3.4/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3 - -mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/man --infodir=/usr/share/g cc-data/i686-pc-linux-gnu/3.3/info --enable-shared --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --with-system-zlib --enable-languages=c,c++ --ena ble-threads=posix --enable-long-long --disable-checking --disable-libunwind- exceptions --enable-cstdio=stdio --enable-version-specific-runtime-libs --wi th-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/g++-v3 - -with-local-prefix=/usr/local --enable-shared --enable-nls --without-include d-gettext --disable-multilib --enable-__cxa_atexit --enable-clocale=generic Thread model: posix gcc version 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6) /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/cc1 -E -quiet -v -D__GNUC__=3 -D__G NUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=4 gcc-bug.c -march=i486 -m3dnow -Wall -fprefetch-loop-arrays -O2 gcc-bug.i ignoring nonexistent directory /usr/local/include ignoring nonexistent directory /usr/i686-pc-linux-gnu/include #include ... search starts here: #include ... search starts here: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include /usr/include End of search list. /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/cc1 -fpreprocessed gcc-bug.i -quiet -dumpbase gcc-bug.c -march=i486 -m3dnow -auxbase gcc-bug -O2 -Wall -version -fprefetch-loop-arrays -o gcc-bug.s GNU C version 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6) (i686-pc-linux-gnu) compiled by GNU C version 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6). GGC heuristics: --param ggc-min-expand=60 --param ggc-min-heapsize=56460 gcc-bug.c: In function `main': gcc-bug.c:14: internal compiler error: Floating point exception Please submit a full bug report, with preprocessed source if appropriate. See URL:http://bugs.gentoo.org/ for instructions. Preprocessed source stored into /tmp/ccvFaBQH.out file, please attach this to your bugreport. - SNIP END - The code was (gcc-bug.i won't differ much): - SNIP - /** * Compile with: gcc -Wall -O2 -march=i486 -m3dnow -fprefetch-loop-arrays -o gcc-bug.o gcc-bug.c */ int main(int argc, char **argv) { int *table; for (;;) *table++ = 10; return 0; } - SNIP END - This only happens with the above combination of flags (important is the option --prefetch-loop-arrays). You can also use i586 or c3 or O3 instead of O2. The code provided here can be found in a more complex way in some other software packages (e.g. lame) which caused this error originally. Greetings Philipp Hasse
[Bug java/17691] error on valid java code from freenet
--- Additional Comments From ruben at ugr dot es 2004-09-28 09:10 --- The workaround does not work when in an inner class. This was the original problem. cat a.java class A { int x() { return 0; } } class B extends A { int x(){ return 1; } class C { int y(){ return B.super.x(); } } } javac a.java #no error gcj a.java a.java:13: error: 'class' or 'this' expected. return B.super.x(); ^ 1 error -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17691
[Bug java/17691] error on valid java code from freenet
--- Additional Comments From ruben at ugr dot es 2004-09-28 09:13 --- (In reply to comment #4) This might be a completely unrelated bug; at least the error message is different. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17691
[Bug fortran/17709] New: NULL I/O list and Format error.
Test case: program main integer io_unit character*80 str io_unit = 10 open (unit=io_unit,file='in',status='old',form='formatted') read (io_unit,'(A)') str read (io_unit,'()') read (io_unit,'(A)') str print *,str, this should be the third line close(unit=io_unit,status='keep') end and the file named in: first line: aaa second line:bbb third line: ccc The second read statment does not eat the second line. The output is: second line:bbb this should be the third line But if we remove the first read statement, the result is correct. IMHO this is related with null i/o list and fmt_null. This is extracted from 191.fma3d. -- Summary: NULL I/O list and Format error. Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: wf_cs at yahoo dot com CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i686-pc-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17709
[Bug libstdc++/16612] [3.4 only] empty basic_strings can't live in shared memory
-- What|Removed |Added Summary|empty basic_strings can't |[3.4 only] empty |live in shared memory |basic_strings can't live in ||shared memory Target Milestone|--- |3.4.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16612
[Bug fortran/17709] NULL I/O list and Format error.
-- What|Removed |Added OtherBugsDependingO||15502 nThis|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17709
[Bug tree-optimization/17679] [4.0 Regression] Aliasing problem with ivopts
--- Additional Comments From rakdver at gcc dot gnu dot org 2004-09-28 09:34 --- Patch: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02849.html -- What|Removed |Added Keywords||patch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17679
[Bug libfortran/17709] NULL I/O list and Format error.
-- What|Removed |Added Component|fortran |libfortran http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17709
[Bug tree-optimization/17707] [4.0 Regression] O(N^2) in cgraph_reset_static_var_maps
--- Additional Comments From belyshev at lubercy dot com 2004-09-28 09:43 --- (In reply to comment #0) #define F5(a) F4(a##0)/*F4(a##1) F4(a##2) F3(a##3) F3(a##4) F3(a##5) F3(a##6)*/ ^^ ^^ ^^ ^^ these should be F4 -- What|Removed |Added Target Milestone|--- |4.0.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17707
[Bug libstdc++/17664] Crash in std::map when using _GLIBCXX_DEBUG with multithreading
--- Additional Comments From pcarlini at suse dot de 2004-09-28 09:59 --- Hi. I agree that something, somewhere, seems fishy in debug mode vs MT: we'll see... However, your testcase involves ++iter *not* iter++ ;) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17664
[Bug tree-optimization/17697] [4.0 Regression] ICE: Statement marked for throw, but doesn't - verify_stmts failed
--- Additional Comments From jakub at gcc dot gnu dot org 2004-09-28 10:31 --- There seems to be multiple bugs here. The first one I see is in cp/decl.c (duplicate_decls). extern C { extern int strcmp (const char *s, const char *t) throw () __attribute__ ((pure)); } duplicate_decls is called here on the new strcmp decl and olddecl being the builtin strcmp decl. /* Whether or not the builtin can throw exceptions has no bearing on this declarator. */ TREE_NOTHROW (olddecl) = 0; clears NOTHROW flag on olddecl (although it has TYPE_NOTHROW_P (TREE_TYPE (olddecl))), supposedly so that newdecl's TREE_NOTHROW flag is not influenced by that. Later on in that routine, the non-tree_common bits of newdecl are copied over the olddecl bits, but TREE_NOTHROW flag is not copied from newdecl (where it is set to 1) to olddecl. But the function returns olddecl and that's the decl that is being used. So we have a TYPE_NOTHROW_P (TREE_TYPE (fn)) function with !TREE_NOTHROW (fn). Second bug is that execute_fold_all_builtins doesn't call maybe_clean_eh_stmt and tree_purge_dead_eh_edges. Will attach the patch for that. Unfortunately, with that I get pr17697-2.C: In function `int foo(char*)': pr17697-2.C:23: error: dominator of 2 status unknown pr17697-2.C:23: internal compiler error: in verify_dominators, at dominance.c:857 -- What|Removed |Added CC||jason at redhat dot com, ||mark at codesourcery dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17697
[Bug c++/14534] Unrecognizing static function as a template parameter when its return value is also templated
--- Additional Comments From reichelt at gcc dot gnu dot org 2004-09-28 11:09 --- Fixed by Mark's patch for PR 17585: http://gcc.gnu.org/ml/gcc-cvs/2004-09/msg01289.html -- What|Removed |Added Status|NEW |RESOLVED Known to fail|2.95.3 3.2.3 3.3.3 3.4.0 4.0|2.95.3 3.2.3 3.3.3 3.4.0 Known to work||3.4.3 4.0.0 Resolution||FIXED Target Milestone|--- |3.4.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14534
[Bug fortran/17708] gfortran problem with goto inside loop
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-28 11:35 --- Confirmed. -- What|Removed |Added Severity|critical|normal Status|UNCONFIRMED |NEW Ever Confirmed||1 Keywords||wrong-code Last reconfirmed|-00-00 00:00:00 |2004-09-28 11:35:10 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17708
[Bug tree-optimization/17707] [4.0 Regression] O(N^2) in cgraph_reset_static_var_maps
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-28 11:37 --- Confirmed, I think I know where the problem is, I will look into it later today. -- What|Removed |Added CC||pinskia at gcc dot gnu dot ||org Status|UNCONFIRMED |NEW Ever Confirmed||1 Last reconfirmed|-00-00 00:00:00 |2004-09-28 11:37:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17707
[Bug tree-optimization/17679] [4.0 Regression] Aliasing problem with ivopts
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-28 11:37 --- Confirmed. -- What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed||1 Last reconfirmed|-00-00 00:00:00 |2004-09-28 11:37:15 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17679
[Bug libfortran/17709] NULL I/O list and Format error.
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-28 11:40 --- Confirmed. -- What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed||1 Last reconfirmed|-00-00 00:00:00 |2004-09-28 11:40:33 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17709
[Bug tree-optimization/17531] [4.0 Regression] [ivopts] ICE compiling gzip deflate.c
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-28 11:43 --- The patch was reported to fix the ICE in gzip. -- What|Removed |Added Status|WAITING |NEW Last reconfirmed|2004-09-17 03:44:03 |2004-09-28 11:43:26 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17531
[Bug objc/16546] [4.0 Regression] [unit-at-a-time] Solaris 10/x86 libobjc bootstrap failure: invalid assembler code
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-28 23:18 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02909.html. -- What|Removed |Added Keywords||patch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16546
[Bug c/17719] regparm __attribute__ not set in function casts
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-28 23:34 --- Fixed in 3.4.0. -- What|Removed |Added Severity|critical|normal Status|UNCONFIRMED |RESOLVED Keywords||wrong-code Resolution||FIXED Target Milestone|--- |3.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17719
[Bug c++/11624] -Wnon-virtual-dtor doesn't always work
--- Additional Comments From mrs at apple dot com 2004-09-28 23:58 --- radr://problem/3816531 -- What|Removed |Added CC||mrs at apple dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11624
[Bug middle-end/17549] [4.0 Regression] 25% increase in codesize (3.3.4 - 4.0.0 20040917)
--- Additional Comments From giovannibajo at libero dot it 2004-09-29 01:25 --- Subject: Re: [4.0 Regression] 25% increase in codesize (3.3.4 - 4.0.0 20040917) rakdver at atrey dot karlin dot mff dot cuni dot cz wrote: This patch (for quite stupid bug in ivopts) could improve the situation a bit. I will post it once it passes regtesting. Do you have some numbers about what this patch does? Does it fix this ivopts regression, or will we need further tuning? Giovanni Bajo -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17549
[Bug driver/17537] [3.4 Regression] g++ not passing -lstdc++ to linker when -l is only supplied
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-09-29 02:19 --- Subject: Bug 17537 CVSROOT:/cvs/gcc Module name:gcc Branch: gcc-3_4-branch Changes by: [EMAIL PROTECTED] 2004-09-29 02:18:58 Modified files: gcc/cp : ChangeLog g++spec.c Log message: PR driver/17537 * g++spec.c (lang_specific_driver): Unrecognized libraries, other than -lc and -lm, may require linking against libstc++. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-3_4-branchr1=1.3892.2.161r2=1.3892.2.162 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/g++spec.c.diff?cvsroot=gcconly_with_tag=gcc-3_4-branchr1=1.41r2=1.41.4.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17537
[Bug driver/17537] [3.4 Regression] g++ not passing -lstdc++ to linker when -l is only supplied
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-29 02:34 --- Fixed. -- What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17537
[Bug tree-optimization/14442] [tree-ssa] missed sib if conversion optimization on the tree level
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-29 02:40 --- Basically PR 17671 is the PR for the new PHI-OPT and PR 15618 is for fold a!=0 to a when a is of the boolean_type. Also note the C++ front-end for the code in comment 3 (when the int is changed to bool) is already fixed by the new PHI-OPT. -- What|Removed |Added BugsThisDependsOn||15618, 17671 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14442
[Bug tree-optimization/15089] [3.4/4.0 Regression] [tree-ssa] local register variable with a specified register is bad
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-09-29 02:50 --- Subject: Bug 15089 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2004-09-29 02:50:47 Modified files: gcc: ChangeLog tree-flow.h tree-ssa-ccp.c tree-ssa-copy.c tree-ssa-dom.c Added files: gcc/testsuite/gcc.dg/tree-ssa: asm-2.c Log message: PR 15089 * tree-ssa-copy.c (may_propagate_copy_into_asm): New. * tree-flow.h (may_propagate_copy_into_asm): Declare. * tree-ssa-ccp.c (replace_uses_in): Use it. * tree-ssa-dom.c (cprop_operand): Likewise. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.5673r2=2.5674 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-flow.h.diff?cvsroot=gccr1=2.48r2=2.49 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-ccp.c.diff?cvsroot=gccr1=2.45r2=2.46 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-copy.c.diff?cvsroot=gccr1=2.16r2=2.17 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-dom.c.diff?cvsroot=gccr1=2.55r2=2.56 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/asm-2.c.diff?cvsroot=gccr1=NONEr2=1.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15089
[Bug target/17705] Testing a bool using true doesn't work
--- Additional Comments From bliss1940-bbs at yahoo dot com 2004-09-29 03:21 --- (In reply to comment #1) Could attach the preprocessed source? I have discovered that the problem was in my code. The compiler is okay. Please cancel this bug report. Steve Bliss -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17705
[Bug target/17705] Testing a bool using true doesn't work
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-29 03:25 --- So closing as invalid. -- What|Removed |Added Status|WAITING |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17705
[Bug tree-optimization/17671] PHI-OPT is not smart enough
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-29 03:44 --- Here is another example which I already with my patch. int f(int a, int b, int c) { if (c == 0) goto temp; if (a == 0) return 0; temp: if (a == b) return a; return a; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17671
[Bug c/17720] New: Grammatical error in C warning
The assignment warning in c-typeck.c, pointer targets in %s differ in signedness is really awkward! signedness should be replaced by sign on mainline. I'll whip up a patch, but this PR will make sure it's not forgotten. -- Summary: Grammatical error in C warning Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: bje at gcc dot gnu dot org ReportedBy: bje at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17720