[Bug tree-optimization/45950] [4.6 Regression] ICE segmentation fault compiling __udivdi3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45950 Richard Guenther changed: What|Removed |Added Priority|P3 |P1 Status|UNCONFIRMED |NEW Last reconfirmed||2010.10.09 10:39:25 Target Milestone|--- |4.6.0 Ever Confirmed|0 |1
[Bug libobjc/45953] New: Registering untyped selector mutates existing selector
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45953 Summary: Registering untyped selector mutates existing selector Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: libobjc AssignedTo: unassig...@gcc.gnu.org ReportedBy: nic...@gcc.gnu.org Created attachment 22005 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22005 Patch to improve the efficiency of registering selectors with the same name This bug originates from GNUstep, https://savannah.gnu.org/bugs/?25869 It is a small inefficiency in the runtime. Here is the original report from Truls Becken. I also attach his patch. - A test case is shown below, where four -test messages all use the same typed selector. An interleaved -valueForKey: message registers an untyped selector with the same name. At that moment, the typed selector is modified to use the same string pointer as the new untyped selector. One would think that this should be the other way around. The newer selector should use the same string as the existing one, not modify one that is already registered. This is using libobjc from the GNUstep Subversion repository at r28049. GNUstep Base is from the same svn revision. $ cat GNUmakefile include $(GNUSTEP_MAKEFILES)/common.make TOOL_NAME = test ${TOOL_NAME}_OBJC_FILES = main.m include $(GNUSTEP_MAKEFILES)/tool.make $ cat main.m #import @interface Foo : NSObject {} - (void) test; @end @implementation Foo - (void) test { NSLog(@"%d %d %s %s", _cmd, sel_get_name(_cmd), sel_get_name(_cmd), sel_get_type(_cmd)); } @end int main (int argc, const char **argv) { [NSAutoreleasePool new]; id foo = [Foo new]; [foo test]; [foo test]; [foo valueForKey: @"test"]; [foo test]; [foo test]; return 0; } $ make This is gnustep-make 2.0.8. Type 'make print-gnustep-make-help' for help. Making all for tool test... Compiling file main.m ... Linking tool test ... $ obj/test 2009-03-14 22:22:10.401 test[23586] 134520200 134519897 test v...@0:4 2009-03-14 22:22:10.406 test[23586] 134520200 134519897 test v...@0:4 2009-03-14 22:22:10.410 test[23586] 144773752 145449736 test (null) 2009-03-14 22:22:10.413 test[23586] 134520200 145449736 test v...@0:4 2009-03-14 22:22:10.416 test[23586] 134520200 145449736 test v...@0:4
[Bug bootstrap/45951] [4.6 regression] Revision 165133 breaks bootstrap on Linux/ia32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45951 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.6.0 --- Comment #2 from Richard Guenther 2010-10-09 10:41:29 UTC --- Fixed.
[Bug bootstrap/45954] New: --with-build-config=bootstrap-lto doesn't work
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45954 Summary: --with-build-config=bootstrap-lto doesn't work Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com --with-build-config=bootstrap-lto doesn't work. The problem is cd bld; \ RUNTESTFLAGS="--target_board 'unix{-m32,}'" ../src-trunk/configure \ --enable-clocale=gnu --with-system-zlib --enable-shared --with-demangler-in-ld --with-build-config=bootstrap-lto -with-plugin-ld=ld.gold --enable-gold --with-fpmath=sse It doesn't enable LTO for stage1 gcc and it goes downhill after stage 1 since LTO isn't available at all: configure:3000: /export/gnu/import/svn/gcc-test/bld/./prev-gcc/xgcc -B/export/gnu/import/svn/gcc-test/bld/./prev-gcc/ -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include-g -O2 -fwhopr=jobserver -fuse-linker-plugin -frandom-seed=1conftest.c >&5 cc1: error: LTO support has not been enabled in this configuration
[Bug tree-optimization/45950] [4.6 Regression] ICE segmentation fault compiling __udivdi3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45950 Richard Guenther changed: What|Removed |Added CC||hjl.tools at gmail dot com --- Comment #4 from Richard Guenther 2010-10-09 10:42:28 UTC --- *** Bug 45952 has been marked as a duplicate of this bug. ***
[Bug bootstrap/45952] [4.6 regression] Revision 165178 breaks bootstrap on Linux/ia32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45952 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE --- Comment #1 from Richard Guenther 2010-10-09 10:42:28 UTC --- dup *** This bug has been marked as a duplicate of bug 45950 ***
[Bug tree-optimization/45945] ICE: verify_ssa failed: error: SSA_NAME_DEF_STMT is wrong when using inline ASM with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45945 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2010.10.09 11:22:52 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2010-10-09 11:22:52 UTC --- The bug is in the inliner which generates a SSA name definition that is wrapped inside a VIEW_CONVERT_EXPR. __asm__("" : "=d" VIEW_CONVERT_EXPR(i_3)); that is not valid. I have a patch.
[Bug lto/45947] ICE: tree code 'template_decl' is not supported in gimple streams with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45947 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2010.10.09 11:29:04 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2010-10-09 11:29:04 UTC --- Mine.
[Bug tree-optimization/45950] [4.6 Regression] ICE segmentation fault compiling __udivdi3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45950 --- Comment #5 from Nathan Froyd 2010-10-09 11:44:05 UTC --- Author: froydnj Date: Sat Oct 9 11:44:00 2010 New Revision: 165220 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165220 Log: PR tree-optimization/45950 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length before initializing vno->op. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-sccvn.c
[Bug tree-optimization/45612] [4.6 regression] Reference to undefined label building libada on Solaris 2/SPARC
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45612 --- Comment #23 from Eric Botcazou 2010-10-09 12:15:38 UTC --- Author: ebotcazou Date: Sat Oct 9 12:15:31 2010 New Revision: 165221 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165221 Log: PR tree-optimization/45612 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Test LABEL_DECLs as well. Fix formatting issues. (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement whose label is present in NON_SSA_VARS. (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs as well. Fix formatting issues. (visit_bb): Fix typos and formatting issue. Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-split.c
[Bug tree-optimization/45612] [4.6 regression] Reference to undefined label building libada on Solaris 2/SPARC
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45612 Eric Botcazou changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #24 from Eric Botcazou 2010-10-09 12:20:19 UTC --- At last.
[Bug lto/45949] ICE: SIGSEGV in gimple_default_def (tree-dfa.c:538) with -flto/-fwhopr on invalid code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45949 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2010.10.09 12:24:32 Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2010-10-09 12:24:32 UTC --- The problem is we're issueing an error from decl_assembler_name called via free_lang_data which is an IPA pass, so the guard 1768 if (!seen_error ()) 1769ipa_passes (); in cgraph_optimize () doesn't work reliably. Now, without LTO we're assigning the assembler name and erroring during expansion.
[Bug tree-optimization/45945] ICE: verify_ssa failed: error: SSA_NAME_DEF_STMT is wrong when using inline ASM with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45945 --- Comment #2 from Richard Guenther 2010-10-09 12:45:14 UTC --- Author: rguenth Date: Sat Oct 9 12:45:09 2010 New Revision: 165222 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165222 Log: 2010-10-09 Richard Guenther PR tree-optimization/45945 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning. * gcc.dg/lto/20101009-1_0.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/lto/20101009-1_0.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa.c
[Bug tree-optimization/45945] ICE: verify_ssa failed: error: SSA_NAME_DEF_STMT is wrong when using inline ASM with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45945 Richard Guenther changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.6.0 --- Comment #3 from Richard Guenther 2010-10-09 12:46:35 UTC --- Fixed.
[Bug c++/45942] class will not get friends with another class
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45942 --- Comment #12 from Michiel 2010-10-09 13:02:51 UTC --- > You seem to misunderstand what this bugzilla is for. No, that is not true, although the effect has been equally terrible. Indeed, you only need to say that my bug is invalid. However, it is common in many forms of written communication that one assures him/herself that the other has read and understood everything. Maybe I should have assumed that this was the case, but reacting on one out of three issues in my bug report was not very convincing in this matter.
[Bug debug/45865] [4.6 regression] Failed to build 403.gcc in SPEC CPU 2006
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45865 --- Comment #5 from H.J. Lu 2010-10-09 13:06:13 UTC --- Created attachment 22006 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22006 A testcase for -fcompare-debug failure [...@gnu-6 gcc]$ ./xgcc -B./ -O2 -g -fcompare-debug foo.i -S -m32 xgcc: error: foo.i: -fcompare-debug failure (length) [...@gnu-6 gcc]$
[Bug c++/45942] class will not get friends with another class
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45942 --- Comment #13 from Michiel 2010-10-09 13:38:05 UTC --- The reason that I did not succeed in making ClassB a friend of ClassA is that C++ is not very logical. See below. template class classB; template class classC; template class classA { // classA does NOT become friends with classA friend class classB; // with an extra template argument, this is only possible via // specialization, which is not allowed template <> friend class classB; template friend class classC; // because with your solution, classA (classB) // DOES become friends with classA (classB) template friend class classB; template friend class classC; }; template class classA;
[Bug fortran/45748] [4.5/4.6 Regression] -fimplicit-none failures when using intrinsic MAX
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45748 --- Comment #7 from janus at gcc dot gnu.org 2010-10-09 13:41:16 UTC --- Author: janus Date: Sat Oct 9 13:41:12 2010 New Revision: 165223 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165223 Log: 2010-10-09 Janus Weil PR fortran/45748 * resolve.c (resolve_formal_arglist): Avoid setting default type for formal arguments of intrinsic procedures. 2010-10-09 Janus Weil PR fortran/45748 * gfortran.dg/intrinsic_6.f90: New. Added: branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/intrinsic_6.f90 Modified: branches/gcc-4_5-branch/gcc/fortran/ChangeLog branches/gcc-4_5-branch/gcc/fortran/resolve.c branches/gcc-4_5-branch/gcc/testsuite/ChangeLog
[Bug fortran/45748] [4.5/4.6 Regression] -fimplicit-none failures when using intrinsic MAX
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45748 janus at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #8 from janus at gcc dot gnu.org 2010-10-09 13:51:11 UTC --- Fixed on trunk and 4.5. Closing.
[Bug target/45820] FAIL: gcc.c-torture/compile/pr45728.c at -O1 and above
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45820 --- Comment #5 from John David Anglin 2010-10-09 14:26:11 UTC --- Author: danglin Date: Sat Oct 9 14:26:07 2010 New Revision: 165231 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165231 Log: PR target/45820 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands earlier. Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/config/pa/pa.c
[Bug target/45820] FAIL: gcc.c-torture/compile/pr45728.c at -O1 and above
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45820 John David Anglin changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #6 from John David Anglin 2010-10-09 14:30:13 UTC --- Fixed.
[Bug tree-optimization/45950] [4.6 Regression] ICE segmentation fault compiling __udivdi3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45950 Richard Guenther changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #6 from Richard Guenther 2010-10-09 15:53:21 UTC --- Fixed.
[Bug lto/45947] ICE: tree code 'template_decl' is not supported in gimple streams with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45947 --- Comment #2 from Richard Guenther 2010-10-09 15:59:54 UTC --- Author: rguenth Date: Sat Oct 9 15:59:50 2010 New Revision: 165234 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165234 Log: 2010-10-09 Richard Guenther PR lto/45947 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool. * g++.dg/lto/20101009-1_0.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/lto/20101009-1_0.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree.c
[Bug lto/45947] ICE: tree code 'template_decl' is not supported in gimple streams with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45947 Richard Guenther changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Richard Guenther 2010-10-09 16:00:19 UTC --- Fixed.
[Bug middle-end/45955] New: FAIL: gcc.dg/initpri1.c (test for excess errors)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45955 Summary: FAIL: gcc.dg/initpri1.c (test for excess errors) Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: dang...@gcc.gnu.org Host: hppa2.0w-hp-hpux11.11 Target: hppa2.0w-hp-hpux11.11 Build: hppa2.0w-hp-hpux11.11 Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ /te st/gnu/gcc/gcc/gcc/testsuite/gcc.dg/initpri1.c-ansi -pedantic-errors -lm -o ./initpri1.exe(timeout = 300) WARNING: program timed out. compiler exited with status 1 FAIL: gcc.dg/initpri1.c (test for excess errors) Running under gdb, I see: Program received signal SIGINT, Interrupt. 0x01478e68 in build_cdtor (ctor_p=1 '\001', cdtors=0x400c9108) at ../../gcc/gcc/ipa.c:1490 1490 while (i < len); (gdb) bt #0 0x01478e68 in build_cdtor (ctor_p=1 '\001', cdtors=0x400c9108) at ../../gcc/gcc/ipa.c:1490 #1 0x01479384 in build_cdtor_fns () at ../../gcc/gcc/ipa.c:1565 #2 0x0147962c in ipa_cdtor_merge () at ../../gcc/gcc/ipa.c:1594 #3 0x00ca6da0 in execute_one_pass (pass=0x4001ca4c) at ../../gcc/gcc/passes.c:1562 #4 0x00ca8058 in execute_ipa_pass_list (pass=0x4001ca4c) at ../../gcc/gcc/passes.c:1929 #5 0x013ee044 in ipa_passes () at ../../gcc/gcc/cgraphunit.c:1734 #6 0x013ee1a8 in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1769 #7 0x013eb62c in cgraph_finalize_compilation_unit () at ../../gcc/gcc/cgraphunit.c:1020 #8 0x000c262c in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:9821 #9 0x00e2c434 in compile_file () at ../../gcc/gcc/toplev.c:946 #10 0x00e30508 in do_compile () at ../../gcc/gcc/toplev.c:2374 #11 0x00e30694 in toplev_main (argc=19, argv=0x7eff05e4) at ../../gcc/gcc/toplev.c:2415 #12 0x00373f34 in main (argc=19, argv=0x7eff05e4) at ../../gcc/gcc/main.c:36 There's a thinko in this code: /* Find the next batch of constructors/destructors with the same initialization priority. */ for (;i < j; i++) { tree call; fn = VEC_index (tree, cdtors, i); call = build_call_expr (fn, 0); if (ctor_p) DECL_STATIC_CONSTRUCTOR (fn) = 0; else DECL_STATIC_DESTRUCTOR (fn) = 0; /* We do not want to optimize away pure/const calls here. When optimizing, these should be already removed, when not optimizing, we want user to be able to breakpoint in them. */ TREE_SIDE_EFFECTS (call) = 1; append_to_statement_list (call, &body); } while (i < len);
[Bug middle-end/45955] FAIL: gcc.dg/initpri1.c (test for excess errors)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45955 Richard Guenther changed: What|Removed |Added CC||hubicka at gcc dot gnu.org --- Comment #1 from Richard Guenther 2010-10-09 16:21:39 UTC --- (In reply to comment #0) > Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ > /te > st/gnu/gcc/gcc/gcc/testsuite/gcc.dg/initpri1.c-ansi -pedantic-errors -lm > > -o ./initpri1.exe(timeout = 300) > WARNING: program timed out. > compiler exited with status 1 > FAIL: gcc.dg/initpri1.c (test for excess errors) > > Running under gdb, I see: > > Program received signal SIGINT, Interrupt. > 0x01478e68 in build_cdtor (ctor_p=1 '\001', cdtors=0x400c9108) > at ../../gcc/gcc/ipa.c:1490 > 1490 while (i < len); > (gdb) bt > #0 0x01478e68 in build_cdtor (ctor_p=1 '\001', cdtors=0x400c9108) > at ../../gcc/gcc/ipa.c:1490 > #1 0x01479384 in build_cdtor_fns () at ../../gcc/gcc/ipa.c:1565 > #2 0x0147962c in ipa_cdtor_merge () at ../../gcc/gcc/ipa.c:1594 > #3 0x00ca6da0 in execute_one_pass (pass=0x4001ca4c) > at ../../gcc/gcc/passes.c:1562 > #4 0x00ca8058 in execute_ipa_pass_list (pass=0x4001ca4c) > at ../../gcc/gcc/passes.c:1929 > #5 0x013ee044 in ipa_passes () at ../../gcc/gcc/cgraphunit.c:1734 > #6 0x013ee1a8 in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1769 > #7 0x013eb62c in cgraph_finalize_compilation_unit () > at ../../gcc/gcc/cgraphunit.c:1020 > #8 0x000c262c in c_write_global_declarations () > at ../../gcc/gcc/c-decl.c:9821 > #9 0x00e2c434 in compile_file () at ../../gcc/gcc/toplev.c:946 > #10 0x00e30508 in do_compile () at ../../gcc/gcc/toplev.c:2374 > #11 0x00e30694 in toplev_main (argc=19, argv=0x7eff05e4) > at ../../gcc/gcc/toplev.c:2415 > #12 0x00373f34 in main (argc=19, argv=0x7eff05e4) at ../../gcc/gcc/main.c:36 > > There's a thinko in this code: > > /* Find the next batch of constructors/destructors with the same > initialization priority. */ > for (;i < j; i++) > { > tree call; > fn = VEC_index (tree, cdtors, i); > call = build_call_expr (fn, 0); > if (ctor_p) > DECL_STATIC_CONSTRUCTOR (fn) = 0; > else > DECL_STATIC_DESTRUCTOR (fn) = 0; > /* We do not want to optimize away pure/const calls here. > When optimizing, these should be already removed, when not > optimizing, we want user to be able to breakpoint in them. */ > TREE_SIDE_EFFECTS (call) = 1; > append_to_statement_list (call, &body); > } > while (i < len); Looks like a funny cut&pasto. Just remove the last while (i < len) line which actually is an endless loop.
[Bug lto/45956] New: [4.6 Regression] Promoted statics conflict
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45956 Summary: [4.6 Regression] Promoted statics conflict Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org t1.c int foo (void) { static int i; return ++i; } t2.c int bar (void) { static int i; return ++i; } will have same (local) mangling for i (i.1214). With -fwopr we bring both units into one with the new partitioning where they now conflict. Likely caused by my DECL_CONTEXT change which makes 2370 /* Register symbols with file or global scope to mark what input 2371 file has their definition. */ 2372 if (decl_function_context (decl) == NULL_TREE) 2373{ not the correct test in lto_register_var_decl_in_symtab.
[Bug lto/45956] [4.6 Regression] Promoted statics conflict
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45956 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2010.10.09 16:56:31 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Target Milestone|--- |4.6.0 Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2010-10-09 16:56:31 UTC --- I have a patch.
[Bug c++/45942] class will not get friends with another class
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45942 --- Comment #14 from Jonathan Wakely 2010-10-09 18:07:42 UTC --- (In reply to comment #13) > The reason that I did not succeed in making ClassB a friend of ClassA is that > C++ is not very logical. Maybe so, but that's not a bug in GCC. The next version of C++ is more lenient in what is allowed in a friend declaration and I think it is possible to declare a typedef as a friend so you could create a class template with a nested member and declare that member as a friend. That template could be specialized to make certain specializations of classB a friend: template struct Befriender { typedef int type; }; template struct Befriender> { typedef B&> type; }; template class A { friend typename Befriender::type; }; I *think* this would work, when Befriender::type results in "friend int" it is ignored, without error.
[Bug c++/45942] class will not get friends with another class
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45942 --- Comment #15 from Jonathan Wakely 2010-10-09 18:18:56 UTC --- you don't even need the partial specialization of Befriender: template class A; template&> class A; template struct Befriender { typedef B&> type; }; template class A { friend typename Befriender::type; }; (I can't test this now, so it might be wrong, and it definitely isn't allowed in C++03)
[Bug lto/45956] [4.6 Regression] Promoted statics conflict
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45956 --- Comment #2 from Richard Guenther 2010-10-09 18:28:20 UTC --- Author: rguenth Date: Sat Oct 9 18:28:16 2010 New Revision: 165235 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165235 Log: 2010-10-09 Richard Guenther PR lto/45956 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Properly check if a decl is an automatic var. * gcc.dg/lto/20101009-2_0.c: New testcase. * gcc.dg/lto/20101009-2_1.c: Likewise. * gcc.dg/lto/20101009-2_2.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/lto/20101009-2_0.c trunk/gcc/testsuite/gcc.dg/lto/20101009-2_1.c trunk/gcc/testsuite/gcc.dg/lto/20101009-2_2.c Modified: trunk/gcc/ChangeLog trunk/gcc/lto-streamer-in.c trunk/gcc/testsuite/ChangeLog
[Bug lto/45956] [4.6 Regression] Promoted statics conflict
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45956 Richard Guenther changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Richard Guenther 2010-10-09 18:28:37 UTC --- Fixed.
[Bug middle-end/45722] [4.6 Regression] FAIL: gcc.c-torture/execute/20040709-2.c execution at -O1 and -Os
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45722 --- Comment #8 from dave at hiauly1 dot hia.nrc.ca 2010-10-09 20:46:54 UTC --- Created attachment 22007 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22007 pr45722-2.c --- Comment #9 from dave at hiauly1 dot hia.nrc.ca 2010-10-09 20:46:54 UTC --- Created attachment 22008 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22008 pr45722-2.s --- Comment #10 from dave at hiauly1 dot hia.nrc.ca 2010-10-09 20:46:54 UTC --- Created attachment 22009 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22009 pr45722-2.c.145r.expand
[Bug middle-end/45722] [4.6 Regression] FAIL: gcc.c-torture/execute/20040709-2.c execution at -O1 and -Os
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45722 --- Comment #7 from dave at hiauly1 dot hia.nrc.ca 2010-10-09 20:46:50 UTC --- Took another at this bug. At least at -O1 with r165177, the nature of the FAIL seems to have changed. The testcase now fails in testB with a segmentation fault caused by a misaligned load. Program received signal SIGBUS, Bus error. 0x2d90 in testB () at pr45722.c:48 48 x = sB; (gdb) disass 0x2d80,0x2da0 Dump of assembler code from 0x2d80 to 0x2da0: 0x2d80 :ldb,ma 1(r31),r21 0x2d84 :stb,ma r20,1(r22) 0x2d88 :addib,>= -2,r19,0x2d7c 0x2d8c :stb,ma r21,1(r22) => 0x2d90 :ldw 2(r4),r4 0x2d94 :b,l 0x2c80 ,rp 0x2d98 :copy r5,r26 0x2d9c :ldb 50(r3),r20 (gdb) p &sB $1 = (struct B *) 0x40001a50 (gdb) p/x $r4 $2 = 0x40001a50 It appears the load for sB.l is not expanded correctly given that the struct is packed: ;; x$l_3 = MEM[(struct B *)&sB + 2B]; (insn 106 105 107 (set (reg/f:SI 205) (high:SI (symbol_ref:SI ("sB") [flags 0x200] ))) pr45722.c:48 -1 (nil)) (insn 107 106 108 (set (reg/f:SI 204) (lo_sum:SI (reg/f:SI 205) (symbol_ref:SI ("sB") [flags 0x200] ))) pr45722.c:48 -1 (expr_list:REG_EQUAL (symbol_ref:SI ("sB") [flags 0x200] ) (nil))) (insn 108 107 109 (set (reg/f:SI 206) (plus:SI (reg/f:SI 204) (const_int 0 [0]))) pr45722.c:48 -1 (nil)) (insn 109 108 0 (set (reg:SI 142 [ x$l ]) (mem/c:SI (plus:SI (reg/f:SI 206) (const_int 2 [0x2])) [0 MEM[(struct B *)&sB + 2B]+0 S4 A8])) pr5722.c:48 -1 (nil)) ;; r_16 = fn3B (a_13); -- J. David Anglin dave.ang...@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
[Bug middle-end/45722] [4.6 Regression] FAIL: gcc.c-torture/execute/20040709-2.c execution at -O1 and -Os
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45722 John David Anglin changed: What|Removed |Added Priority|P1 |P3 --- Comment #11 from John David Anglin 2010-10-09 21:05:38 UTC --- Breakpoint 1, emit_move_sequence (operands=0x7eff152c, mode=SImode, scratch_reg=0x0) at ../../gcc/gcc/config/pa/pa.c:1501 1501 register rtx operand0 = operands[0]; (gdb) p debug_rtx (operands[0]) (reg:SI 142 [ x$l ]) $1 = void (gdb) p debug_rtx (operands[1]) (mem/c:SI (plus:SI (reg/f:SI 206) (const_int 2 [0x2])) [0 MEM[(struct B *)&sB + 2B]+0 S4 A8]) $2 = void (gdb) bt #0 emit_move_sequence (operands=0x7eff152c, mode=SImode, scratch_reg=0x0) at ../../gcc/gcc/config/pa/pa.c:1501 #1 0x015587d0 in gen_movsi (operand0=0x7afe92e0, operand1=0x7afef050) at ../../gcc/gcc/config/pa/pa.md:2048 #2 0x007b7628 in emit_move_insn_1 (x=0x7afe92e0, y=0x7afef050) at ../../gcc/gcc/expr.c:3336 #3 0x007b7bb8 in emit_move_insn (x=0x7afe92e0, y=0x7afef050) at ../../gcc/gcc/expr.c:3426 #4 0x007be488 in store_expr (exp=0x7afb9d80, target=0x7afe92e0, call_param_p=0, nontemporal=0 '\000') at ../../gcc/gcc/expr.c:4888 #5 0x007bb7d4 in expand_assignment (to=0x7afd2ed0, from=0x7afb9d80, nontemporal=0 '\000') at ../../gcc/gcc/expr.c:4473 #6 0x01722c4c in expand_gimple_stmt_1 (stmt=0x7afd9390) at ../../gcc/gcc/cfgexpand.c:1892 #7 0x01723188 in expand_gimple_stmt (stmt=0x7afd9390) at ../../gcc/gcc/cfgexpand.c:2001 #8 0x0172a16c in expand_gimple_basic_block (bb=0x7afd1510) at ../../gcc/gcc/cfgexpand.c:3453 #9 0x0172c63c in gimple_expand_cfg () at ../../gcc/gcc/cfgexpand.c:3913 #10 0x00ca6da0 in execute_one_pass (pass=0x40021640) at ../../gcc/gcc/passes.c:1562 #11 0x00ca7098 in execute_pass_list (pass=0x40021640) at ../../gcc/gcc/passes.c:1617 ---Type to continue, or q to quit--- #12 0x02548734 in tree_rest_of_compilation (fndecl=0x7afa6980) at ../../gcc/gcc/tree-optimize.c:419 #13 0x013ed6b0 in cgraph_expand_function (node=0x7afb5270) at ../../gcc/gcc/cgraphunit.c:1498 #14 0x013ed944 in cgraph_expand_all_functions () at ../../gcc/gcc/cgraphunit.c:1557 #15 0x013ee374 in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1813 #16 0x013eb62c in cgraph_finalize_compilation_unit () at ../../gcc/gcc/cgraphunit.c:1020 #17 0x000c262c in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:9821 #18 0x00e2c434 in compile_file () at ../../gcc/gcc/toplev.c:946 #19 0x00e30508 in do_compile () at ../../gcc/gcc/toplev.c:2374 #20 0x00e30694 in toplev_main (argc=18, argv=0x7eff05b4) at ../../gcc/gcc/toplev.c:2415 #21 0x00373f34 in main (argc=18, argv=0x7eff05b4) at ../../gcc/gcc/main.c:36
[Bug middle-end/45722] [4.6 Regression] FAIL: gcc.c-torture/execute/20040709-2.c execution at -O1 and -Os
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45722 --- Comment #12 from John David Anglin 2010-10-09 21:27:45 UTC --- Hmmm, seems that we have somehow lost the fact that this load should be a BLKmode load. (gdb) frame 4 #4 0x007be488 in store_expr (exp=0x7afb9d80, target=0x7afe92e0, call_param_p=0, nontemporal=0 '\000') at ../../gcc/gcc/expr.c:4888 4888emit_move_insn (target, temp); (gdb) p debug_tree (exp) unit size align 32 symtab 0 alias set -1 canonical type 7af37300 precision 32 min max pointer_to_this > arg 0 unsigned SI size unit size align 32 symtab 0 alias set -1 canonical type 7afb73c0> constant arg 0 addressable used public static common BLK file pr45722.c line 18 col 10 size unit size align 8 context (mem/s/c:BLK (symbol_ref:SI ("sB") [flags 0x200] ) [0 sB+0 S6 A8]) chain >> arg 1 constant 2> pr45722.c:48:5>
[Bug tree-optimization/45957] New: [4.6 Regression] g++.dg/ext/fnname3.C FAILs with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45957 Summary: [4.6 Regression] g++.dg/ext/fnname3.C FAILs with -flto/-fwhopr Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: zso...@seznam.cz Created attachment 22010 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22010 reduced testcase Output: $ g++ pr45957.C $ ./a.out && echo OK OK $ g++ pr45957.C -flto $ ./a.out && echo OK Tested revisions: r165220 - fail r165152 - OK It seems __func__ evaluates to empty string in both cases (constructor and destructor).
[Bug rtl-optimization/33721] [meta-bug] Gcc can't properly align stack variable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33721 --- Comment #7 from Richard Henderson 2010-10-09 22:05:55 UTC --- Author: rth Date: Sat Oct 9 22:05:51 2010 New Revision: 165240 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165240 Log: PR rtl-opt/33721 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm, remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor required_align, tidy the code a bit. Emit split_stack code in the right place. Mark the return value with the alignment properly. * expr.h (allocate_dynamic_stack_space): Update decl. * builtins.c (expand_builtin_apply): Update call to allocate_dynamic_stack_space. (expand_builtin_alloca): Likewise. Remove TARGET parameter. * calls.c (initialize_argument_information): Update call to allocate_dynamic_stack_space. (expand_call): Likewise. * cfgexpand.c (get_decl_align_unit): Don't limit alignment. Don't update_stack_alignment here. (alloc_stack_frame_space): Make ALIGN unsigned. (stack_var_cmp): Sort by alignment too. (partition_stack_vars): Don't merge large and small alignment vars. (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters. Take care when BASE is not virtual_stack_vars_rtx. (expand_stack_vars): Allocate dynamic stack space for large alignment variables. (expand_one_stack_var): Update all to expand_one_stack_var_at. (defer_stack_allocation): True for large alignment vars. (update_stack_alignment): Merge into ... (expand_one_var): ... here. (gimple_expand_cfg): Place code from expand_stack_vars. Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/calls.c trunk/gcc/cfgexpand.c trunk/gcc/explow.c trunk/gcc/expr.h trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/lib/target-supports.exp
[Bug rtl-optimization/33721] [meta-bug] Gcc can't properly align stack variable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33721 Richard Henderson changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #8 from Richard Henderson 2010-10-09 22:11:22 UTC --- Stack variables can now be aligned for any target.
[Bug rtl-optimization/33721] [meta-bug] Gcc can't properly align stack variable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33721 Richard Henderson changed: What|Removed |Added Target Milestone|--- |4.6.0
[Bug tree-optimization/45957] [4.6 Regression] g++.dg/ext/fnname3.C FAILs with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45957 --- Comment #1 from Zdenek Sojka 2010-10-09 22:17:15 UTC --- The same happens for g++.dg/template/pretty1.C and g++.old-deja/g++.ext/pretty2.C - both fail with -flto/-fwhopr in r165220, but not in r165152. It seems __FUNCTION__ and __PRETTY_FUNCTION__ is broken too in constructors and destructors. g++.old-deja/g++.ext/pretty2.C actually gives nice output: $ g++ g++.old-deja/g++.ext/pretty2.C && ./a.out ctor __FUNCTION__ X __PRETTY_FUNCTION__ X::X() member fn __FUNCTION__ fn __PRETTY_FUNCTION__ void X::fn() conversion __FUNCTION__ operator int __PRETTY_FUNCTION__ X::operator int() dtor __FUNCTION__ ~X __PRETTY_FUNCTION__ X::~X() $ g++ g++.old-deja/g++.ext/pretty2.C -flto && ./a.out ctor __FUNCTION__ __PRETTY_FUNCTION__ member fn __FUNCTION__ fn __PRETTY_FUNCTION__ void X::fn() conversion __FUNCTION__ operator int __PRETTY_FUNCTION__ X::operator int() dtor __FUNCTION__ __PRETTY_FUNCTION__
[Bug debug/45865] [4.6 regression] Failed to build 403.gcc in SPEC CPU 2006
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45865 --- Comment #6 from H.J. Lu 2010-10-09 22:45:44 UTC --- A small testcase -- [...@gnu-6 gcc]$ cat /export/gnu/import/delta/foo.c typedef union tree_node *tree; enum ix86_builtin_type { IX86_BT_LAST_VECT, IX86_BT_LAST_PTR }; extern const enum ix86_builtin_type ix86_builtin_type_ptr_base[]; extern tree build_qualified_type (tree, int); extern tree build_pointer_type (tree); tree ix86_get_builtin_type (enum ix86_builtin_type tcode, unsigned int index) { tree type, itype; int quals; if (tcode <= IX86_BT_LAST_PTR) quals = 0x0; else quals = 0x1; itype = ix86_get_builtin_type (ix86_builtin_type_ptr_base[index], index); if (quals != 0x0) itype = build_qualified_type (itype, quals); type = build_pointer_type (itype); return type; } [...@gnu-6 gcc]$ ./xgcc -B./ -O2 -g -fcompare-debug -S -m32 /export/gnu/import/delta/foo.c -Wall xgcc: error: /export/gnu/import/delta/foo.c: -fcompare-debug failure (length) [...@gnu-6 gcc]$
[Bug tree-optimization/45957] [4.6 Regression] g++.dg/ext/fnname3.C FAILs with -flto/-fwhopr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45957 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.6.0
[Bug debug/45865] [4.6 regression] Failed to build 403.gcc in SPEC CPU 2006
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45865 --- Comment #7 from H.J. Lu 2010-10-10 00:48:54 UTC --- (note 139 66 113 NOTE_INSN_EPILOGUE_BEG) (insn 113 139 114 (set (reg:SI 3 bx) (mem/c:SI (plus:SI (reg/f:SI 7 sp) (const_int 4 [0x4])) [6 S4 A8])) y.i:54 63 {*movsi_internal} (nil)) dwarf2out_cfi_begin_epilogue failed to handle: (code_label 130 27 128 13 "" [1 uses]) (note 128 130 115 [bb 6] NOTE_INSN_BASIC_BLOCK) (insn/f:TI 115 128 67 (parallel [ (set (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int 12 [0xc]))) (clobber (reg:CC 17 flags)) (clobber (mem:BLK (scratch) [0 A8])) ]) y.i:54 868 {pro_epilogue_adjust_stack_si_add} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_CFA_ADJUST_CFA (set (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int 12 [0xc]))) (expr_list:REG_CFA_RESTORE (reg:SI 4 si) (expr_list:REG_CFA_RESTORE (reg:SI 3 bx) (nil)) (call_insn/j:TI 67 115 68 (set (reg:SI 0 ax) (call (mem:QI (symbol_ref:SI ("reverse_condition") [flags 0x41] ) [0 S1 A8]) (const_int 4 [0x4]))) y.i:52 881 {*call_value_0} (nil) (nil)) (barrier 68 67 39) ... (insn:TI 114 113 142 (set (reg:SI 4 si) (mem/c:SI (plus:SI (reg/f:SI 7 sp) (const_int 8 [0x8])) [6 S4 A8])) y.i:54 63 {*movsi_internal} (nil)) (jump_insn 142 114 143 (set (pc) (label_ref 130)) 605 {jump} (nil) -> 130) (barrier 143 142 70) (code_label 70 143 71 7 "" [3 uses]) (note 71 70 133 [bb 13] NOTE_INSN_BASIC_BLOCK) (insn:TI 133 71 140 (parallel [ (set (reg/i:SI 0 ax) (const_int 0 [0])) (clobber (reg:CC 17 flags)) ]) y.i:54 54 {*movsi_xor} (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))) (note 140 133 107 NOTE_INSN_EPILOGUE_BEG)
[Bug debug/45865] [4.6 regression] Failed to build 403.gcc in SPEC CPU 2006
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45865 --- Comment #8 from H.J. Lu 2010-10-10 01:12:37 UTC --- Does this patch --- diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index af5f809..14d4f9b 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -2872,7 +2872,7 @@ dwarf2out_cfi_begin_epilogue (rtx insn) continue; /* Look for both regular and sibcalls to end the block. */ - if (returnjump_p (i)) + if (returnjump_p (i) || any_uncondjump_p (i)) break; if (CALL_P (i) && SIBLING_CALL_P (i)) break; --- make any senses?