[Bug c++/49433] internal compiler error: in write_builtin_type, at cp/mangle.c:2167
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49433 Vasiliy vash at vasiliyshlykov dot org changed: What|Removed |Added CC||vash at vasiliyshlykov dot ||org --- Comment #1 from Vasiliy vash at vasiliyshlykov dot org 2011-09-23 06:11:44 UTC --- Same result on PowerPC with gcc 4.6.1: /usr/lib/gcc/powerpc-lynx-lynxos/4.6.1/../../../../powerpc-lynx-lynxos/include/boost/lexical_cast.hpp: In instantiation of 'bool boost::detail::lexical_stream_limited_srcCharT, Base, Traits::operator(long double) [with CharT = char, Base = std::basic_streambufchar, Traits = std::char_traitschar]': conversion.cpp:45:1: instantiated from here /usr/lib/gcc/powerpc-lynx-lynxos/4.6.1/../../../../powerpc-lynx-lynxos/include/boost/lexical_cast.hpp:971:21: internal compiler error: in write_builtin_type, at cp/mangle.c:2167 This only appears with -O2 -flto and passes -Os -flto. gcc -v: Using built-in specs. COLLECT_GCC=powerpc-lynx-lynxos-gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/powerpc-lynx-lynxos/4.6.1/lto-wrapper Target: powerpc-lynx-lynxos Configured with: ../src/configure --prefix=/usr --target=powerpc-lynx-lynxos --disable-nls --enable-multilib --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --disable-libstdcxx-pch --enable-plugin --disable-softfloat --with-tune=750 --with-system-zlib --enable-threads=posix Thread model: lynx gcc version 4.6.1 (GCC)
[Bug middle-end/50460] [4.7 Regression] __builtin___strcpy_chk/__builtin_object_size don't work
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50460 --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-23 07:26:10 UTC --- Looking at: const char *str1 = JIHGFEDCBA; #define strcpy(x,y) __builtin___strcpy_chk (x, y, __builtin_object_size (x, 1)) int f1 (void) { struct A { char buf1[9]; char buf2[1]; } a; strcpy (a.buf1 + (0 + 4), str1 + 5); return 0; } int f2 (void) { struct A { char buf1[9]; char buf2[1]; } a; strcpy ((char *) a + (0 + 4), str1 + 5); return 0; } int f3 (void) { struct A { char buf1[9]; char buf2[1]; } a; char *p = (char *) a; strcpy (p + (0 + 4), str1 + 5); return 0; } int f4 (void) { struct A { char buf0; char buf1[9]; char buf2[1]; } a; char *p = (char *) a; strcpy (p + (0 + 5), str1 + 5); return 0; } int f5 (void) { struct A { char buf0; char buf1[9]; char buf2[1]; } a; strcpy ((char *) a + (0 + 5), str1 + 5); return 0; } with GCC 4.4, seems we have always reconstructed it into a.buf1[4]. So likely we want to reconstruct it from the MEM_REF in the *.objsz pass then. If there is union involved, we probably want to reconstruct it to the alternative with the largest possible __builtin_object_size (X, 1) resp. smallest possible __builtin_object_size (X, 3).
[Bug c++/50477] -Wunused-parameter should not warn about virtual method declarations with bodies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50477 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-23 08:27:09 UTC --- So just use -Wno-unused-parameter if you want to give the arguments names, don't use them and don't like unused attribute. I don't see why inline methods, virtual or non-virtual, should be any different in this regard from any other functions.
[Bug lto/50394] [meta-bug] Issues with building libreoffice with LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50394 --- Comment #24 from Michael Meeks michael.meeks at suse dot com 2011-09-23 08:33:17 UTC --- I can imagine that this sort of magic breaks with LTO. Is the solution as simple as using non-LTO version of libgcc3_uno.so? I will try to take a look how this is implemented. Great - so, we wouldn't loose much by having the bridge compiled without optimisation - it is ultimately used to map C++ - Java or python so all performance is already shot by that stage ;-) bridges/source/cpp_uno/gcc3_linux_intel/call.s bridges/source/cpp_uno/gcc3_linux_x86-64/call.s are the places to dig - unfortunately there is -far- too much cut/paste going on in here, though we've done some work to try to share more IIRC. These snippets are used by cpp2uno.cxx - to build trampolines cf. 'codeSnippet' - which (I hope) should work fine, and by uno2cpp.cxx to invoke things eg. 'uno2cpp.cxx's callVirtualMethod - which has some fun assembler in each case. Does that help ?
[Bug c++/50477] -Wunused-parameter should not warn about virtual method declarations with bodies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50477 --- Comment #4 from miles at gnu dot org 2011-09-23 08:59:47 UTC --- It's different because unlike most function/method definitions, this is _two_ things together -- a virtual method declaration, which pertains to this class and all subclasses, and a method definition, which only instead only really pertains to this class. Note that if you separate the definition and the declaration, there's no issue -- the definition can have the parameter name omitted, or use the unused attribute, and it makes perfect sense, both to the compiler, and to readers. But if one uses the inline definition, there's no way to separate these two uses; the compiler still understands of course; it's readers who are inconvenienced, because they see code obfuscation intended for the _definition_ when they read the code to see the _declaration_. If it were a simple function (or an out-of-line method definition, or a non-virtual method), I'd happily use attribute unused (or whatever), because it clearly does apply to the definition, and indeed makes the code more readable by documenting something. It's only in this case where two different things are mixed together that I'm uncomfortable doing so. I'm not denying that there are many ways to make the compiler happy; my complaint is that they all make the code less readable, and I think readability is important.
[Bug rtl-optimization/50489] [UPC/IA64] mis-schedule of MEM ref with -ftree-vectorize and -fschedule-insns2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50489 Alexander Monakov amonakov at gcc dot gnu.org changed: What|Removed |Added CC||amonakov at gcc dot gnu.org --- Comment #3 from Alexander Monakov amonakov at gcc dot gnu.org 2011-09-23 09:30:01 UTC --- Does the problem vanish if you add -fno-strict-aliasing? One more thing, you mention -O2 in the flags, but then refer to selective scheduler, which is only enabled at -O3. Perhaps you meant Haifa scheduler.
[Bug c++/49433] internal compiler error: in write_builtin_type, at cp/mangle.c:2167
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49433 --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 10:00:10 UTC --- I would say put a breakpoint on write_builtin_type and see what a heck is that type!
[Bug bootstrap/38607] AIX error messages about TOC during build
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38607 Lukasz Filipkowski lukasz.filipkowski at gmail dot com changed: What|Removed |Added CC||lukasz.filipkowski at gmail ||dot com --- Comment #15 from Lukasz Filipkowski lukasz.filipkowski at gmail dot com 2011-09-23 10:10:58 UTC --- Hello, regarding ld: 0711-768 WARNING when compiling: #include string #include map void foo() { std::mapstd::string, std::string bar; } into rtl-enabled shared library. Warning is caused by code construction similar to the one presented in the following example: //g++ -save-temps -shared -Wl,-G -o libshare.so share.cc #include iostream #include string using namespace std; templatetypename Key class MyClass { public: typedef Key KeyType; MyClass(KeyType aNumber) { cout aNumber ! = factorial(aNumber) endl; } ~MyClass(){} private: long factorial(KeyType __x); long factorialHelper(KeyType __x); }; templatetypename Key long MyClassKey::factorial(KeyType __x) { if (__x = 0) return 1; else return __x * factorial(__x-1); //else return __x * factorialHelper(__x-1); } templatetypename Key long MyClassKey::factorialHelper(KeyType __x) { return factorial(__x); } void foo() { MyClassint myClass(5); } $ g++ -save-temps -shared -Wl,-G -o libshare.so share.cc ld: 0711-768 WARNING: Object share.o, section 1, function .MyClassint::factorial(int): The branch at address 0x36c is not followed by a recognized no-op or TOC-reload instruction. The unrecognized instruction is 0x7C691B78. Example code is based on contents of stl_tree.h file in which class _Rb_tree is defined. Warning is generated in case creation of shared libraries using TEMPLATE CLASSES with RECURSIVE METHODS. In the presented example factorial method is a recursive one. When modifying: templatetypename Key long MyClassKey::factorial(KeyType __x) { if (__x = 0) return 1; else return __x * factorial(__x-1); //else return __x * factorialHelper(__x-1); } into: templatetypename Key long MyClassKey::factorial(KeyType __x) { if (__x = 0) return 1; //else return __x * factorial(__x-1); else return __x * factorialHelper(__x-1); } there is no linker warning. The _Rb_tree class, defined in stl_tree.h, contains _M_erase and _M_copy methods, both recursive. Warning is present when using both GCC4.4.5 and GCC4.6.1 on AIX 5300-11-03-1013 (AIX5.3 TL11 SP03) When using assembler program (as) from AIX 5300-08-02-0822 (AIX5.3 TL08 SP02) there is no warning generated. I'm not sure but problematic warning might be a result of fixes similar to https://www-304.ibm.com/support/docview.wss?uid=isg1IZ24688
[Bug bootstrap/50492] New: Bootstrap failure on x86_64-apple-darwin10 when using --with-build-config=bootstrap-lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50492 Bug #: 50492 Summary: Bootstrap failure on x86_64-apple-darwin10 when using --with-build-config=bootstrap-lto Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: domi...@lps.ens.fr CC: ebotca...@gcc.gnu.org, ia...@gcc.gnu.org, j...@suse.cz, t...@moene.org On x86_64-apple-darwin10 bootstrap fails when building gnat* at stage 2 if --with-build-config=bootstrap-lto is used in configure: /opt/gcc/build_l/./prev-gcc/g++ -B/opt/gcc/build_l/./prev-gcc/ -B/opt/gcc/gcc4.7l/x86_64-apple-darwin10.8.0/bin/ -nostdinc++ -B/opt/gcc/build_l/prev-x86_64-apple-darwin10.8.0/libstdc++-v3/src/.libs -B/opt/gcc/build_l/prev-x86_64-apple-darwin10.8.0/libstdc++-v3/libsupc++/.libs -I/opt/gcc/build_l/prev-x86_64-apple-darwin10.8.0/libstdc++-v3/include/x86_64-apple-darwin10.8.0 -I/opt/gcc/build_l/prev-x86_64-apple-darwin10.8.0/libstdc++-v3/include -I/opt/gcc/_clean/libstdc++-v3/libsupc++ -L/opt/gcc/build_l/prev-x86_64-apple-darwin10.8.0/libstdc++-v3/src/.libs -L/opt/gcc/build_l/prev-x86_64-apple-darwin10.8.0/libstdc++-v3/libsupc++/.libs -g -O2 -mdynamic-no-pic -flto=jobserver -frandom-seed=1 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common -DHAVE_CONFIG_H -static-libgcc -static-libstdc++ -static-libgcc -o gnatbind ada/b_gnatb.o ada/adaint.o ada/argv.o ada/cio.o ada/cstreams.o ada/env.o ada/exit.o ada/final.o ada/init.o ada/initialize.o ada/link.o ada/raise.o ada/seh_init.o ada/targext.o ada/tracebak.o ada/ada.o ada/a-clrefi.o ada/a-comlin.o ada/a-elchha.o ada/a-except.o ada/ali-util.o ada/ali.o ada/alloc.o ada/aspects.o ada/atree.o ada/bcheck.o ada/binde.o ada/binderr.o ada/bindgen.o ada/bindusg.o ada/butil.o ada/casing.o ada/csets.o ada/debug.o ada/einfo.o ada/elists.o ada/err_vars.o ada/errout.o ada/erroutc.o ada/fmap.o ada/fname.o ada/fname-uf.o ada/g-hesora.o ada/g-htable.o ada/s-os_lib.o ada/s-string.o ada/gnat.o ada/gnatbind.o ada/gnatvsn.o ada/hostparm.o ada/interfac.o ada/krunch.o ada/lib.o ada/namet.o ada/nlists.o ada/opt.o ada/osint-b.o ada/osint.o ada/output.o ada/restrict.o ada/rident.o ada/s-addope.o ada/s-assert.o ada/s-carun8.o ada/s-casuti.o ada/s-conca2.o ada/s-conca3.o ada/s-conca4.o ada/s-conca5.o ada/s-conca6.o ada/s-conca7.o ada/s-conca8.o ada/s-conca9.o ada/s-crc32.o ada/s-crtl.o ada/s-excdeb.o ada/s-except.o ada/s-exctab.o ada/s-htable.o ada/s-imenne.o ada/s-imgenu.o ada/s-mastop.o ada/s-memory.o ada/s-parame.o ada/s-restri.o ada/s-secsta.o ada/s-soflin.o ada/s-sopco3.o ada/s-sopco4.o ada/s-sopco5.o ada/s-stache.o ada/s-stalib.o ada/s-stoele.o ada/s-strhas.o ada/s-strops.o ada/s-traceb.o ada/s-traent.o ada/s-unstyp.o ada/s-utf_32.o ada/s-wchcnv.o ada/s-wchcon.o ada/s-wchjis.o ada/scng.o ada/scans.o ada/scil_ll.o ada/sdefault.o ada/sem_aux.o ada/sinfo.o ada/sinput.o ada/sinput-c.o ada/snames.o ada/stand.o ada/stringt.o ada/switch-b.o ada/switch.o ada/style.o ada/styleg.o ada/stylesw.o ada/system.o ada/table.o ada/targparm.o ada/tree_io.o ada/types.o ada/uintp.o ada/uname.o ada/urealp.o ada/widechar.o ggc-none.o libcommon-target.a libcommon.a ../libcpp/libcpp.a -lintl -L/opt/sw64/lib -liconv ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -g -O2 -mdynamic-no-pic -flto=jobserver -frandom-seed=1 ada/b_gnatb.ads:8:4: warning: type of 'ada_main__gnat_envp' does not match original declaration [enabled by default] ../../_clean/gcc/ada/argv.c:65:14: note: previously declared here ../../_clean/gcc/ada/gnatbind.adb:480:7: warning: type of 'shared_libgnat_default' does not match original declaration [enabled by default] ../../_clean/gcc/ada/link.c:182:6: note: previously declared here ../../_clean/gcc/version.h:3:19: warning: type of 'version_string' does not match original declaration [enabled by default] ../../_clean/gcc/ada/gnatvsn.adb:57:4: note: previously declared here ../../_clean/gcc/ada/s-os_lib.adb:1092:7: warning: type of 'target_object_ext_ptr' does not match original declaration [enabled by default] ../../_clean/gcc/ada/targext.c:60:13: note: previously declared here ada/b_gnatb.adb:96:7: warning: type of 'task_dispatching_policy' does not match original declaration [enabled by default] ../../_clean/gcc/ada/init.c:98:7: note: previously declared here ada/b_gnatb.adb:104:7: warning: type of 'interrupt_states' does not match original declaration [enabled by default] ../../_clean/gcc/ada/init.c:101:7: note: previously declared here ../../_clean/gcc/ada/s-os_lib.adb:1062:7: warning: type of 'target_exec_ext_ptr' does not match original declaration [enabled by default] ../../_clean/gcc/ada/targext.c:61:13: note: previously declared here
[Bug target/50446] [avr] Implement rotate patterns with offset 1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50446 --- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-09-23 10:14:26 UTC --- Author: gjl Date: Fri Sep 23 10:14:23 2011 New Revision: 179116 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179116 Log: PR target/50446 * config/avr/avr.md (rotlqi3): Support all offsets 0..7. (rotlqi3_4): Turn insn into expander. (*rotlqi3): New insn. (rotlhi3, rotlsi3): Support rotate left/right by 1. (*rotlhi2.1, *rotlhi2.15): New insns. (*rotlsi2.1, *rotlsi2.31): New insns. * config/avr/constraints.md (C03, C05, C06, C07): New constraints. Modified: trunk/gcc/ChangeLog trunk/gcc/config/avr/avr.md trunk/gcc/config/avr/constraints.md
[Bug target/49992] lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49992 --- Comment #57 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-09-23 10:16:28 UTC --- I would appreciate some help with testing on Darwin 11 and with lto-bootstraps on Darwin 10 (since my resources are stretched to the limit right now). See pr50492 for bootstrap with --with-build-config=bootstrap-lto which blocks any testing of the patch with it. Without this option, the results are the same as those without the patch.
[Bug target/50446] [avr] Implement rotate patterns with offset 1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50446 Georg-Johann Lay gjl at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #3 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-09-23 10:17:11 UTC --- Closed for 4.7 milestone.
[Bug c++/50108] [C++0x] Variadic templates with both type and non-type parameters
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50108 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-09-23 11:03:05 UTC --- Invalid then.
[Bug c++/50400] compiler accepts invalid X::Impl::Impl::Impl::.....::foo
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50400 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-09-23 11:05:09 UTC --- Closing.
[Bug c++/50258] [C++0x] -std=gnu++0x should allow in-class initialization of static const floating types without constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50258 --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 11:27:49 UTC --- Jason, what are we going to do about this? For the record, something like the below would pass the testsuite... /// Index: cp/decl.c === --- cp/decl.c (revision 179115) +++ cp/decl.c (working copy) @@ -7716,8 +7716,9 @@ check_static_variable_definition (tree decl, tree else if (cxx_dialect = cxx0x !INTEGRAL_OR_ENUMERATION_TYPE_P (type)) { if (literal_type_p (type)) - error (%constexpr% needed for in-class initialization of static - data member %q#D of non-integral type, decl); + pedwarn (input_location, OPT_pedantic, +%constexpr% needed for in-class initialization of static +data member %q#D of non-integral type %qT, decl, type); else error (in-class initialization of static data member %q#D of non-literal type, decl);
[Bug c++/50117] [C++0x] Segmentation fault when using std::make_pair with std::ofstream
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50117 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||WORKSFORME --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 11:47:00 UTC --- Worksforme with r179116. It you see it again, please re-open, thanks.
[Bug lto/50492] [4.7 regression] Ada bootstrap failure --with-build-config=bootstrap-lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50492 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Known to work||4.6.1 Keywords||ice-on-valid-code Last reconfirmed||2011-09-23 Component|bootstrap |lto Host||x86_64-*-* Ever Confirmed|0 |1 Summary|Bootstrap failure on|[4.7 regression] Ada |x86_64-apple-darwin10 when |bootstrap failure |using |--with-build-config=bootstr |--with-build-config=bootstr |ap-lto |ap-lto | Target Milestone|--- |4.7.0 --- Comment #1 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-23 11:59:06 UTC --- I can reproduce on Linux.
[Bug lto/50492] [4.7 regression] Ada bootstrap failure --with-build-config=bootstrap-lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50492 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |ebotcazou at gcc dot |gnu.org |gnu.org --- Comment #2 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-23 11:59:56 UTC --- Investigating.
[Bug c++/45993] ICE in uses_template_parms, at cp/pt.c:7064
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45993 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work||4.6.2, 4.7.0 Resolution||WORKSFORME --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 12:15:54 UTC --- Worksforme in current mainline and 4_6-branch.
[Bug c++/50258] [C++0x] -std=gnu++0x should allow in-class initialization of static const floating types without constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50258 --- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-23 12:18:03 UTC --- How about using a permerror instead? Since it's deprecated, requiring users to give -fpermissive if they want to use it in C++11 seems reasonable to me.
[Bug c++/45853] Segfault while experimenting with c++-0x initializer lists
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45853 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||WORKSFORME --- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 12:26:37 UTC --- Let's close this.
[Bug lto/50492] [4.7 regression] Ada bootstrap failure --with-build-config=bootstrap-lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50492 --- Comment #3 from Iain Sandoe iains at gcc dot gnu.org 2011-09-23 12:28:21 UTC --- also on i686-darwin9.
[Bug c++/45855] switched ; and : causes compile crash
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45855 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME --- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 12:31:26 UTC --- Let's close this too, then.
[Bug lto/50492] [4.7 regression] Ada bootstrap failure --with-build-config=bootstrap-lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50492 Jack Howarth howarth at nitro dot med.uc.edu changed: What|Removed |Added CC||howarth at nitro dot ||med.uc.edu --- Comment #4 from Jack Howarth howarth at nitro dot med.uc.edu 2011-09-23 12:39:03 UTC --- This is a duplicate of PR50279.
[Bug c++/45755] [C++0x] Member function template is instantiated to perform the copy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45755 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Summary|Member function template is |[C++0x] Member function |instantiated to perform the |template is instantiated to |copy|perform the copy --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 12:41:24 UTC --- This is still behaving the same, and I can't believe GCC is still wrong vs the current C++0x, aka C++11. Can you double check?
[Bug c++/45382] internal compiler error: tree code ‘call_expr’ is not supported in gimple streams
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45382 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||WORKSFORME --- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 12:42:38 UTC --- Let's close this.
[Bug lto/50394] [meta-bug] Issues with building libreoffice with LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50394 --- Comment #25 from Markus Trippelsdorf markus at trippelsdorf dot de 2011-09-23 12:42:26 UTC --- New ICE with today's gcc and today's libreoffice: [ build PAG ] writer [ build LNK ] Executable/oosplash [ build LNK ] Library/libspl_unxlo.so [ build CMP ] desktop/unx/splash/splash [ build CMP ] desktop/unx/splash/splash [ build LNK ] Library/libevtattlo.so [ build CMP ] eventattacher/source/evtatt [ build CMP ] eventattacher/source/evtatt [ build LNK ] Library/libfileacc.so [ build CMP ] fileaccess/source/fileacc [ build CMP ] fileaccess/source/fileacc [ build LNK ] Library/libfrmlo.so [ build CMP ] forms/util/frm [ build CMP ] forms/util/frm [ build LNK ] Library/libforlo.so [ build CMP ] formula/util/for [ build CMP ] formula/util/for [ build LNK ] Library/libhwplo.so [ build CMP ] hwpfilter/source/hwp In file included from /var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/solver/unxlngx6.pro/inc/cppu/unotype.hxx:3740:0, from :3330: /var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/dbaccess/source/core/api/table.cxx: In member function 'columnDropped': /var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/dbaccess/source/core/api/table.cxx:158:1: internal compiler error: in redirect_jump, at jump.c:1497 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. make[2]: *** [/var/tmp/portage/app-office/libreoffice--r1/temp/ccoLHzyy.ltrans2.ltrans.o] Error 1 make[2]: *** Waiting for unfinished jobs lto-wrapper: make returned 2 exit status /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: fatal error: lto-wrapper failed collect2: error: ld returned 1 exit status make[1]: *** [/var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/workdir/unxlngx6.pro/LinkTarget/Library/libdbalo.so] Error 1 make[1]: *** Waiting for unfinished jobs...
[Bug c++/44906] g++ is giving error: parse error in template argument list while using a c++ code.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44906 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 12:43:53 UTC --- Closing as invalid.
[Bug c++/50258] [C++0x] -std=gnu++0x should allow in-class initialization of static const floating types without constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50258 --- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 12:45:43 UTC --- Of course would work for me.
[Bug c++/45755] [C++0x] Member function template is instantiated to perform the copy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45755 --- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-23 12:55:23 UTC --- That wording was changed to clarify that it means a template will never be instantiated to produce S::S(S), it does not mean a template cannot be used to perform copies, see http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1080 I beleive G++ is correct here, the constructor is instantied with T = S, to produce S::S(S) which is a valid constructor for copy-initialization
[Bug c++/45755] [C++0x] Member function template is instantiated to perform the copy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45755 --- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-23 12:56:54 UTC --- ... so I think this is a dup of PR 46004
[Bug c++/46004] [C++0x] template constructor used to copy object
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46004 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added CC||boostcpp at gmail dot com --- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-23 12:58:17 UTC --- *** Bug 45755 has been marked as a duplicate of this bug. ***
[Bug c++/45755] [C++0x] Member function template is instantiated to perform the copy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45755 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE --- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2011-09-23 12:58:16 UTC --- . *** This bug has been marked as a duplicate of bug 46004 ***
[Bug c++/50258] [C++0x] -std=gnu++0x should allow in-class initialization of static const floating types without constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50258 --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2011-09-23 13:07:33 UTC --- permerror sounds good to me.
[Bug c++/45755] [C++0x] Member function template is instantiated to perform the copy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45755 --- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 13:09:22 UTC --- Ah, great, quite misleading indeed.
[Bug c++/50258] [C++0x] -std=gnu++0x should allow in-class initialization of static const floating types without constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50258 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011-09-23 AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot |gnu.org |com Ever Confirmed|0 |1 --- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 13:13:28 UTC --- Ok, let me test that + testcase.
[Bug regression/50472] Volatile qualification in data is not enough to avoid optimization over pointer to data
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50472 --- Comment #2 from Paulo J. Matos Paulo.Matos at csr dot com 2011-09-23 13:18:10 UTC --- (In reply to comment #1) Duplicate of PR50078? Might be but I can't confirm. Surely we will know once Mat fixes PR50078.
[Bug tree-optimization/49601] [4.7 Regression] ICE at ipa-inline-analysis.c:1188
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49601 Paulo J. Matos Paulo.Matos at csr dot com changed: What|Removed |Added CC||Paulo.Matos at csr dot com --- Comment #3 from Paulo J. Matos Paulo.Matos at csr dot com 2011-09-23 13:19:33 UTC --- Richard raised concerns about this PR being an old bug and already fixed. Initially I only confirmed it in 4.6.1 but I can reproduce it in git head 36181f98f (that's from 30mins ago).
[Bug regression/50472] Volatile qualification in data is not enough to avoid optimization over pointer to data
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50472 Paulo J. Matos Paulo.Matos at csr dot com changed: What|Removed |Added CC||Paulo.Matos at csr dot com --- Comment #3 from Paulo J. Matos Paulo.Matos at csr dot com 2011-09-23 13:20:57 UTC --- Richard raised concerns about this PR being an old bug and already fixed. Initially I only confirmed it in 4.6.1 but I can reproduce it in git head 36181f98f (that's from 30mins ago).
[Bug tree-optimization/49601] [4.7 Regression] ICE at ipa-inline-analysis.c:1188
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49601 --- Comment #4 from Paulo J. Matos Paulo.Matos at csr dot com 2011-09-23 13:22:15 UTC --- (In reply to comment #3) Richard raised concerns about this PR being an old bug and already fixed. Initially I only confirmed it in 4.6.1 but I can reproduce it in git head 36181f98f (that's from 30mins ago). Ignore previous comment. Wrong bug.
[Bug tree-optimization/49601] [4.7 Regression] ICE at ipa-inline-analysis.c:1188
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49601 --- Comment #5 from Jan Hubicka hubicka at gcc dot gnu.org 2011-09-23 13:29:23 UTC --- I believe I fixed this one, will double check.
[Bug tree-optimization/49601] [4.7 Regression] ICE at ipa-inline-analysis.c:1188
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49601 Jan Hubicka hubicka at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||WORKSFORME --- Comment #6 from Jan Hubicka hubicka at gcc dot gnu.org 2011-09-23 13:33:00 UTC --- Seems it is indeed fixed.
[Bug tree-optimization/10980] vararg functions are not inlined
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10980 Ruben Van Boxem vanboxem.ruben at gmail dot com changed: What|Removed |Added CC||vanboxem.ruben at gmail dot ||com --- Comment #7 from Ruben Van Boxem vanboxem.ruben at gmail dot com 2011-09-23 13:34:52 UTC --- This problem popped up when compiling LLVM's libc++: M:\Development\Source\libc++\src\locale.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default] M:\Development\Source\libc++\include/locale: In function 'int std::__1::__asprintf_l(char**, _locale_t, const char*, ...)': M:\Development\Source\libc++\include/locale:372:5: sorry, unimplemented: function 'int std::__1::__asprintf_l(char**, _locale_t, const char*, ...)' can never be inlined because it uses variable argument lists M:\Development\Source\libc++\include/locale: In function 'int std::__1::__sprintf_l(char*, _locale_t, const char*, ...)': M:\Development\Source\libc++\include/locale:344:5: sorry, unimplemented: function 'int std::__1::__sprintf_l(char*, _locale_t, const char*, ...)' can never be inlined because it uses variable argument lists M:\Development\Source\libc++\include/locale: In function 'int std::__1::__snprintf_l(char*, size_t, _locale_t, const char*, ...)': M:\Development\Source\libc++\include/locale:358:5: sorry, unimplemented: function 'int std::__1::__snprintf_l(char*, size_t, _locale_t, const char*, ...)' can never be inlined because it uses variable argument lists M:\Development\Source\libc++\include/locale: In function 'int std::__1::__sscanf_l(const char*, _locale_t, const char*, ...)': M:\Development\Source\libc++\include/locale:386:5: sorry, unimplemented: function 'int std::__1::__sscanf_l(const char*, _locale_t, const char*, ...)' can never be inlined because it uses variable argument lists The code can be found here: http://llvm.org/svn/llvm-project/libcxx/trunk/include/locale
[Bug tree-optimization/10980] vararg functions are not inlined
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10980 --- Comment #8 from Jan Hubicka hubicka at ucw dot cz 2011-09-23 13:40:55 UTC --- This problem popped up when compiling LLVM's libc++: M:\Development\Source\libc++\src\locale.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default] M:\Development\Source\libc++\include/locale: In function 'int std::__1::__asprintf_l(char**, _locale_t, const char*, ...)': M:\Development\Source\libc++\include/locale:372:5: sorry, unimplemented: function 'int std::__1::__asprintf_l(char**, _locale_t, const char*, ...)' can never be inlined because it uses variable argument lists M:\Development\Source\libc++\include/locale: In function 'int std::__1::__sprintf_l(char*, _locale_t, const char*, ...)': It seems wrong to add always_inline attribute on something like this. I am not aware that LLVM would be inlining variadic function either (even though it is doable in some trivial cases) Honza
[Bug tree-optimization/10980] vararg functions are not inlined
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10980 --- Comment #9 from Ruben Van Boxem vanboxem.ruben at gmail dot com 2011-09-23 13:46:27 UTC --- Current Clang compiled everything without a hitch. It might ignore the attribute, I haven't checked. Perhaps this error should be made a warning?
[Bug c++/44906] g++ is giving error: parse error in template argument list while using a c++ code.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44906 --- Comment #8 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-09-23 13:59:07 UTC --- (In reply to comment #6) Honestly, nothing similar will happen any time soon, it means changing completely the semantics of templates. Maybe we can produce a better diagnostics, let's add Manuel in CC to hear his opinion... The code is invalid but the diagnostic could be much better (I only have GCC 4.5.2, so perhaps it is better in trunk). Smaller testcase: templatetypename T class MISC{ public: T vec1; templateT* vc void addVecVals(){}; void add(void) { addVecValsvec1(); }; }; void foo(void) { MISCint m; m.add(); } Clang++ gives a somewhat better message: /tmp/webcompile/_14512_0.cc:6:22: error: no matching member function for call to 'addVecVals' void add(void) { addVecValsvec1(); }; ^ /tmp/webcompile/_14512_0.cc:11:7: note: in instantiation of member function 'MISCint::add' requested here m.add(); ^ /tmp/webcompile/_14512_0.cc:5:26: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'vc' templateT* vc void addVecVals(){}; ^ 1 error generated. I would argue for reopening it...
Re: [Bug tree-optimization/10980] vararg functions are not inlined
I bet it just ignores the attribute that is not how the attribute is supposed to work. We output error in this case intentionally (and warning in at the same spot if function is declared inline and -Winline is given). Functions marked always_inlined really ought to be always inlined and attribute is supposed to be useable in the cases where compilation would fail otherwise (such as SSE buitins). Our documentation is however not particularly clear here, perhaps it should be updated... Honza
[Bug tree-optimization/10980] vararg functions are not inlined
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10980 --- Comment #10 from Jan Hubicka hubicka at ucw dot cz 2011-09-23 14:10:53 UTC --- I bet it just ignores the attribute that is not how the attribute is supposed to work. We output error in this case intentionally (and warning in at the same spot if function is declared inline and -Winline is given). Functions marked always_inlined really ought to be always inlined and attribute is supposed to be useable in the cases where compilation would fail otherwise (such as SSE buitins). Our documentation is however not particularly clear here, perhaps it should be updated... Honza
[Bug target/50493] New: ICE in neon_disambiguate_copy, at config/arm/arm.c:20388
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50493 Bug #: 50493 Summary: ICE in neon_disambiguate_copy, at config/arm/arm.c:20388 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: rmansfi...@qnx.com Host: x86_64-linux-gnu Target: arm-unknown-linux-gnueabi Build: x86_64-linux-gnu Created attachment 25347 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25347 preprocessed source $ ./xgcc -v Using built-in specs. COLLECT_GCC=./xgcc Target: arm-unknown-linux-gnueabi Configured with: ../configure --target=arm-unknown-linux-gnueabi --prefix=/home/ryan/x-tools/arm-unknown-linux-gnueabi --with-sysroot=/home/ryan/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi//sys-root --disable-multilib --with-local-prefix=/home/ryan/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace target_alias=arm-unknown-linux-gnueabi --enable-languages=c++ --disable-shared --disable-libmudflap --disable-libssp Thread model: posix gcc version 4.7.0 20110923 (experimental) [trunk revision 179117] (GCC) $ ./xgcc -B. -O3 -mfpu=neon -mfloat-abi=softfp ~/ice.i -fpic /home/ryan/ice.i: In function 'SetupUSEVertexShader': /home/ryan/ice.i:342:38: warning: incompatible implicit declaration of built-in function 'calloc' [enabled by default] /home/ryan/ice.i:353:1: internal compiler error: in neon_disambiguate_copy, at config/arm/arm.c:20388 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions.
[Bug target/50494] New: gcc.dg/vect/vect-reduc-2char.c fails spuriously on ppc with -flto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50494 Bug #: 50494 Summary: gcc.dg/vect/vect-reduc-2char.c fails spuriously on ppc with -flto Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: vr...@gcc.gnu.org The testcase contains 2 char array initializers: ... __attribute__ ((noinline)) void main1 (signed char x, signed char max_result, signed char min_result) { int i; signed char b[N] = {1,2,3,6,8,10,12,14,16,18,20,22,24,26,28,30}; signed char c[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; ... The initializer data is put into .rodata, and copied to stack at the start of the function by 2 blockmoves. When we do expand_block_move during cc1, the blockmove source looks like this as a tree: ... var_decl 0xf7e37180 *.LC0 type array_type 0xf7e317e0 type integer_type 0xf7d53180 signed char sizes-gimplified public string-flag QI size integer_cst 0xf7d406c8 constant 8 unit size integer_cst 0xf7d406e4 constant 1 align 8 symtab 0 alias set 0 canonical type 0xf7d53180 precision 8 min integer_cst 0xf7d40674 -128 max integer_cst 0xf7d406ac 127 pointer_to_this pointer_type 0xf7e31840 sizes-gimplified BLK size integer_cst 0xf7d409f4 constant 128 unit size integer_cst 0xf7d40a10 constant 16 align 8 symtab 0 alias set 0 canonical type 0xf7e317e0 domain integer_type 0xf7e1ff00 type integer_type 0xf7d53000 sizetype sizes-gimplified SI size integer_cst 0xf7d40508 constant 32 unit size integer_cst 0xf7d40524 constant 4 align 32 symtab 0 alias set -1 canonical type 0xf7e1ff00 precision 32 min integer_cst 0xf7d40540 0 max integer_cst 0xf7e1c524 15 pointer_to_this pointer_type 0xf7e37780 readonly used static ignored in-constant-pool BLK file (null) line 0 col 0 size integer_cst 0xf7d409f4 128 unit size integer_cst 0xf7d40a10 16 user align 128 initial constructor 0xf7db5860 (mem/s/c:BLK (symbol_ref/f:SI (*.LC0) [flags 0x82] var_decl 0xf7e37180 *.LC0) [1 S16 A8]) ... and like this as rtl: ... (mem/s/c:BLK (reg/f:SI 180) [1 S16 A8]) ... This case is chosen in expand_block_move, and the blockmoves are expanded as 4-byte wordmoves. ... else if (bytes = 4 (align = 32 || !STRICT_ALIGNMENT)) {/* move 4 bytes */ move_bytes = 4; mode = SImode; gen_func.mov = gen_movsi; } ... The .rodata section written by cc1 has align 2^4 == 16 bytes. ... .section.rodata .align 4 .set.LANCHOR0,. + 0 .LC0: .byte1 .byte2 ... However, when we do expand_block_move during lto1, the blockmove source looks like this as a tree: ... mem_ref 0xf7dc76c8 type array_type 0xf7dc67e0 type integer_type 0xf7d51180 signed char public string-flag QI size integer_cst 0xf7d4071c constant 8 unit size integer_cst 0xf7d40738 constant 1 align 8 symtab 0 alias set -1 canonical type 0xf7d51180 precision 8 min integer_cst 0xf7d406ac -128 max integer_cst 0xf7d40700 127 pointer_to_this pointer_type 0xf7dce8a0 BLK size integer_cst 0xf7d40a48 constant 128 unit size integer_cst 0xf7d40a64 constant 16 align 8 symtab 0 alias set 0 canonical type 0xf7dc67e0 domain integer_type 0xf7dc6840 type integer_type 0xf7d51000 sizetype SI size integer_cst 0xf7d40524 constant 32 unit size integer_cst 0xf7d40540 constant 4 align 32 symtab 0 alias set -1 canonical type 0xf7d51360 precision 32 min integer_cst 0xf7d4055c 0 max integer_cst 0xf7dc7118 15 pointer_to_this pointer_type 0xf7dc6a20 readonly arg 0 addr_expr 0xf7dc0a38 type pointer_type 0xf7dc6a20 type array_type 0xf7dc67e0 public unsigned SI size integer_cst 0xf7d40524 32 unit size integer_cst 0xf7d40540 4 align 32 symtab 0 alias set -1 canonical type 0xf7dc6a20 readonly constant arg 0 var_decl 0xf7dc6780 *.LC0 type array_type 0xf7dc67e0 readonly used static ignored in-constant-pool BLK file (null) line 0 col 0 size integer_cst 0xf7d40a48 128 unit size integer_cst 0xf7d40a64 16 user align 128 initial constructor 0xf7dc51f0 (mem/s/c:BLK (symbol_ref/f:SI (*.LC0) [flags 0x82] var_decl 0xf7dd9060 *.LC0) [1 S16 A8]) arg 1 integer_cst 0xf7dc76e4 type pointer_type 0xf7dc6a20 constant 0 /scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/src/gcc-mainline/gcc/testsuite/gcc.dg/vect/vect-reduc-2char.c:11:15 ... and like this as rtx: ... (mem/s/u/c:BLK (reg/f:SI 180) [0 *.LC0+0 S16 A128]) ... This case is now chosen in expand_block_move, and the blockmoves are expanded as 16-byte
[Bug c++/44906] g++ is giving error: parse error in template argument list while using a c++ code.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44906 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|RESOLVED|REOPENED Last reconfirmed||2011-09-23 Resolution|INVALID | Ever Confirmed|0 |1 --- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 14:43:26 UTC --- Hey, you woke up! ;) Sure, let's re-open is a diagnostic issue, your call.
[Bug c++/50495] New: Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 Bug #: 50495 Summary: Optimize exact matches in overload resolution Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: math...@gaunard.com Overload resolution in GCC (and in C++ in general) is quite slow, and I would like to suggest the following enhancement: look-up (in constant or logarithmic time) for exact matches first, then perform regular overload resolution if necessary. The idea is that struct id_0 {}; void f(id_0); struct id_1; void f(id_1) {}; ... and then calling f(id_x()); should be as fast as void f_0(); void f_1(); ... and then calling f_x(); Now if this could be made to work for things like struct h0 {}; struct h1 : h0 {}; struct id_0 {}; templateclass T void f(id_0, h0T); templateclass T void f(id_0, h1T); to reduce the set of possible overloads to 2 early (templates inserted to make it non-absolutely orderable), that would be perfect. According to my benchmarks, resolving a function with an exact match on the first argument among 1,000 tags with 10 overloads each takes 30s, while with 1,000 differently named functions of 10 overloads each it takes 100ms.
[Bug target/50494] gcc.dg/vect/vect-reduc-2char.c fails spuriously on ppc with -flto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50494 --- Comment #1 from vries at gcc dot gnu.org 2011-09-23 14:52:55 UTC --- Created attachment 25348 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25348 test.c minimized from gcc.dg/vect/vect-reduc-2char.c To reproduce: $ powerpc-linux-gnu-gcc -O2 -ftree-vectorize test.c -flto -maltivec -static $ ./a.out ; echo $? 218 The problematic code is still generated without -static, but for me this minimal testcase does not fail runtime without the -static.
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||jason at gcc dot gnu.org --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 14:54:15 UTC --- At some point Jason mentioned that other improvements were in principle possible beyond those already implemented relatively recently. No idea if this has been considered already...
[Bug target/50494] gcc.dg/vect/vect-reduc-2char.c fails spuriously on ppc with -flto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50494 --- Comment #2 from vries at gcc dot gnu.org 2011-09-23 15:05:19 UTC --- Same issue occurs for gcc.dg/vect/pr44507.c with -m64.
[Bug lto/50492] [4.7 regression] Ada bootstrap failure --with-build-config=bootstrap-lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50492 --- Comment #5 from Iain Sandoe iains at gcc dot gnu.org 2011-09-23 15:06:41 UTC --- two more data points: 1/ powerpc-darwin9 also fails, so this is not x86-centric. 2/ the following succeeded. Target: i686-apple-darwin9 Configured with: /GCC/gcc-4-6-branch/configure --prefix=/GCC/gcc-4-6-install --target=i686-apple-darwin9 --host=i686-apple-darwin9 --build=i686-apple-darwin9 --enable-version-specific-runtime-libs --enable-checking=release --with-gmp=/GCC/multiprec-math/x86 --with-mpfr=/GCC/multiprec-math/x86 --with-mpc=/GCC/multiprec-math/x86 --with-libiconv-prefix=/usr --enable-languages=all,ada,java,obj-c++ --with-build-config='bootstrap-lto bootstrap-debug' Thread model: posix gcc version 4.6.2 20110923 (prerelease) [gcc-4_6-branch revision 179117] (GCC)
[Bug middle-end/50481] builtin to reverse the bit order
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50481 Jonathan Schmidt-Dominé de...@the-user.org changed: What|Removed |Added CC||de...@the-user.org --- Comment #1 from Jonathan Schmidt-Dominé de...@the-user.org 2011-09-23 15:30:33 UTC --- Informative web-page listing some methods: http://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith64BitsDiv
[Bug lto/50496] New: [4.7 regression] ICE in redirect_jump, at jump.c:1497
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50496 Bug #: 50496 Summary: [4.7 regression] ICE in redirect_jump, at jump.c:1497 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: mar...@trippelsdorf.de This ICE happened while compiling LibreOffice with --enable-lto. # g++ -r -nostdlib CRowSetColumn.ii CRowSetDataColumn.ii datacolumn.ii definitioncolumn.ii table.ii -flto -std=c++0x -O2 In file included from /var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/solver/unxlngx6.pro/inc/comphelper/IdPropArrayHelper.hxx:231:0, from :631: /var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/dbaccess/source/core/api/table.cxx: In member function ‘columnDropped’: /var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/dbaccess/source/core/api/table.cxx:158:1: internal compiler error: in redirect_jump, at jump.c:1497 Please submit a full bug report I will try to reduce the .ii files further.
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 --- Comment #2 from Mathias Gaunard mathias at gaunard dot com 2011-09-23 15:46:50 UTC --- Would you happen to have a reference to those changes or discussed improvements? I'm not testing with a very recent GCC.
[Bug lto/50496] [4.7 regression] ICE in redirect_jump, at jump.c:1497
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50496 --- Comment #1 from Markus Trippelsdorf markus at trippelsdorf dot de 2011-09-23 15:50:00 UTC --- Testcase is too big ATM: 1193 kilobytes. Will post reduced testcase later.
[Bug lto/50394] [meta-bug] Issues with building libreoffice with LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50394 --- Comment #26 from Markus Trippelsdorf markus at trippelsdorf dot de 2011-09-23 15:52:02 UTC --- (In reply to comment #25) New ICE with today's gcc and today's libreoffice: /var/tmp/portage/app-office/libreoffice--r1/work/libreoffice-core-/dbaccess/source/core/api/table.cxx:158:1: internal compiler error: in redirect_jump, at jump.c:1497 This is now PR50496. I'm still reducing with delta.
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-09-23 Ever Confirmed|0 |1 --- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2011-09-23 15:58:12 UTC --- I recently made a number of improvements that will be in 4.7.0; see PR 48481. It certainly would be possible to do more optimization: 1) Once we have seen a valid exact match, quickly disqualify any later candidates that are not. 2) Try to find that exact match faster with a hash or splay tree lookup. #2 would only be useful for large overload sets, but #1 could be a minor optimization for all code.
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 --- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2011-09-23 16:00:37 UTC --- (In reply to comment #3) I recently made a number of improvements that will be in 4.7.0; see PR 48481. The fn_set change in particular should cut your overload resolution time by 50%. The other changes are to avoid memory bloat, which may or may not affect you.
[Bug libgomp/50386] [4.7 Regression] libgomp.h:87:5: error: unnamed struct/union that defines no instances
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50386 --- Comment #5 from dave.anglin at bell dot net 2011-09-23 16:04:18 UTC --- On 9/20/2011 6:32 PM, ramana at gcc dot gnu.org wrote: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50386 --- Comment #4 from Ramana Radhakrishnanramana at gcc dot gnu.org 2011-09-20 22:32:49 UTC --- I think this is a bootstrap issue rather than a problem with libgomp . A reduced testcase of this form fails with the stage2 compiler but is ok with the stage1 compiler. struct gomp_work_share { /* This member records the SCHEDULE clause to be used for this construct. The user specification of runtime will already have been resolved. If this is a SECTIONS construct, this value will always be DYNAMIC. */ union { struct { /* This is the chunk_size argument to the SCHEDULE clause. */ long chunk_size; /* This is the iteration end point. If this is a SECTIONS construct, this is the number of contained sections. */ long end; /* This is the iteration step. If this is a SECTIONS construct, this is always 1. */ long incr; }u; }; }a; Where the stage2 compiler goes : /home/4/t1.i:21:3: warning: unnamed struct/union that defines no instances [enabled by default] and the stage1 compiler goes quietly. Could you check if you see similar behaviour ? Yes, exactly. I noted in my original report that the error occurred in stage2. While not fully confirmed, it looks like this was introduced by r178692. Dave
[Bug c++/50258] [C++0x] -std=gnu++0x should allow in-class initialization of static const floating types without constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50258 --- Comment #7 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 2011-09-23 16:20:00 UTC --- Author: paolo Date: Fri Sep 23 16:19:52 2011 New Revision: 179121 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179121 Log: /cp 2011-09-23 Paolo Carlini paolo.carl...@oracle.com PR c++/50258 * decl.c (check_static_variable_definition): Allow in-class initialization of static data member of non-integral type in permissive mode. /testsuite 2011-09-23 Paolo Carlini paolo.carl...@oracle.com PR c++/50258 * g++.dg/cpp0x/constexpr-static8.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-static8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl.c trunk/gcc/testsuite/ChangeLog
[Bug c++/50258] [C++0x] -std=gnu++0x should allow in-class initialization of static const floating types without constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50258 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #8 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 16:22:32 UTC --- Done.
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 --- Comment #5 from Mathias Gaunard mathias at gaunard dot com 2011-09-23 16:38:11 UTC --- clang was already 50% faster in my tests, so I guess that will put gcc 4.7 on par with it.
[Bug target/50447] [avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50447 --- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-09-23 17:02:20 UTC --- Author: gjl Date: Fri Sep 23 17:02:10 2011 New Revision: 179123 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179123 Log: PR target/50447 * config/avr/avr.md: (adjust_len): Add alternative out_plus. (addsi3): Rewrite using QI scratch register. Adjust text peepholes using plus:SI. (*addsi3_zero_extend.hi): New insn. (*subsi3_zero_extend.hi): New insn. (*subhi3_zero_extend1): Set attribute cc to set_czn. (*subsi3_zero_extend): Ditto. (subsi3): Change predicate #2 to register_operand. * config/avr/avr-protos.h (avr_out_plus): New prototype. (avr_out_plus_1): New static function. (avr_out_plus): New function. (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS. Modified: trunk/gcc/ChangeLog trunk/gcc/config/avr/avr-protos.h trunk/gcc/config/avr/avr.c trunk/gcc/config/avr/avr.md
[Bug target/50447] [avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50447 --- Comment #3 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-09-23 17:06:49 UTC --- Author: gjl Date: Fri Sep 23 17:06:44 2011 New Revision: 179124 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179124 Log: * config/avr/avr.md (adjust_len): Add alternatives tsthi, tstsi, compare. (*cmpqi_sign_extend): Use s8_operand. (*cmphi, *cmpsi): Rewrite using avr_out_compare. * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove prototypes. (out_tsthi, out_tstsi): Remove prototypes. (avr_out_tsthi, avr_out_tstsi): New prototypes. * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions. (avr_asm_len): Negative length now sets *plen to -length. (compare_sign_p): Return bool instead of int. (compare_diff_p, compare_eq_p): Ditto and make static. (avr_out_tsthi): New function. (avr_out_tstsi): New function. (avr_out_compare): New function. (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI, ADJUST_LEN_COMPARE. PR target/50447 Modified: trunk/gcc/ChangeLog trunk/gcc/config/avr/avr-protos.h trunk/gcc/config/avr/avr.c trunk/gcc/config/avr/avr.md
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 --- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 17:08:57 UTC --- By the way, since apparently you ran actual benchmarks, some testcases (and relative numbers?) would not hurt here...
[Bug target/50447] [avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50447 Georg-Johann Lay gjl at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #4 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-09-23 17:11:06 UTC --- Closed this one as fixed for 4.7 trunk.
[Bug debug/50497] New: gcc 4.6.x '-g' option no longer emits the .debug_pubnames section
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50497 Bug #: 50497 Summary: gcc 4.6.x '-g' option no longer emits the .debug_pubnames section Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: critical Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: g...@cray.com Our performance tool collection relies on the DWARF .debug_pubnames section to quickly find global symbols. As of GCC 4.6.0 this section is no longer emitted when -g is specified, imposing an unnecessary hardship upon the performance tools. Signification problems it causes includes: 1. preventing users of the tool to instrument entry points in user-defined source code (although -finstrument-functions can circumvent this it requires a re-compilation of source not previously required) 2. imposing a severe processing overhead penalty if using other means to gather subprogram details for all globally defined entry points This bug requests that the .debug_pubnames section again be emitted when -g is specified. Otherwise, an option should be provided that will allow this as I am sure other tools have experienced this imposition of a seemingly short-sided decision (and least I can not find any logical reason why this section was removed) Test case: $ cat abc.c void a () { } void b () { } void c () { } $ ** Here is GCC 4.5.3 working: ** $ gcc --version gcc (GCC) 4.5.3 20110428 (Cray Inc.) Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ dwarfdump abc.o snip .debug_pubnames global a die-in-sect 45, cu-in-sect 11, die-in-cu 45, cu-header-in -sect 0 global b die-in-sect 71, cu-in-sect 11, die-in-cu 71, cu-header-in -sect 0 global c die-in-sect 97, cu-in-sect 11, die-in-cu 97, cu-header-in -sect 0 .debug_macinfo snip ** Here is GCC 4.6.1 not working: ** $ gcc --version gcc (GCC) 4.6.1 20110627 (Cray Inc.) Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc -c -g abc.c $ dwarfdump abc.o snip .debug_pubnames .debug_macinfo snip
[Bug debug/50497] gcc 4.6.x '-g' option no longer emits the .debug_pubnames section
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50497 --- Comment #1 from Geir Johansen geir at cray dot com 2011-09-23 17:20:49 UTC --- If there is some workaround that will enable previous behavior please add that to this bug.
[Bug debug/50497] gcc 4.6.x '-g' option no longer emits the .debug_pubnames section
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50497 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Severity|critical|normal --- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2011-09-23 17:30:31 UTC --- http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02089.html I think we should close this as won't fix as only 4.5.x implemented debug_pubnames and if I read the above there it was broken too.
[Bug rtl-optimization/50489] [UPC/IA64] mis-schedule of MEM ref with -ftree-vectorize and -fschedule-insns2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50489 --- Comment #4 from Gary Funck gary at intrepid dot com 2011-09-23 17:38:18 UTC --- (In reply to comment #3) Does the problem vanish if you add -fno-strict-aliasing? One more thing, you mention -O2 in the flags, but then refer to selective scheduler, which is only enabled at -O3. Perhaps you meant Haifa scheduler. The tests still fail with -O3 -fno-strict-aliasing. They pass with -O3 -fno-schedule-insns2. We mentioned -O2 in the bug report, because it helped rule out other optimizations that -O3 might imply. Then we selectively added -ftree-vectorize and -fschedule-insns2 to demonstrate that the combination of those additional optimizations will demonstrate the mis-scheduling. If there are additional tests that you suggest that we can run to help narrow this down, let us know, and we'll try to provide that additional information. Also, we can provide a script to run gdb on cc1upc, if that helps. Thanks.
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 --- Comment #7 from Mathias Gaunard mathias at gaunard dot com 2011-09-23 17:56:48 UTC --- Created attachment 25349 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25349 Python script to generate C++ files with many overloads Syntax is ./generate.py [use single function for everything (1 or 0)] [number of function tags] [number of overloads per function tag] [inheritance depth for the arguments (must be higher than number of overloads per function tag)] [arity of the functions]
[Bug c++/50495] Optimize exact matches in overload resolution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50495 --- Comment #8 from Mathias Gaunard mathias at gaunard dot com 2011-09-23 17:58:41 UTC --- Created attachment 25350 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25350 Bash script to more easily drive python script Same usage as generate.py, but doesn't take the first argument
[Bug target/50498] New: __sync_bool_compare_and_swap_16 isn't supported for x86_64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50498 Bug #: 50498 Summary: __sync_bool_compare_and_swap_16 isn't supported for x86_64 Classification: Unclassified 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 Target: x86_64 [hjl@gnu-6 tmp]$ gcc -S -O2 y.c [hjl@gnu-6 tmp]$ cat y.s .filey.c .text .p2align 4,,15 .globlf8 .typef8, @function f8: .LFB0: .cfi_startproc xorl%eax, %eax movl$1, %edx lock cmpxchgq%rdx, -8(%rsp) ret .cfi_endproc .LFE0: .sizef8, .-f8 .p2align 4,,15 .globlf16 .typef16, @function f16: .LFB1: .cfi_startproc subq$24, %rsp .cfi_def_cfa_offset 32 movl$1, %ecx xorl%r8d, %r8d movq%rsp, %rdi xorl%esi, %esi xorl%edx, %edx call__sync_bool_compare_and_swap_16 addq$24, %rsp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE1: .sizef16, .-f16 .identGCC: (GNU) 4.6.0 20110603 (Red Hat 4.6.0-10) .section.note.GNU-stack,,@progbits [hjl@gnu-6 tmp]$ gcc -S -O2 y.c -m32 [hjl@gnu-6 tmp]$ cat y.s .filey.c .text .p2align 4,,15 .globlf8 .typef8, @function f8: .LFB0: .cfi_startproc pushl%ebx .cfi_def_cfa_offset 8 .cfi_offset 3, -8 xorl%eax, %eax subl$16, %esp .cfi_def_cfa_offset 24 xorl%edx, %edx movl$1, %ebx xorl%ecx, %ecx lock cmpxchg8b8(%esp) addl$16, %esp .cfi_def_cfa_offset 8 popl%ebx .cfi_def_cfa_offset 4 .cfi_restore 3 ret .cfi_endproc .LFE0: .sizef8, .-f8 .identGCC: (GNU) 4.6.0 20110603 (Red Hat 4.6.0-10) .section.note.GNU-stack,,@progbits [hjl@gnu-6 tmp]$ I am using cmpxchg16b for __sync_bool_compare_and_swap_16.
[Bug target/50498] __sync_bool_compare_and_swap_16 isn't supported for x86_64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50498 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME --- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2011-09-23 19:14:05 UTC --- Never mind. CMPXCHG16B isn't enabled by default.
[Bug lto/50496] [4.7 regression] ICE in redirect_jump, at jump.c:1497
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50496 --- Comment #2 from Markus Trippelsdorf markus at trippelsdorf dot de 2011-09-23 19:50:31 UTC --- Created attachment 25351 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25351 testcase Somewhat reduced testcase.
[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 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Keywords||ice-on-valid-code, lto Component|lto |middle-end Target Milestone|--- |4.7.0
Re: version `GLIBC_2.14' not found (required by build/genhooks)
On Thursday 22 September 2011 11:56:12 Teodori Serge wrote: Hello, I'm building a toolchain in /opt dir. I have already build and installed glibc-2.14 and binutils-2.21.1a in /opt. Now I want to build and install gcc-4.6.1 with gmp, mpfr and mpc also in /opt. Here is my configure: ../gcc-4.6.1/configure --prefix=/tools --disable-nls --disable-shared --disable-multilib --disable-decimal-float --disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath --disable-target-libiberty --disable-target-zlib --enable-languages=c --without-ppl --without-cloog Here is the last output of my build: build/genhooks tmp-target-hooks-def.h build/genhooks: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by build/genhooks) make[3]: *** [s-target-hooks-def-h] Error 1 make[3]: *** Waiting for unfinished jobs rm gcc.pod make[3]: Leaving directory `/home/serge/Documents/gcc-build/gcc' make[2]: *** [all-stage2-gcc] Error 2 make[2]: Leaving directory `/home/serge/Documents/gcc-build' make[1]: *** [stage2-bubble] Error 2 make[1]: Leaving directory `/home/serge/Documents/gcc-build' make: *** [all] Error 2 The problem is very obvious, gcc build is not taking the toolchain glibc-2.14 in /opt/lib but it is taking the one the host uses which is eglibc-2.13 in /usr/lib. I set various flags to the linker and compiler, they are all looking in the right directory. It must be something in the configure script? Can anyone help me please. Thank you It seems the generated program genhooks is correctly linked to your new glibc. However, you need to either set LD_LIBRARY_PATH or change the /etc/ld.so.conf configuration file so that genhooks loads the right library when it is executed. Mikael. PS: this list is for the automatic messages generated by the bug tracking system at http://gcc.gnu.org/bugzilla. For questions, you should use the gcc-help mailing list.
[Bug c++/48875] Segmentation fault in maybe_clone_body with -fsyntax-only
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48875 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||WORKSFORME --- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:24:40 UTC --- Indeed, works for me with r179128.
[Bug c++/47964] logical || returns false result, optimization level 02 or 03
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47964 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||INVALID --- Comment #8 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:31:24 UTC --- Feedback not forthcoming.
[Bug c++/42844] const variable requires initializer / no explicitly declared default constructor
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42844 --- Comment #15 from Jason Merrill jason at gcc dot gnu.org 2011-09-23 21:30:52 UTC --- Author: jason Date: Fri Sep 23 21:30:48 2011 New Revision: 179130 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179130 Log: Core 234 - allow const objects with no initializer or user-provided default constructor if the defaulted constructor initializes all the subobjects. PR c++/20039 PR c++/42844 * class.c (default_init_uninitialized_part): New. * cp-tree.h: Declare it. * decl.c (check_for_uninitialized_const_var): Use it. * init.c (perform_member_init): Likewise. (build_new_1): Likewise. * method.c (walk_field_subobs): Likewise. Added: trunk/gcc/testsuite/g++.dg/init/const8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/init.c trunk/gcc/cp/method.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C trunk/gcc/testsuite/g++.dg/cpp0x/defaulted2.C trunk/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C trunk/gcc/testsuite/g++.dg/init/pr20039.C trunk/gcc/testsuite/g++.dg/init/pr42844.C
[Bug c++/20039] uninitialized const in `new' of `const struct'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2011-09-23 21:30:52 UTC --- Author: jason Date: Fri Sep 23 21:30:48 2011 New Revision: 179130 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179130 Log: Core 234 - allow const objects with no initializer or user-provided default constructor if the defaulted constructor initializes all the subobjects. PR c++/20039 PR c++/42844 * class.c (default_init_uninitialized_part): New. * cp-tree.h: Declare it. * decl.c (check_for_uninitialized_const_var): Use it. * init.c (perform_member_init): Likewise. (build_new_1): Likewise. * method.c (walk_field_subobs): Likewise. Added: trunk/gcc/testsuite/g++.dg/init/const8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/init.c trunk/gcc/cp/method.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C trunk/gcc/testsuite/g++.dg/cpp0x/defaulted2.C trunk/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C trunk/gcc/testsuite/g++.dg/init/pr20039.C trunk/gcc/testsuite/g++.dg/init/pr42844.C
[Bug c++/45158] Nested classes
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45158 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:36:14 UTC --- Duplicate. *** This bug has been marked as a duplicate of bug 50400 ***
[Bug c++/50400] compiler accepts invalid X::Impl::Impl::Impl::.....::foo
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50400 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||hans.buchmann at fhnw dot ||ch --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:36:14 UTC --- *** Bug 45158 has been marked as a duplicate of this bug. ***
[Bug c++/44267] SFINAE does not handle down static_cast over virtual inheritance
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44267 --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:38:33 UTC --- Jason, can you help me triaging this PR? Thanks..
[Bug c++/40831] g++ generated symbols for cloned function that be demangled.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40831 --- Comment #12 from Cary Coutant ccoutant at gcc dot gnu.org 2011-09-23 21:39:13 UTC --- Author: ccoutant Date: Fri Sep 23 21:39:10 2011 New Revision: 179132 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179132 Log: include/ChangeLog: PR 40831 * demangle.h (enum demangle_component_type): Add DEMANGLE_COMPONENT_CLONE. libiberty/ChangeLog: PR 40831 * cp-demangle.c (d_make_comp): Add new component type. (cplus_demangle_mangled_name): Check for clone suffixes. (d_parmlist): Don't error out if we see '.'. (d_clone_suffix): New function. (d_print_comp): Print info for clone suffixes. * testsuite/demangle-expected: Add new testcases. Modified: trunk/include/ChangeLog trunk/include/demangle.h trunk/libiberty/ChangeLog trunk/libiberty/cp-demangle.c trunk/libiberty/testsuite/demangle-expected
[Bug c++/43734] cerr related segmentation fault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43734 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||ro at CeBiTec dot ||Uni-Bielefeld.DE --- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:45:10 UTC --- Rainer, can you see if this can be reproduced with any maintained branch? Thanks.
[Bug c++/42194] performance degradation with STL complex convolution operation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42194 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID Severity|major |normal --- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:47:26 UTC --- Closing.
[Bug c++/48665] type of const member function
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48665 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||iant at google dot com --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:50:29 UTC --- Being a demangler patch, Ian should be interested.
[Bug c++/49485] Performance problem with C++ code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49485 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||rguenth at gcc dot gnu.org --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:54:15 UTC --- Richard, maybe you are interested in triaging this.
[Bug c++/48035] [4.4 Regression] Mismatch on size of class when initializing hierarchy involving virtual inheritance and empty base classes
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48035 --- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 21:57:15 UTC --- Jakub, shall we close this?
[Bug target/50499] New: segmentation fault in gcc.dg/compat/struct-by-value-1 c_compat_x_tst.o-c_compat_y_tst.o with ppc -m64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50499 Bug #: 50499 Summary: segmentation fault in gcc.dg/compat/struct-by-value-1 c_compat_x_tst.o-c_compat_y_tst.o with ppc -m64 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: vr...@gcc.gnu.org The relevant C code from the testcase is this: ... struct S50 { unsigned char i[50]; } void init50 (struct S50 *p, int i) { int j; for (j = 0; j 50; j++) p-i[j] = i + j; } void check50 (struct S50 x, int i) { int j; for (j = 0; j 50; j++) if (x.i[j] != i + j) abort (); } struct S50 g1s50, g2s50, g3s50; void checkg50 (void) { check50 (g1s50, 64); check50 (g2s50, 128); check50 (g3s50, 192); } void testit50 (void) { init50 (g1s50, 64); init50 (g2s50, 128); init50 (g3s50, 192); checkg50 (); test50 (g1s50, g2s50, g3s50); test2_50 (g1s50, g3s50); } ... In checkg50, the code for the second call to check50 looks like this: ... addis 9,2,.LC152@toc@ha mr 0,9 mr 11,0 ld 0,.LC152@toc@l(11) mr 9,0 ld 3,0(9) mr 11,0 ld 4,8(11) mr 9,0 ld 5,16(9) mr 11,0 ld 6,24(11) mr 9,0 ld 7,32(9) mr 11,0 ld 8,40(11) mr 11,0 ld 9,48(11) li 10,192 bl check50 ... I ran into a segmentation fault while executing 'ld 9,48(11)', the last load. The LC152 data referenced is declared here: ... .LC150: .tc g1s50[TC],g1s50 .LC151: .tc g2s50[TC],g2s50 .LC152: .tc g3s50[TC],g3s50 .section.text ... and defined here: ... .comm g1s50,50,1 .comm g2s50,50,1 .comm g3s50,50,1 ... So g2s50 is only 50 chars big, but we try to read 52 chars from it. We happen not to have access to the 2 extra chars, and this causes the segmentation violation.
[Bug c++/48562] [C++0x] Prematurely destroys initializer_list array when using new-expression
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48562 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||jason at gcc dot gnu.org Summary|Prematurely destroys|[C++0x] Prematurely |initializer_list array when |destroys initializer_list |using new-expression|array when using ||new-expression --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-23 22:01:23 UTC --- Is this again PR48370, or should be kept separate?
[Bug target/50499] segmentation fault in gcc.dg/compat/struct-by-value-1 c_compat_x_tst.o-c_compat_y_tst.o with ppc -m64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50499 --- Comment #1 from vries at gcc dot gnu.org 2011-09-23 22:08:12 UTC --- Created attachment 25352 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25352 preprocessed struct-by-value-1_y.c to reproduce: $ powerpc-linux-gnu-gcc -c-m64 struct-by-value-1_y.c -save-temps
[Bug tree-optimization/29751] not optimizing access a[0] , a[1]
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29751 --- Comment #8 from Andrew Pinski pinskia at gcc dot gnu.org 2011-09-23 22:09:14 UTC --- (In reply to comment #7) Created attachment 18307 [details] Patch which I am testing There is one bug in that patch which I have a fix for.
[Bug target/50499] segmentation fault in gcc.dg/compat/struct-by-value-1 c_compat_x_tst.o-c_compat_y_tst.o with ppc -m64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50499 --- Comment #2 from vries at gcc dot gnu.org 2011-09-23 22:10:51 UTC --- gcc -v configure line: ... Configured with: /scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/src/gcc-mainline/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=powerpc-linux-gnu --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-checking=yes,rtl --with-long-double-128 --enable-targets=all --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/powerpc-linux-gnu/libc --with-build-sysroot=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/install/powerpc-linux-gnu/libc --with-gmp=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/obj/host-libs-mainline-0-powerpc-linux-gnu-i686-pc-linux-gnu/usr --with-mpfr=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/obj/host-libs-mainline-0-powerpc-linux-gnu-i686-pc-linux-gnu/usr --with-mpc=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/obj/host-libs-mainline-0-powerpc-linux-gnu-i686-pc-linux-gnu/usr --with-ppl=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/obj/host-libs-mainline-0-powerpc-linux-gnu-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/obj/host-libs-mainline-0-powerpc-linux-gnu-i686-pc-linux-gnu/usr --with-libelf=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/obj/host-libs-mainline-0-powerpc-linux-gnu-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/install/powerpc-linux-gnu/bin --with-build-time-tools=/scratch/vries/b6/pr43864.42.all-fsf-mainline-powerpc-linux-gnu.cfg/install/powerpc-linux-gnu/bin ...