[Bug c++/50504] New: g++ 4.5.2 -O2 with complex produces incorrect code on AMD64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50504 Bug #: 50504 Summary: g++ 4.5.2 -O2 with complex produces incorrect code on AMD64 Classification: Unclassified Product: gcc Version: 4.5.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: casu...@yahoo.com Created attachment 25353 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25353 g++ -O2 main.cpp, and ./a.out should not produce all zero outputs. The correct outputs are when compiled without -O2 option A simple program attached that just delays complex inputs (in a rather complicated manner is a simple version of the bug) when compiled with -O2 using g++ 4.5.2 on Ubuntu 11.04 produces incorrect outputs. The same code works fine without -O2 option. Also Works correctly with g++-4.4 -O2 as well. Compiler details: OLLECT_GCC=g++-4.5 COLLECT_LTO_WRAPPER=/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/lto-wrapper Target: x86_64-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=x86_64-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/x86_64-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/x86_64-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 --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
[Bug tree-optimization/46309] optimization a==3||a==1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46309 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org Component|c++ |tree-optimization --- Comment #4 from Jakub Jelinek 2011-09-24 08:36:27 UTC --- With s/bool/int/ we generate identical code for both, without jumps. Anyway, more important is that we don't seem to optimize the x == CST1 || x == CST2 where __builtin_popcount (CST1 ^ CST2) == 1 in fold-const.c and don't even optimize range tests if the constants alternate and, more importantly, don't seem to do anything similar to fold_range_test at the GIMPLE level. int f1 (int a, int b) { int v1 = (a == 3); int v2 = (a == 1); int v3 = (a == 4); int v4 = (a == 2); return v1 || v2 || v3 || v4; } int f2 (int a, int b) { int v1 = (a == 1); int v2 = (a == 2); int v3 = (a == 3); int v4 = (a == 4); return v1 || v2 || v3 || v4; } int f3 (int a, int b) { int v1 = (a == 3); int v2 = (a == 1); return v1 || v2; } int f4 (int a, int b) { int v1 = (a == 1); int v2 = (a == 2); return v1 || v2; } int f5 (int a, int b) { return a == 3 || a == 1 || a == 4 || a == 2; } int f6 (int a, int b) { return a == 1 || a == 2 || a == 3 || a == 4; } int f7 (int a, int b) { return a == 3 || a == 1; } int f8 (int a, int b) { return a == 1 || a == 2; } int f9 (int a, int b) { return a == 3 || a == 1 || a == 2 || a == 4; }
[Bug c++/44267] SFINAE does not handle down static_cast over virtual inheritance
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44267 --- Comment #6 from paolo at gcc dot gnu.org 2011-09-24 09:55:06 UTC --- Author: paolo Date: Sat Sep 24 09:55:01 2011 New Revision: 179141 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179141 Log: /cp 2011-09-24 Paolo Carlini PR c++/44267 * class.c (build_base_path): Add a tsubst_flags_t parameter. (convert_to_base): Adjust call. * typeck.c (build_class_member_access_expr, get_member_function_from_ptrfunc, build_static_cast_1): Likewise. * init.c (dfs_initialize_vtbl_ptrs, emit_mem_initializers): Likewise. * method.c (do_build_copy_constructor, do_build_copy_assign): Likewise. * rtti.c (build_dynamic_cast_1): Likewise. * typeck2.c (build_scoped_ref, build_m_component_ref): Likewise. * call.c (build_over_call, build_special_member_call): Likewise. * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, build_up_reference): Likewise. * cp-tree.h (build_base_path): Adjust declaration. /testsuite 2011-09-24 Paolo Carlini PR c++/44267 * g++.dg/template/sfinae28.C: New. Added: trunk/gcc/testsuite/g++.dg/template/sfinae28.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/cvt.c trunk/gcc/cp/init.c trunk/gcc/cp/method.c trunk/gcc/cp/rtti.c trunk/gcc/cp/typeck.c trunk/gcc/cp/typeck2.c trunk/gcc/testsuite/ChangeLog
[Bug c++/44267] SFINAE does not handle down static_cast over virtual inheritance
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44267 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #7 from Paolo Carlini 2011-09-24 09:56:45 UTC --- Fixed for 4.7.0.
[Bug c++/50504] g++ 4.5.2 -O2 with complex produces incorrect code on AMD64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50504 --- Comment #1 from Paolo Carlini 2011-09-24 10:05:08 UTC --- I haven't really looked into the code, but both gcc4.6.x and mainline seem fine. Thus in case would be a regression from 4.4.x present only in 4.5.x: unless the fix is a relatively straightforward backport...
[Bug c++/40831] g++ generated symbols for cloned function that be demangled.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40831 --- Comment #13 from Dmitry Gorbachev 2011-09-24 10:39:28 UTC --- Thanks! It would be nice to fix it in binutils and in gdb as well.
[Bug target/50505] New: gcc-4.6.1 doesn't use "-mtune=k8-sse3" when using "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50505 Bug #: 50505 Summary: gcc-4.6.1 doesn't use "-mtune=k8-sse3" when using "-march=native" Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: pa...@condmat1.ciencias.uniovi.es This is not a regression over gcc-4.4, but I don't understand why it doesn't tune for k8-sse3 even if my processor has sse3 support and it's detected for -march: \_ /usr/libexec/gcc/x86_64-pc-linux-gnu/4.5.3/cc1 -quiet - -D_FORTIFY_SOURCE=2 -march=k8-sse3 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=k8 -quiet -dumpbase - -auxbase-strip /dev/null -o /tmp/ccm0bSsZ.s If I don't misremember, this is a Venice: http://en.wikipedia.org/wiki/Athlon_64#Venice_.2890.C2.A0nm_SOI.29 $ cat /proc/cpuinfo processor: 0 vendor_id: AuthenticAMD cpu family: 15 model: 47 model name: AMD Athlon(tm) 64 Processor 3200+ stepping: 0 cpu MHz: 2042.838 cache size: 512 KB fpu: yes fpu_exception: yes cpuid level: 1 wp: yes flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm bogomips: 4085.67 TLB size: 1024 4K pages clflush size: 64 cache_alignment: 64 address sizes: 40 bits physical, 48 bits virtual power management: ts fid vid ttp tm stc Downstream closed bug as INVALID because: "Probably because you don't "tune" for an instruction set. It doesn't make sense. -mtune controls things like scheduling behavior, prefetching, branch costs, etc. These don't change when you tack on SSE3 instructions. -march is what controls which instructions sets are used. As far as tuning is concerned k8 and k8-sse3 are the exact same thing, because gcc has one cost model (struct processor_costs k8_cost in gcc/config/i386.c) and machine model (m_K8 in same) it uses for all K8 family chips." -> https://bugs.gentoo.org/show_bug.cgi?id=384189#c5 But, if that is true, gcc man page should be fixed to drop "k8-sse3" from -mtune options Thanks a lot for clarifying this :-)
[Bug target/50505] gcc-4.6.1 doesn't use "-mtune=k8-sse3" when using "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50505 --- Comment #1 from Jonathan Wakely 2011-09-24 12:35:02 UTC --- (In reply to comment #0) > But, if that is true, gcc man page should be fixed to drop "k8-sse3" from > -mtune options No, because it's a valid option. Since -march=k8 and -march-k8-sse3 do not do that same thing, it belongs in the manual as a supported arch. What the downstream reply says is that there's no difference between -mtune=k8 and -mtune=k8-sse3, so it doesn't matter that gcc uses -mtune=k8, you get the same result. If -mtune=k8 and -mtune=k8-sse3 do the same thing, why do you care which is used?
[Bug c/50506] New: gcc fails at assembly with -O1 while inlining is forced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506 Bug #: 50506 Summary: gcc fails at assembly with -O1 while inlining is forced Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: galtge...@o2.pl Created attachment 25354 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25354 preprocesed code This bug simply separates the latest comments of bug 39333 for better visibility. Using built-in specs. COLLECT_GCC=gcc-4.6.1 COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.6.1/lto-wrapper Target: i686-pc-linux-gnu Configured with: /mnt/workbox/builds/portage/sys-devel/gcc-4.6.1-r1/work/gcc-4.6.1/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.6.1 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.6.1/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.6.1 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.6.1/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.6.1/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.6.1/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --disable-ppl-version-check --with-cloog-include=/usr/include/cloog-ppl --enable-lto --enable-nls --without-included-gettext --with-system-zlib --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --with-python-dir=/share/gcc-data/i686-pc-linux-gnu/4.6.1/python --enable-checking=release --disable-libgcj --with-arch=i686 --enable-objc-gc --enable-languages=c,c++,objc,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.6.1-r1 p1.0, pie-0.4.5' --disable-libstdcxx-pch Thread model: posix gcc version 4.6.1 (Gentoo 4.6.1-r1 p1.0, pie-0.4.5) COLLECT_GCC_OPTIONS='-v' '-Wall' '-O1' '-c' '-o' 'fprintf-bug-code-4.6.o' '-save-temps' '-mtune=generic' '-march=i686' /usr/libexec/gcc/i686-pc-linux-gnu/4.6.1/cc1 -fpreprocessed fprintf-bug-code-4.6.i -quiet -dumpbase fprintf-bug-code-4.6.i -mtune=generic -march=i686 -auxbase-strip fprintf-bug-code-4.6.o -O1 -Wall -version -o fprintf-bug-code-4.6.s GNU C (Gentoo 4.6.1-r1 p1.0, pie-0.4.5) version 4.6.1 (i686-pc-linux-gnu) compiled by GNU C version 4.6.1, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C (Gentoo 4.6.1-r1 p1.0, pie-0.4.5) version 4.6.1 (i686-pc-linux-gnu) compiled by GNU C version 4.6.1, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 5f6717c7397ac8a626933ce7eb52 fprintf-bug-code-4.6.i: In function ‘write_cfg’: fprintf-bug-code-4.6.i:71:1: sorry, unimplemented: inlining failed in call to ‘fprintf’: indirect function call with a yet undetermined callee fprintf-bug-code-4.6.i:78:7: sorry, unimplemented: called from here The code builds fine is either -fipa-cp is added or '__attribute__ ((__always_inline__))' is removed.
[Bug c/50506] gcc fails at assembly with -O1 while inlining is forced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506 Rafał Mużyło changed: What|Removed |Added Attachment #25354|0 |1 is obsolete|| --- Comment #1 from Rafał Mużyło 2011-09-24 13:05:00 UTC --- Created attachment 25355 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25355 reduced testcase Sorry, that's full preprocessed code - attaching reduced version.
[Bug c/50506] gcc fails at assembly with -O1 while inlining is forced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506 Rafał Mużyło changed: What|Removed |Added Attachment #25355|0 |1 is obsolete|| --- Comment #2 from Rafał Mużyło 2011-09-24 13:07:45 UTC --- Created attachment 25356 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25356 the really reduced testcase I should really check what I'm attaching. This is the result of final reduction.
[Bug target/49069] ICE in gen_cstoredi4, at config/arm/arm.md:7554
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49069 Mikael Pettersson changed: What|Removed |Added CC||mikpe at it dot uu.se --- Comment #3 from Mikael Pettersson 2011-09-24 13:17:36 UTC --- This still ICEs gcc-4.6-20110923, but stopped ICEing trunk with the tree-ssa-forwprop optimization improvement in r174428: http://gcc.gnu.org/ml/gcc-cvs/2011-05/msg01209.html However the underlying issue remains. The ARM cstoredi4 expander has a very loose operand match spec which allows both operands to be constants, but that case doesn't work(*), so it has a gcc_assert () to cause an error in that case. But asserting is wrong: it should either use stricter operand specs to avoid undesirable operand combinations, or FAIL the expander for such operands. Replacing the assert with a FAIL on the negated condition seem appropriate and fixes this test case for me. [(*) Simply removing the gcc_assert in 4.6.1 leads to pr49069.i: In function 'foo': pr49069.i:26:1: error: unrecognizable insn: (insn 8 7 9 3 (set (reg:CC 24 cc) (compare:CC (const_int 0 [0]) (const_int 1 [0x1]))) pr49069.i:23 -1 (nil)) pr49069.i:26:1: internal compiler error: in extract_insn, at recog.c:2109]
[Bug c/50506] gcc fails at assembly with -O1 while inlining is forced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506 --- Comment #3 from Rafał Mużyło 2011-09-24 13:17:59 UTC --- OK, that's a bit surprising, -fipa-cp does help for attachment from comment 1, but not for my final reduction - removing the attribute still works there, though.
[Bug c/50506] gcc fails at assembly with -O1 while inlining is forced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506 --- Comment #4 from Rafał Mużyło 2011-09-24 13:38:47 UTC --- Well,... The actual result was quite a bit more interesting, cause: Using built-in specs. COLLECT_GCC=/usr/i686-pc-linux-gnu/gcc-bin/4.5.3/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.5.3/lto-wrapper Target: i686-pc-linux-gnu Configured with: /mnt/workbox/builds/portage/sys-devel/gcc-4.5.3-r1/work/gcc-4.5.3/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.5.3 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.3 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.3/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.3/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --disable-ppl-version-check --with-cloog-include=/usr/include/cloog-ppl --enable-lto --enable-nls --without-included-gettext --with-system-zlib --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --with-python-dir=/share/gcc-data/i686-pc-linux-gnu/4.5.3/python --enable-checking=release --disable-libgcj --with-arch=i686 --enable-objc-gc --enable-languages=c,c++,objc,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.5.3-r1 p1.0, pie-0.4.5' --disable-libstdcxx-pch Thread model: posix gcc version 4.5.3 (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) COLLECT_GCC_OPTIONS='-v' '-O1' '-fipa-cp' '-Wall' '-c' '-o' 'fprintf-mini-bug-4.6.o' '-mtune=generic' '-march=i686' /usr/libexec/gcc/i686-pc-linux-gnu/4.5.3/cc1 -fpreprocessed fprintf-mini-bug-4.6.i -quiet -dumpbase fprintf-mini-bug-4.6.i -mtune=generic -march=i686 -auxbase-strip fprintf-mini-bug-4.6.o -O1 -Wall -version -fipa-cp -o /tmp/ccAnJvmq.s GNU C (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) version 4.5.3 (i686-pc-linux-gnu) compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) version 4.5.3 (i686-pc-linux-gnu) compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 8436f5776e6fdb86b8b69daea94dff9c fprintf-mini-bug-4.6.i: In function ‘write_cfg’: fprintf-mini-bug-4.6.i:4:1: sorry, unimplemented: inlining failed in call to ‘foo’: originally indirect function call not considered for inlining fprintf-mini-bug-4.6.i:11:7: sorry, unimplemented: called from here This is with the code from comment 2 and '-fipa-cp' doesn't help in that case. It does, however, for gcc 4.6.1.
[Bug target/50505] gcc-4.6.1 doesn't use "-mtune=k8-sse3" when using "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50505 --- Comment #2 from Pacho Ramos 2011-09-24 13:46:00 UTC --- Because I wanted to confirm it from upstream as looked strange to me that both mtune options are allowed if they do the same. Why do you keep both? Thanks for the info :) About the man page I am referring that both options (k8 and k8-sse3) are referred as mtune options (not only for -march)
[Bug target/50505] gcc-4.6.1 doesn't use "-mtune=k8-sse3" when using "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50505 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek 2011-09-24 14:17:43 UTC --- -mtune= accepts the same CPU names as -march=, and while (currently) there is no difference between k8 and k8-sse3 tuning, for -march= it makes a difference (-march=k8-sse3 is essentially -march=k8 -msse3). But -march=native or -mtune=native is expanded by the driver which knows very well the underlying compiler and knows those two are the same thing. If k8-sse3 tuning ever does something different than k8 tuning, the driver would be obviously adjusted to reflect that.
[Bug target/50505] gcc-4.6.1 doesn't use "-mtune=k8-sse3" when using "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50505 Jonathan Wakely changed: What|Removed |Added Keywords||documentation Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #4 from Jonathan Wakely 2011-09-24 14:22:28 UTC --- It shouldn't be hard to understand that -mtune=k8-sse3 is a *valid* option but has the same effects as -mtune=k8. Removing it from the manual would be wrong.
[Bug target/50505] gcc-4.6.1 doesn't use "-mtune=k8-sse3" when using "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50505 --- Comment #5 from Pacho Ramos 2011-09-24 14:25:44 UTC --- (In reply to comment #4) > It shouldn't be hard to understand that -mtune=k8-sse3 is a *valid* option but > has the same effects as -mtune=k8. Removing it from the manual would be wrong. Understanding that both are valid options (in the sense both can be used) isn't hard, but understanding that -mtune=k8 and k8-sse3 had the same effect and that, even in that case, both options are accepted and allowed even being redundant, didn't look so easy to understand for me. But, anyway, all is more clear now to me. Thanks a lot for your help and sorry for the inconvenience
[Bug middle-end/50496] [4.7 regression] ICE in redirect_jump, at jump.c:1497
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50496 Markus Trippelsdorf changed: What|Removed |Added Attachment #25351|0 |1 is obsolete|| --- Comment #3 from Markus Trippelsdorf 2011-09-24 14:25:48 UTC --- Created attachment 25357 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25357 reduced testcase New reduced testcase after one round of "multidelta -level=0".
[Bug c/50507] New: Huge amount of memory used while building GCC4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50507 Bug #: 50507 Summary: Huge amount of memory used while building GCC4 Classification: Unclassified Product: gcc Version: 4.5.3 Status: UNCONFIRMED Severity: critical Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: fzvq...@v.mintemail.com when compiling GCC 4.5.3 core (C only), at some point there's a memory requirement of more than 1 GB RAM. this happens during the link stage of some object files. after i set my virtual machine to have 1.2 GB RAM, it worked. this is a major showstopper, you can only build GCC on restricted platforms such as an ARM netbook by using swap-memory, which makes the build much slower as it already is. Additionally this swap memory is usually on flash memory device on such a system, decreasing its lifetime. for comparison, GCC 3.4.6 builds well on a virtual machine with just 128 MB RAM.
[Bug target/45483] gcc-4.4.3 and 4.5.3: probably wrong optimization options chosen by "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45483 --- Comment #12 from H.J. Lu 2011-09-24 15:19:56 UTC --- (In reply to comment #10) > New output: > > \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.6.1/cc1 -quiet - -D_FORTIFY_SOURCE=2 > -march=pentium-m -mno-cx16 -mno-sahf -mno-movbe -mno-aes -mno-pclmul > -mno-popcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm > -mno-avx -mno-sse4.2 -mno-sse4.1 --param l1-cache-size=32 --param > l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=generic -quiet > -dumpbase - -auxbase-strip /dev/null -o /tmp/cc63ioaE.s It looks great.
[Bug target/45483] gcc-4.4.3 and 4.5.3: probably wrong optimization options chosen by "-march=native"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45483 Pacho Ramos changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #13 from Pacho Ramos 2011-09-24 15:40:17 UTC --- OK, I guess I should close this one as looks like "generic" is the best option for my processor
[Bug c/50506] gcc fails at assembly with -O1 while inlining is forced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506 --- Comment #5 from Andrew Pinski 2011-09-24 15:54:22 UTC --- And this is not a bug in GCC really as GCC is correct it cannot inline always_inline functions for indirect function calls.
gcc-bugs@gcc.gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50508 Bug #: 50508 Summary: [C++0x] ICE cxx_eval_logical_expression cp/semantics.c:6487 4.61/4.7 converting std::intergal_constant to bool with && Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: fuchsia.gr...@virgin.net /* This ICEd the official mingw 4.6.1 with: 'internal compiler error: in cxx_eval_logical_expression at cp/semantics.c:6487' (I had the same result on gcc 4.7.0 20110813 from www.equation.com) */ #include static constexpr bool value = std::integral_constant() && std::integral_constant();
[Bug c/50506] gcc fails at assembly with -O1 while inlining is forced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506 --- Comment #6 from Rafał Mużyło 2011-09-24 16:05:20 UTC --- So, whose bug is it then ? glibc ? cause before reduction, the code was (http://bugs.gentoo.org/show_bug.cgi?id=365015): #include static void w_i(void *fp, int (*outf)(void *, const char *, ...)) { outf(fp, ";%s\n", " - EOF -"); } void write_cfg() { FILE *fp = 0; w_i(fp, (int (*)(void *, const char *, ...))fprintf); } In gcc 4.5.3 it works likely due to internal fprint definition.
gcc-bugs@gcc.gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50508 Jonathan Wakely changed: What|Removed |Added Keywords||ice-on-valid-code Status|UNCONFIRMED |NEW Last reconfirmed||2011-09-24 CC||jason at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Jonathan Wakely 2011-09-24 16:20:07 UTC --- fails the gcc_assert in cxx_eval_logical_expression
gcc-bugs@gcc.gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50508 --- Comment #2 from Jonathan Wakely 2011-09-24 16:23:30 UTC --- reduced template struct integral_constant { typedef T value_type; constexpr operator value_type() { return true; } }; static constexpr bool value = integral_constant() && true;
[Bug libstdc++/50509] New: incorrect code in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50509 Bug #: 50509 Summary: incorrect code in std::seed_seq::generate Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: john.sal...@deshaw.com The implementation of std::seed_seq::generate contains two typos. The code uses '<<' where the standard in rand.util.seed_seq 26.5.7.1 paragraph 8 says: T(x) is defined as x xor (x rshift 27) Here's a patch against the 4.6.1 tree: salm...@drdlogin0039.en.desres$ diff -u /proj/desres/root/Linux/x86_64/gcc/4.6.1-23A/include/c++/4.6.1/bits/random.tcc myrandom/bits/random.tcc --- /proj/desres/root/Linux/x86_64/gcc/4.6.1-23A/include/c++/4.6.1/bits/random.tcc 2011-06-27 15:29:53.0 -0400 +++ myrandom/bits/random.tcc2011-09-19 10:04:46.836512000 -0400 @@ -2768,7 +2768,7 @@ _Type __arg = (__begin[__k % __n] ^ __begin[(__k + __p) % __n] ^ __begin[(__k - 1) % __n]); - _Type __r1 = __arg ^ (__arg << 27); + _Type __r1 = __arg ^ (__arg >> 27); __r1 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value, 1664525u, 0u>(__r1); _Type __r2 = __r1; @@ -2790,7 +2790,7 @@ _Type __arg = (__begin[__k % __n] + __begin[(__k + __p) % __n] + __begin[(__k - 1) % __n]); - _Type __r3 = __arg ^ (__arg << 27); + _Type __r3 = __arg ^ (__arg >> 27); __r3 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value, 1566083941u, 0u>(__r3); _Type __r4 = __r3 - __k % __n; salm...@drdlogin0039.en.desres$
[Bug target/50493] ICE in neon_disambiguate_copy, at config/arm/arm.c:20388
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50493 Mikael Pettersson changed: What|Removed |Added CC||irar at gcc dot gnu.org, ||mikpe at it dot uu.se --- Comment #1 from Mikael Pettersson 2011-09-24 16:42:17 UTC --- This test case started ICEing on trunk with Ira's r178588: http://gcc.gnu.org/ml/gcc-cvs/2011-09/msg00199.html
[Bug libstdc++/50509] [C++0x] incorrect code in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50509 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011-09-24 AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot |gnu.org |com Summary|incorrect code in |[C++0x] incorrect code in |std::seed_seq::generate |std::seed_seq::generate Ever Confirmed|0 |1 --- Comment #1 from Paolo Carlini 2011-09-24 18:13:32 UTC --- Thanks, I'll commit the change momentarily.
[Bug middle-end/50496] [4.7 regression] ICE in redirect_jump, at jump.c:1497
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50496 --- Comment #4 from Markus Trippelsdorf 2011-09-24 18:23:15 UTC --- I've found a new testcase that results in the same ICE: % < test.cpp class GCAlloc { }; class BaseAlloc { }; class String; class Base { public: virtual void destroy( String *str ) const =0; }; class String: public GCAlloc { const Base *m_class; public: enum constants { }; String( const char *data ); ~String() { m_class->destroy( this ); } void copy( const String &other ); String & operator=( const char *other ) { copy( String( other ) ); } }; class ListElement: public BaseAlloc { }; class List: public BaseAlloc { ListElement *m_head; void (*m_deletor)( void *); public: List(): m_deletor(0) { } const void *back() const { } bool empty() const { return m_head == 0; } void popBack(); }; class FalconData: public BaseAlloc { public: virtual ~FalconData() { } }; class Stream: public FalconData { }; class SrcLexer: public BaseAlloc { List m_streams; String m_whiteLead; void reset(); }; void SrcLexer::reset() { m_whiteLead = ""; while( ! m_streams.empty() ) { Stream *s = (Stream *) m_streams.back(); m_streams.popBack(); if ( !m_streams.empty() ) delete s; } } % g++ -O2 test.cpp test.ii: In member function ‘void SrcLexer::reset()’: test.ii:59:1: internal compiler error: in redirect_jump, at jump.c:1497
[Bug libstdc++/50509] [C++0x] incorrect code in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50509 --- Comment #2 from paolo at gcc dot gnu.org 2011-09-24 18:28:40 UTC --- Author: paolo Date: Sat Sep 24 18:28:36 2011 New Revision: 179144 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179144 Log: 2011-09-24 John Salmon PR libstdc++/50509 * include/bits/random.tcc (seed_seq::generate): Fix computation. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/random.tcc
[Bug libstdc++/50509] [C++0x] incorrect code in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50509 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.6.2 --- Comment #4 from Paolo Carlini 2011-09-24 18:29:18 UTC --- Fixed for 4.6.2.
[Bug libstdc++/50509] [C++0x] incorrect code in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50509 --- Comment #3 from paolo at gcc dot gnu.org 2011-09-24 18:28:51 UTC --- Author: paolo Date: Sat Sep 24 18:28:48 2011 New Revision: 179145 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179145 Log: 2011-09-24 John Salmon PR libstdc++/50509 * include/bits/random.tcc (seed_seq::generate): Fix computation. Modified: branches/gcc-4_6-branch/libstdc++-v3/ChangeLog branches/gcc-4_6-branch/libstdc++-v3/include/bits/random.tcc
[Bug middle-end/50496] [4.7 regression] ICE in redirect_jump, at jump.c:1497
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50496 --- Comment #5 from Markus Trippelsdorf 2011-09-24 19:06:40 UTC --- Created attachment 25358 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25358 fix This patch from Chung-Lin Tang fixes both issues. See: https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/748138
[Bug c++/50261] [C++0x] ICE on brace-initialize an array member
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50261 --- Comment #1 from Paolo Carlini 2011-09-24 20:30:48 UTC --- Now many of these do not ice anymore for me, only the second of the second block does.
[Bug c++/50019] [C++0x] ICE when compiling template function (should print error instead)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50019 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work||4.7.0 Resolution||WORKSFORME --- Comment #2 from Paolo Carlini 2011-09-24 20:40:35 UTC --- Works for me in mainline (r179143). Please double-check, and in case re-open.
[Bug c++/42507] internal compiler error: verify_stmts failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42507 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #4 from Paolo Carlini 2011-09-24 20:54:58 UTC --- Feedback not forthcoming.
[Bug libstdc++/50510] New: transposed variable names in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50510 Bug #: 50510 Summary: transposed variable names in std::seed_seq::generate Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: john.sal...@deshaw.com The C++11 "Final Draft International Standard" (FDIS n3290.pdf) fixes a defect in the "Final Committee Draft" (FCD n3092.pdf), swapping the use of the intermediate variables r3 and r4 in the std::seed_seq::generate() function. See 25.5.7.1 paragraph 8c. This patch brings libstdc++ up-to-date: salm...@drdlogin0039.en.desres$ diff -u oldrandom.tcc random.tcc --- oldrandom.tcc2011-09-19 10:04:46.836512000 -0400 +++ random.tcc2011-09-24 17:45:02.879621416 -0400 @@ -2796,8 +2796,8 @@ _Type __r4 = __r3 - __k % __n; __r4 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value>(__r4); - __begin[(__k + __p) % __n] ^= __r4; - __begin[(__k + __q) % __n] ^= __r3; + __begin[(__k + __p) % __n] ^= __r3; + __begin[(__k + __q) % __n] ^= __r4; __begin[__k % __n] = __r4; } } salm...@drdlogin0039.en.desres$
[Bug libstdc++/50510] transposed variable names in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50510 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-09-24 Ever Confirmed|0 |1 --- Comment #1 from Paolo Carlini 2011-09-24 22:27:00 UTC --- Ok, thanks.
[Bug libstdc++/50510] transposed variable names in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50510 --- Comment #2 from paolo at gcc dot gnu.org 2011-09-24 22:34:57 UTC --- Author: paolo Date: Sat Sep 24 22:34:50 2011 New Revision: 179149 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179149 Log: 2011-09-24 John Salmon PR libstdc++/50510 * include/bits/random.tcc (seed_seq::generate): Fix computation. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/random.tcc
[Bug libstdc++/50510] transposed variable names in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50510 --- Comment #3 from paolo at gcc dot gnu.org 2011-09-24 22:35:11 UTC --- Author: paolo Date: Sat Sep 24 22:35:02 2011 New Revision: 179150 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179150 Log: 2011-09-24 John Salmon PR libstdc++/50510 * include/bits/random.tcc (seed_seq::generate): Fix computation. Modified: branches/gcc-4_6-branch/libstdc++-v3/ChangeLog branches/gcc-4_6-branch/libstdc++-v3/include/bits/random.tcc
[Bug libstdc++/50510] transposed variable names in std::seed_seq::generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50510 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.6.2 --- Comment #4 from Paolo Carlini 2011-09-24 22:35:52 UTC --- Done.
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 --- Comment #9 from Paolo Carlini 2011-09-24 22:44:04 UTC --- Thanks for the scripts!
[Bug c++/50244] wcstold not available for C++0x
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50244 Paolo Carlini changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||INVALID --- Comment #6 from Paolo Carlini 2011-09-24 22:46:00 UTC --- I'm closing this. If you still see something strange on supported targets, please re-open.
[Bug c++/45487] Request to change comma to semicolon in error message
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45487 Paolo Carlini changed: What|Removed |Added CC|gcc-bugs at gcc dot gnu.org |jason at gcc dot gnu.org --- Comment #1 from Paolo Carlini 2011-09-24 22:54:50 UTC --- Jason, can we triage this?
[Bug c++/45095] "internal compiler error: Segmentation fault" compiling p7zip
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45095 Paolo Carlini changed: What|Removed |Added CC|gcc-bugs at gcc dot gnu.org |dje.gcc at gmail dot com --- Comment #3 from Paolo Carlini 2011-09-24 22:58:29 UTC --- David, can you have a look to this? Thanks.
[Bug c++/43563] gnu++0x: ICE on default value as lambda
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43563 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME --- Comment #2 from Paolo Carlini 2011-09-24 23:06:31 UTC --- Doesn't ICE for me with current 4_5-branch or newer branches (preprocessed doesn't compile with the latter)
[Bug c++/39680] ICE with -g3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39680 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Known to fail|| --- Comment #3 from Paolo Carlini 2011-09-24 23:13:24 UTC --- Closing.
[Bug c++/38540] Type of 'const int f ()'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38540 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Known to work||4.5.2 Resolution||FIXED Known to fail|| --- Comment #2 from Paolo Carlini 2011-09-24 23:19:23 UTC --- Fixed long ago.
[Bug c++/35076] ICE with rvalue references and casts
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35076 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Known to work||4.6.1, 4.7.0 Resolution||FIXED Known to fail||4.6.0 --- Comment #2 from Paolo Carlini 2011-09-24 23:27:58 UTC --- Fixed.
[Bug c++/50280] Incorrect type deduced for T& when passed a const bitfield
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50280 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot ||com --- Comment #2 from Paolo Carlini 2011-09-24 23:45:34 UTC --- Indeed it does with current mainline and isn't a regression, AFAIK. I'd like to close it but the seems a bit delicate, thus I guess better adding the testcase, unless somebody figures out which change fixed it (thus whether we got already an equivalent testcase)
[Bug lto/50511] New: gcc lto streamer in fragments memory badly
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50511 Bug #: 50511 Summary: gcc lto streamer in fragments memory badly Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: andi-...@firstfloor.org I ran into a problem while testing LTO on a quite large project with a lot of object files: the lto streamer fragmented the memory map badly by constantly mapping and unmapping the input files with mmap. I ended up with a memory map with lots of 2 page holes between mappings. Eventually it bumped into the default 64k max number of mappings limit on Linux and errored out because mmap failed. Workaround was to increase this limit (sysctl -w vm.max_map_count = 20) However gcc should be more efficient in its mappings. I think the problem is the one off cache in lto_file_read() being too dumb. Looking into a fix.