[Bug c/55084] please submit full bug report
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55084 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||INVALID --- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org 2012-10-28 07:51:55 UTC --- Closing.
[Bug middle-end/55103] New: [4.8 Regression] gcc.target/mips/int-moves-2.c ICEs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55103 Bug #: 55103 Summary: [4.8 Regression] gcc.target/mips/int-moves-2.c ICEs Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: pins...@gcc.gnu.org Target: mips*-linux-gnu ./cc1 /home/apinski/src/gcc-fsf/local/gcc/gcc/testsuite/gcc.target/mips/int-moves-2.c -quiet -DNOMIPS16= -DMIPS16=__attribute__((mips16)) -mgp64 -mabi=o64 /home/apinski/src/gcc-fsf/local/gcc/gcc/testsuite/gcc.target/mips/int-moves-2.c:27:1: internal compiler error: Bus error { ^ 0x105164f7 crash_signal /home/apinski/src/gcc-fsf/local/gcc/gcc/toplev.c:333 0x103f9191 init_op_alt_data /home/apinski/src/gcc-fsf/local/gcc/gcc/lra.c:575 0x103f9191 lra_init() /home/apinski/src/gcc-fsf/local/gcc/gcc/lra.c:2389 0x1051639b lang_dependent_init_target /home/apinski/src/gcc-fsf/local/gcc/gcc/toplev.c:1673 0x108aa893 save_target_globals() /home/apinski/src/gcc-fsf/local/gcc/gcc/target-globals.c:89 0x10776987 mips_set_mips16_mode /home/apinski/src/gcc-fsf/local/gcc/gcc/config/mips/mips.c:16350 0x100bec4b store_parm_decls() /home/apinski/src/gcc-fsf/local/gcc/gcc/c/c-decl.c:8306 0x10109557 c_parser_declaration_or_fndef /home/apinski/src/gcc-fsf/local/gcc/gcc/c/c-parser.c:1755 0x1010e1c3 c_parser_translation_unit /home/apinski/src/gcc-fsf/local/gcc/gcc/c/c-parser.c:1251 0x1010e1c3 c_parse_file() /home/apinski/src/gcc-fsf/local/gcc/gcc/c/c-parser.c:10889 0x1015356f c_common_parse_file() /home/apinski/src/gcc-fsf/local/gcc/gcc/c-family/c-opts.c:1062 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug middle-end/55103] [4.8 Regression] gcc.target/mips/int-moves-2.c ICEs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55103 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug c++/52956] Missing overflow warning
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52956 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-28 09:31:27 UTC --- Dup. *** This bug has been marked as a duplicate of bug 55095 ***
[Bug c++/55095] Wshift-overflow
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55095 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||xinliangli at gmail dot com --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-28 09:31:27 UTC --- *** Bug 52956 has been marked as a duplicate of this bug. ***
[Bug middle-end/55103] [4.8 Regression] gcc.target/mips/int-moves-2.c ICEs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55103 --- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-10-28 09:32:06 UTC --- This is because save_target_globals does not allocate a target_lra_int (though it might be zero out the array before doing anything else too).
[Bug middle-end/55103] [4.8 Regression] All MIPS16 attribute tests ICEs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55103 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Summary|[4.8 Regression]|[4.8 Regression] All MIPS16 |gcc.target/mips/int-moves-2 |attribute tests ICEs |.c ICEs | --- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-10-28 09:49:42 UTC --- It is not just int-moves-2.c but all of the tests of the mips16 attribute.
[Bug fortran/48636] Enable more inlining with -O2 and higher
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48636 --- Comment #30 from Jan Hubicka hubicka at gcc dot gnu.org 2012-10-28 10:08:23 UTC --- Created attachment 28543 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28543 Updated patch Hi, this is updated patch I am testing. It fixes the big speedup test and also changes badness metric completely to be based on expected speedup of the caller. It seems to work pretty well in my test with the catch that I still can't beat 4.6 on tramp3d.
[Bug fortran/48636] Enable more inlining with -O2 and higher
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48636 --- Comment #31 from Jan Hubicka hubicka at gcc dot gnu.org 2012-10-28 10:11:13 UTC --- Concerning vincenzo's request about 4.7 version, it won't work - it depends on improvements of inline metric and ipa-prop we made for 4.8
[Bug c++/54526] [C++11] :: is incorrectly treated as digraph : followed by colon
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54526 --- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-28 10:59:50 UTC --- You are right, sorry. I have a lexer patch in testing which I will be sending shortly.
[Bug fortran/51727] Changing module files
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51727 Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch changed: What|Removed |Added URL||http://gcc.gnu.org/ml/fortr ||an/2012-10/msg00061.html CC||Joost.VandeVondele at mat ||dot ethz.ch --- Comment #26 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 2012-10-28 11:11:19 UTC --- The patch has been posted some time ago, with an OK for trunk.. http://gcc.gnu.org/ml/fortran/2012-10/msg00067.html Maybe it is a good time to commit before the next stage starts ?
[Bug fortran/51727] Changing module files
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51727 --- Comment #27 from Tobias Schlüter tobi at gcc dot gnu.org 2012-10-28 11:15:24 UTC --- There were concerns about error handling in out-of-memory conditions which I addressed in a separate patch http://gcc.gnu.org/ml/gcc-patches/2012-10/msg01470.html. This patch got no reply so far. May plan was to submit the non-C++ patch if the patch for C++ error handling is not approved during stage 1.
[Bug fortran/48636] Enable more inlining with -O2 and higher
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48636 --- Comment #32 from vincenzo Innocente vincenzo.innocente at cern dot ch 2012-10-28 11:27:22 UTC --- In a small test (that I will eventually publish here) the new patch at -O2 looks superior to 4.7.2 at O3. I would like to build a test with multiple source files where lto matters though. We will also try to build our whole software stack with 4.8 (we have a production version with 4.7.2 at this point, so we can move to experimenting builds with 4.8…)
[Bug rtl-optimization/39607] [4.5 Regression] Revision 145309 caused ICE in emit_swap_insn, at reg-stack.c:827
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39607 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|REOPENED CC||steven at gcc dot gnu.org Resolution|FIXED | --- Comment #8 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:41:45 UTC --- Open again since r192440. The real problem here is this assert: if (hard_regno == -1) { /* Something failed if the register wasn't on the stack. If we had malformed asms, we zapped the instruction itself, but that didn't produce the same pattern of register sets as before. To prevent further failure, adjust REGSTACK to include REG at TOP. */ gcc_assert (any_malformed_asm); regstack-reg[++regstack-top] = REGNO (reg); return; } If IRA uses DF_LIVE, the assert may trigger if there is a use of a stack register that is not initialized. The following C test case (derived from gfortran.dg/pr40587.f) shows the problem: void test (int *i, double *r, double *result) { int i2; double r2; i2 = *i; if (i == 0) r2 = *r; else error (); *result = r2; } r2 is used uninitialized if the path through error() is taken. When using DF_LR, r2 is made live through that path all the way up to the function entry, but when using DF_LIVE r2 is only live in the trace from r2 = *r to *result = r2. With IRA using DF_LIVE and removing the assert, the result is an fstpl instruction that triggers an FP-stack underflow. IMHO that would be a reasonable behavior for this kind of problem.
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 --- Comment #7 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:44:50 UTC --- The problems of comment #4 and comment #5 are PR39607, a problem that should be solved in reg-stack. The problem of comment #0 is a problem in IRA. There is code to prevent stack registers from living across EDGE_ABNORMAL edges but clearly this code fails in the pr48757.f test case. I suspect there is a bug in the splitting or merging of allocno ranges where the ALLOCNO_NO_STACK_REG_P and ALLOCNO_TOTAL_NO_STACK_REG_P maybe are not properly copied/merged.
[Bug rtl-optimization/38711] ira should not be using df-lr except at -O1.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38711 --- Comment #4 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:52:16 UTC --- Author: steven Date: Sun Oct 28 11:52:11 2012 New Revision: 192890 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=192890 Log: PR rtl-optimization/38711 * ira.c (ira): Remove DF_LIVE if the problem is in the stack. (do_reload): Add it back at the end for -O2 and higher. * function.c (thread_prologue_and_epilogue_insns): Use REG_SET_TO_HARD_REG_SET instead of CLEAR_HARD_REG_SET and reg_set_to_hard_reg_set. Modified: trunk/gcc/ChangeLog trunk/gcc/function.c trunk/gcc/ira.c
[Bug rtl-optimization/38711] ira should not be using df-lr except at -O1.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38711 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | --- Comment #5 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:53:01 UTC --- Much of GCC is still not ready for this.
[Bug rtl-optimization/39607] [4.5 Regression] Revision 145309 caused ICE in emit_swap_insn, at reg-stack.c:827
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39607 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|REOPENED|SUSPENDED --- Comment #9 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:53:53 UTC --- Depends on IRA using DF_LIVE. To be visited later.
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|NEW |SUSPENDED --- Comment #8 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:54:16 UTC --- Depends on IRA using DF_LIVE. To be visited later.
[Bug rtl-optimization/54993] [4.8 regression] PIC register not marked as live
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54993 --- Comment #1 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 12:33:50 UTC --- I cannot reproduce this problem, neither before nor after r192890. Can you please attach the .ira dump (with -fdump-rtl-ira-all) after r192890, with and without the following patch applied? Index: ira.c === --- ira.c (revision 192893) +++ ira.c (working copy) @@ -4405,9 +4405,11 @@ interpretation of the DF_LR problem. See PR38711. Remove the problem, so that we don't spend time updating it in any of the df_analyze() calls during IRA/LRA. */ +#if 0 if (optimize 1) df_remove_problem (df_live); gcc_checking_assert (df_live == NULL); +#endif #ifdef ENABLE_CHECKING df-changeable_flags |= DF_VERIFY_SCHEDULED;
[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55041 --- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2012-10-28 12:54:01 UTC --- I think the reason this doesn't show up everywhere is due to a problem with older versions of GDB. Using GDB 7.3.50.20110722-16.fc16 I get this in the test logs: 48362.gdb:5: Error in sourced command file:^M No symbol t1 in current context.^M skipping: 48362.gdb:5: Error in sourced command file:^M skipping: No symbol t1 in current context.^M UNSUPPORTED: libstdc++-prettyprinters/48362.cc and I've had the same problem running gdb myself, with gdb saying No symbol x in current context for all local variables, when they clearly do exist! I also see GDB 7.3 completely confused about the type of std::string: Temporary breakpoint 1, main () at d.cc:6 6 std::string s1 = string 1; (gdb) n 7 std::string s2 = string 2; (gdb) p s1 $1 = {i = {1431655765, -1077586603}, x = -0.1} (gdb) ptype s1 type = const union { int4 i[2]; double x; } Huh?! Using GDB from the git mirror or upgrading to rawhide's 7.5.0.20120926-25.fc18 makes the problem go away and now I see the FAILs when running libstdc++-prettyprinters.exp (which I'm fixing now) This only happens for code built with trunk, so there seems to be some problem with trunk and GDB 7.3 - any ideas?
[Bug target/27619] wrong code for mixed-mode division with -mpowerpc64 -O1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27619 Segher Boessenkool segher at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||INVALID --- Comment #18 from Segher Boessenkool segher at gcc dot gnu.org 2012-10-28 13:15:14 UTC --- Not a GCC bug; fixed in binutils (will be in 2.24).
[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55041 --- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org 2012-10-28 13:20:38 UTC --- Author: redi Date: Sun Oct 28 13:20:31 2012 New Revision: 192894 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=192894 Log: PR libstdc++/55041 * python/libstdcxx/v6/printers.py (Tr1UnorderedMapPrinter): Update to handle hashtable as member of unordered_map not base class. (Tr1UnorderedSetPrinter): Likewise. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/python/libstdcxx/v6/printers.py
[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55041 --- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org 2012-10-28 13:27:20 UTC --- The shared_ptr tests fail because GDB is getting the variable's type wrong, seeing it as the base class not the correct type: (gdb) p sp1 $1 = {std::__shared_ptrint, (__gnu_cxx::_Lock_policy)2 = {_M_ptr = 0x12345678, _M_refcount = {_M_pi = 0x604010}}, No data fields} (gdb) p wp1 $2 = {std::__weak_ptrint, (__gnu_cxx::_Lock_policy)2 = {_M_ptr = 0x12344321, _M_refcount = {_M_pi = 0x604040}}, No data fields} (gdb) p wp2 $3 = {std::__weak_ptrint, (__gnu_cxx::_Lock_policy)2 = {_M_ptr = 0x56788765, _M_refcount = {_M_pi = 0x604070}}, No data fields} (gdb) p/r wp2 $4 = {std::__weak_ptrint, (__gnu_cxx::_Lock_policy)2 = {_M_ptr = 0x56788765, _M_refcount = {_M_pi = 0x604070}}, No data fields} (gdb) p/r sp1 $5 = {std::__shared_ptrint, (__gnu_cxx::_Lock_policy)2 = {_M_ptr = 0x12345678, _M_refcount = {_M_pi = 0x604010}}, No data fields} This doesn't look like a libstdc++ problem.
[Bug c++/55104] New: ice in inline_call, at ipa-inline-transform.c:269
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55104 Bug #: 55104 Summary: ice in inline_call, at ipa-inline-transform.c:269 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: dcb...@hotmail.com Created attachment 28544 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28544 gzipped C++ source code I just tried to compile the package openbabel-2.3.1-6 on gcc-4.8 trunk dated 20121027 on an AMD x86_64 box. The compiler said /home/dcb/rpmbuild/BUILD/openbabel-2.3.1/src/mol.cpp:4233:1: internal compiler error: in inline_call, at ipa-inline-transform.c:269 } // end namespace OpenBabel ^ 0xe8e22b inline_call(cgraph_edge*, bool, vec_tcgraph_edge***, int*, bool) ../../src/trunk/gcc/ipa-inline-transform.c:265 0xe8d214 inline_small_functions ../../src/trunk/gcc/ipa-inline.c:1524 0xe8d214 ipa_inline ../../src/trunk/gcc/ipa-inline.c:1706 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. Preprocessed source code attached. Flag -O3 required.
[Bug c/55105] New: use of LD_LIBRARY_PATH incorrect for AIX -- cause trunk build to fail
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55105 Bug #: 55105 Summary: use of LD_LIBRARY_PATH incorrect for AIX -- cause trunk build to fail Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: pedz...@gmail.com configure.ac has this: # Decide which environment variable is used to find dynamic libraries. case ${host} in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac Starting with AIX 6.1, LD_LIBRARY_PATH is used. I don't 100% understand the intent of the code above. The environment variable mentioned (e.g. LD_LIBRARY_PATH) is passed via the environment when (e.g.) libatomic is built. With LD_LIBRARY_PATH in the environment, xgcc and cc1 no longer execute properly because at the time they execute, LD_LIBRARY_PATH points to the bit version being built -- not the bit version that xgcc was built for. There is a longer description here: http://gcc.gnu.org/ml/gcc/2012-10/msg00386.html I changed it to this: # Decide which environment variable is used to find dynamic libraries. case ${host} in *-*-aix*) RPATH_ENVVAR=BOGUS ;; *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac In theory, it should be LIBPATH but I'm sure that will cause the build to fail as well. In essence, the logic needs to be reviewed. Perhaps other platforms are different in their use of LD_LIBRARY_PATH / LIBPATH than AIX.
[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55041 --- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org 2012-10-28 13:37:31 UTC --- Sorry, I misread that output, it does know the right type, it just doesn't match the printer for some reason (gdb) ptype sp1 type = class std::shared_ptrint : public std::__shared_ptrint, (__gnu_cxx::_Lock_policy)2 { public: void shared_ptr(void); void shared_ptr(const std::shared_ptrint ); void shared_ptr(unknown type in /dev/shm/a.out, CU 0x0, DIE 0x127f); void shared_ptr(std::nullptr_t); std::shared_ptrint operator=(const std::shared_ptrint ); std::shared_ptrint operator=(unknown type in /dev/shm/a.out, CU 0x0, DIE 0x12e3); void shared_ptrint, deleter(int *, deleter); } (I'll file a separate bug about the unknown type error for the shared_ptr type)
[Bug debug/54773] no debug info generated for rvalue reference
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54773 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added CC||jason at gcc dot gnu.org --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-10-28 13:53:11 UTC --- This seems to be fixed on trunk, but GDB can't handle it: struct X { X operator=(X) { return *this; } }; int main() { X x; x = X(); } 15e: Abbrev Number: 8 (DW_TAG_rvalue_reference_type) 5f DW_AT_byte_size : 8 60 DW_AT_type: 0x29 Temporary breakpoint 1, main () at rv.cc:8 8 x = X(); (gdb) ptype x type = struct X { public: X operator=(unknown type in /dev/shm/a.out, CU 0x0, DIE 0x4b); } Jason, can this be closed as fixed?
[Bug libstdc++/55041] prettyprinting/shared_ptr cxx11 fails on some platforms
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55041 --- Comment #10 from Jonathan Wakely redi at gcc dot gnu.org 2012-10-28 13:57:00 UTC --- (In reply to comment #9) (I'll file a separate bug about the unknown type error for the shared_ptr type) That's http://sourceware.org/PR14441
[Bug c++/55106] New: ice: Maximum number of LRA constraint passes is achieved (15)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55106 Bug #: 55106 Summary: ice: Maximum number of LRA constraint passes is achieved (15) Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: dcb...@hotmail.com Created attachment 28545 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28545 C++ source code I just tried to compile the package verilator-3.805-5 on gcc-4.8 trunk dated 20121027 on an AMD x86_64 box. The compiler said ../V3Number.cpp:1286:1: internal compiler error: Maximum number of LRA constraint passes is achieved (15) } ^ 0x994c28 lra_constraints(bool) ../../src/trunk/gcc/lra-constraints.c:3262 0x9882fe lra(_IO_FILE*) ../../src/trunk/gcc/lra.c:2281 0x9507a6 do_reload ../../src/trunk/gcc/ira.c:4614 0x9507a6 rest_of_handle_reload ../../src/trunk/gcc/ira.c:4720 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. Preprocessed source code attached. Flag -O3 required.
[Bug tree-optimization/55107] New: GCC in an infinite loop at -O2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55107 Bug #: 55107 Summary: GCC in an infinite loop at -O2 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: antoine.balest...@gmail.com Hello ! GCC 4.8.0 as of 20121021 and GCC 4.7.2 won't compile the following testcase at -O2 and higher because they look stuck in an infinite loop. $ cat infinite.c #include stdint.h uint16_t a, b; uint16_t f(void) { int c, **p; short d = 2, e = 4; for (;; b++) { int *j, k = 0; for (; *j; j++) { for(; c; c++) for(; k 1; k++) { short *f = d; if(b) return *f; } } if(!c) d *= e; ((a = d) ? b = 0 : (**p ? : 1) != (d != 1 ? : (a = 0))) != (k ? a : 0) (a *= c = k) (**p = 0); } } $ ulimite -t 60 $ xgcc -O2 -w infinite.c cc: internal compiler error: CPU time limit exceeded (program cc1) linux-vdso.so.1: No such file or directory 0x40b937 execute ../../srcdir/gcc/gcc.c:2739 0x40c7be do_spec_1 ../../srcdir/gcc/gcc.c:4534 0x40f0d5 process_brace_body ../../srcdir/gcc/gcc.c:5782 0x40f0d5 handle_braces ../../srcdir/gcc/gcc.c:5696 0x40d397 do_spec_1 ../../srcdir/gcc/gcc.c:5179 0x40f0d5 process_brace_body ../../srcdir/gcc/gcc.c:5782 0x40f0d5 handle_braces ../../srcdir/gcc/gcc.c:5696 0x40d397 do_spec_1 ../../srcdir/gcc/gcc.c:5179 0x40cff7 do_spec_1 ../../srcdir/gcc/gcc.c:5284 0x40f0d5 process_brace_body ../../srcdir/gcc/gcc.c:5782 0x40f0d5 handle_braces ../../srcdir/gcc/gcc.c:5696 0x40d397 do_spec_1 ../../srcdir/gcc/gcc.c:5179 0x40f0d5 process_brace_body ../../srcdir/gcc/gcc.c:5782 0x40f0d5 handle_braces ../../srcdir/gcc/gcc.c:5696 0x40d397 do_spec_1 ../../srcdir/gcc/gcc.c:5179 0x40f0d5 process_brace_body ../../srcdir/gcc/gcc.c:5782 0x40f0d5 handle_braces ../../srcdir/gcc/gcc.c:5696 0x40d397 do_spec_1 ../../srcdir/gcc/gcc.c:5179 0x40f0d5 process_brace_body ../../srcdir/gcc/gcc.c:5782 0x40f0d5 handle_braces ../../srcdir/gcc/gcc.c:5696 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. Note that the stack trace looks the same as in PR55011.
[Bug rtl-optimization/55106] ice: Maximum number of LRA constraint passes is achieved (15)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55106 Markus Trippelsdorf markus at trippelsdorf dot de changed: What|Removed |Added CC||markus at trippelsdorf dot ||de, vmakarov at gcc dot ||gnu.org --- Comment #1 from Markus Trippelsdorf markus at trippelsdorf dot de 2012-10-28 14:52:03 UTC --- markus@x4 tmp % cat test.ii templatetypename _Tp struct A { typedef _Tp *pointer; typedef _Tp reference; typedef _Tp const_reference; templatetypenamestruct rebind { typedef A other; }; }; templatetypename _Allocstruct __alloc_traits { typedef typename _Alloc::pointer pointer; typedef typename _Alloc::reference reference; typedef typename _Alloc::const_reference const_reference; templatetypename _Tpstruct rebind { typedef typename _Alloc::template rebind_Tp::other other; }; }; templatetypename _Tp, typename _Allocstruct B { typedef typename __alloc_traits_Alloc::template rebind _Tp::other _Tp_alloc_type; typedef typename __alloc_traits_Tp_alloc_type::pointer pointer; struct F { pointer _M_start; }; F _M_impl; }; templatetypename _Tp, typename _Alloc = A_Tp class vec : B_Tp, _Alloc{ typedef B_Tp, _Alloc _Base; typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; typedef __alloc_traits_Tp_alloc_type _Alloc_traits; public: typedef _Tp value_type; typedef typename _Alloc_traits::reference reference; typedef typename _Alloc_traits::const_reference const_reference; reference operator[](int p1) { return *(this-_M_impl._M_start + p1); } const_reference operator[](long) const; }; int a[17]; class C { vecint m_value; void opModDivGuts(const C); int mostSetBitP1() const; }; void C::opModDivGuts(const C p1) { int b = p1.mostSetBitP1(), c = b + 1; int d[16]; for (int i = c; i; i--) a[i] = p1.m_value[i] b; for (int i = 0; i c; i++) m_value[i] = d[i] b -b; } markus@x4 tmp % g++ -Wall -Wextra -c -O3 test.ii test.ii: In member function ‘void C::opModDivGuts(const C)’: test.ii:65:1: internal compiler error: Maximum number of LRA constraint passes is achieved (15)
[Bug target/54996] gcc with --target=avr fails to build
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54996 --- Comment #2 from lvd.mhm at gmail dot com 2012-10-28 15:25:28 UTC --- I was wrong not setting $PATH to just compiled binutils. However, even after setting correct $PATH or just compiling binutils to default /usr/local/bin, problem still persisted. I used clean x86_64 virtual machine with fresh ubuntu12.04.1 server install with just nothing installed except SSH and then packages needed to build binutils and gcc, and I've found, that bug exists when $PATH has ./ at first place. If there is no ./ in $PATH or ./ at the end, gcc compiles fine. Of course then same behavior repeats itself on hardware.
[Bug target/54996] gcc with --target=avr fails to build
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54996 lvd.mhm at gmail dot com changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED Resolution|INVALID | --- Comment #3 from lvd.mhm at gmail dot com 2012-10-28 15:27:04 UTC --- up
[Bug rtl-optimization/54993] [4.8 regression] PIC register not marked as live
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54993 --- Comment #2 from Andreas Schwab sch...@linux-m68k.org 2012-10-28 15:30:37 UTC --- What exactly did you test? The bug is clearly present before r192890. Here is the diff between r192889 and r192890: @@ -1663,16 +1663,17 @@ _Z6test01v: .cfi_startproc .cfi_personality 0,__gxx_personality_v0 .cfi_lsda 0,.LLSDA2633 -link.w %fp,#-68 +link.w %fp,#-72 .cfi_offset 14, -8 .cfi_def_cfa 14, 8 movem.l #12348,-(%sp) -.cfi_offset 2, -100 -.cfi_offset 3, -96 -.cfi_offset 10, -92 -.cfi_offset 11, -88 -.cfi_offset 12, -84 -.cfi_offset 13, -80 +.cfi_offset 2, -104 +.cfi_offset 3, -100 +.cfi_offset 10, -96 +.cfi_offset 11, -92 +.cfi_offset 12, -88 +.cfi_offset 13, -84 +lea (%pc, _GLOBAL_OFFSET_TABLE_@GOTPC), %a5 clr.l -48(%fp) clr.l -44(%fp) pea 104.w @@ -1791,22 +1792,22 @@ _Z6test01v: jsr _ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE .LEHE14: addq.l #8,%sp -move.l -16(%fp),%a5 -tst.l %a5 +move.l -16(%fp),%a1 +tst.l %a1 jeq .L329 -lea (4,%a5),%a0 +lea (4,%a1),%a0 move.l #_ZL28__gthrw___pthread_key_createPjPFvPvE,%d2 jeq .L323 move.l (%a0),%d0 .L324: -move.l %d0,%a1 +move.l %d0,%d3 move.l %d0,%d1 subq.l #1,%d1 cas.l %d0,%d1,(%a0) seq %d1 tst.b %d1 jeq .L324 -move.l %a1,%d0 +move.l %d3,%d0 moveq #1,%d1 cmp.l %d0,%d1 jeq .L446 @@ -1925,7 +1926,7 @@ _Z6test01v: cmp.l %a0,%d1 jeq .L450 .L309: -movem.l -92(%fp),#15372 +movem.l -96(%fp),#15372 unlk %fp rts .L351: @@ -2005,30 +2006,32 @@ _Z6test01v: sub.l %a0,%a0 jra .L321 .L446: -move.l (%a5),%a0 -move.l %a5,-(%sp) +move.l (%a1),%a0 +move.l %a1,-(%sp) move.l 8(%a0),%a0 +move.l %a1,-72(%fp) jsr (%a0) -lea (8,%a5),%a0 +move.l -72(%fp),%a1 +lea (8,%a1),%a0 addq.l #4,%sp tst.l %d2 jeq .L326 move.l (%a0),%d0 .L327: -move.l %d0,%a1 +move.l %d0,%d2 move.l %d0,%d1 subq.l #1,%d1 cas.l %d0,%d1,(%a0) seq %d1 tst.b %d1 jeq .L327 -move.l %a1,%d0 +move.l %d2,%d0 moveq #1,%d1 cmp.l %d0,%d1 jne .L329 .L452: -move.l (%a5),%a0 -move.l %a5,-(%sp) +move.l (%a1),%a0 +move.l %a1,-(%sp) move.l 12(%a0),%a0 jsr (%a0) addq.l #4,%sp @@ -2056,7 +2059,7 @@ _Z6test01v: move.l 12(%a0),%a0 jsr (%a0) addq.l #4,%sp -movem.l -92(%fp),#15372 +movem.l -96(%fp),#15372 unlk %fp rts .L449: @@ -2147,19 +2150,19 @@ _Z6test01v: addq.l #1,4(%a2) jra .L312 .L323: -move.l 4(%a5),%d0 +move.l 4(%a1),%d0 move.l %d0,%d1 subq.l #1,%d1 -move.l %d1,4(%a5) +move.l %d1,4(%a1) moveq #1,%d1 cmp.l %d0,%d1 jne .L329 jra .L446 .L326: -move.l 8(%a5),%d0 +move.l 8(%a1),%d0 move.l %d0,%d1 subq.l #1,%d1 -move.l %d1,8(%a5) +move.l %d1,8(%a1) moveq #1,%d1 cmp.l %d0,%d1 jne .L329
[Bug rtl-optimization/54993] [4.8 regression] PIC register not marked as live
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54993 --- Comment #3 from Andreas Schwab sch...@linux-m68k.org 2012-10-28 15:36:55 UTC --- Created attachment 28546 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28546 wait.ii.203r.ira.r192889
[Bug rtl-optimization/54993] [4.8 regression] PIC register not marked as live
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54993 --- Comment #4 from Andreas Schwab sch...@linux-m68k.org 2012-10-28 15:38:09 UTC --- Created attachment 28547 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28547 wait.ii.203r.ira.r192890
[Bug c/55108] New: bad compile-time evaluation of members of initialized union
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55108 Bug #: 55108 Summary: bad compile-time evaluation of members of initialized union Classification: Unclassified Product: gcc Version: 4.6.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: a...@cam.ac.uk Created attachment 28548 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28548 internal file bad.i obtained using -save-temp, as requested. gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper Target: arm-linux-gnueabihf Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-8+rpi1' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf Thread model: posix gcc version 4.6.3 (Debian 4.6.3-8+rpi1) File bad.c contains #include stdio.h int main(int argc, char *argv[]) { union { double d; unsigned char c[8]; } u = {1.0/7.0}; printf(Bytes from float are %x %x %x %x\n, u.c[0] 0xff, u.c[1] 0xff, u.c[2] 0xff, u.c[3] 0xff); return 0; } My hope is that the aliasing is OK both because the float is aliased with chars and because I believed that GCC was kind about unions. The output is acn1@raspberrypi ~ $ gcc -O0 bad.c -o bad0 acn1@raspberrypi ~ $ gcc -O1 bad.c -o bad1 -Wall -Wextra bad.c: In function ‘main’: bad.c:3:14: warning: unused parameter ‘argc’ [-Wunused-parameter] bad.c:3:26: warning: unused parameter ‘argv’ [-Wunused-parameter] acn1@raspberrypi ~ $ ./bad0 Bytes from float are 92 24 49 92 expected output acn1@raspberrypi ~ $ ./bad1 Bytes from float are 92 924924 9249 92output 0xff unexpected acn1@raspberrypi ~ $ To my mind whatever else might be going on the 0xff that I have should not let me get such large numbers displayed! The .i file is attached. gcc is evaluating the components of the union at compile time and not respecting the unsigned char width or the subseqent 0xff.
[Bug middle-end/54957] Two crashes introduced by rev192488
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54957 --- Comment #17 from Jorn Wolfgang Rennecke amylaar at gcc dot gnu.org 2012-10-28 16:37:46 UTC --- (In reply to comment #8) Created attachment 28466 [details] Proposed patch Handle the possibility that stmt_bb may be NULL in emit_case_dispatch_table. Untested. It works for arc-elf32.
[Bug fortran/54958] Wrongly rejects ac-implied-DO variables which also occur with INTENT(IN)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54958 --- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2012-10-28 16:57:15 UTC --- Author: burnus Date: Sun Oct 28 16:57:12 2012 New Revision: 192896 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=192896 Log: 2012-10-28 Tobias Burnus bur...@net-b.de PR fortran/54958 * gfortran.h (gfc_resolve_iterator_expr, gfc_check_vardef_context): Update prototype. * expr.c (gfc_check_vardef_context): Add own_scope argument and honour it. * resolve.c (gfc_resolve_iterator_expr): Add own_scope argument and honour it. (resolve_deallocate_expr, resolve_allocate_expr, resolve_data_variables, resolve_transfer resolve_lock_unlock, resolve_code): Update calls. * array.c (resolve_array_list): Ditto. * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto. * interface.c (compare_actual_formal): Ditto. * intrinsic.c (check_arglist): Ditto. * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): * Ditto. 2012-10-28 Tobias Burnus bur...@net-b.de PR fortran/54958 * gfortran.dg/do_check_6.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/do_check_6.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/array.c trunk/gcc/fortran/check.c trunk/gcc/fortran/expr.c trunk/gcc/fortran/gfortran.h trunk/gcc/fortran/interface.c trunk/gcc/fortran/intrinsic.c trunk/gcc/fortran/io.c trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog
[Bug c++/55109] New: internal compiler error: Segmentation fault while reporting error in template function instantiation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55109 Bug #: 55109 Summary: internal compiler error: Segmentation fault while reporting error in template function instantiation Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: zetaetadan...@gmail.com The compiler command was: g++ -DHAVE_CONFIG_H -I.-O0 -g -std=c++11 -I src/ -Wall -Wextra -Werror -Wno-error=unused-variable -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -MT mc___server-NetworkServer.o -MD -MP -MF .deps/mc___server-NetworkServer.Tpo -c -o mc___server-NetworkServer.o `test -f 'src/network/NetworkServer.cpp' || echo './'`src/network/NetworkServer.cpp The compiler output was (template stuff formatted for readability): In file included from src/network/NetworkServer.cpp:22:0: src/Scheduler.hpp: In instantiation of ‘typename std::enable_if std::__and_ std::is_convertible MemberFunc, std::function decltype (MCServer::Scheduler::startThread::obj- **MCServer::Scheduler::startThread::func( MCServer::Scheduler::startThread::args ... ) ) (Args ...) , std::is_member_function_pointerMemberFunc ::value, long unsigned int ::type MCServer::Scheduler::startImportantThread(MemberFunc, Class*, Args ...) [with MemberFunc = void (MCServer::Network::NetworkServer::*)(); Class = MCServer::Network::NetworkServer; Args = {}; typename std::enable_if std::__and_ std::is_convertible MemberFunc, std::function decltype (MCServer::Scheduler::startThread::obj- **MCServer::Scheduler::startThread::func( MCServer::Scheduler::startThread::args ... ) ) (Args ...) , std::is_member_function_pointerMemberFunc ::value, long unsigned int ::type = long unsigned int]’: src/network/NetworkServer.cpp:69:74: required from here src/Scheduler.hpp:187:156: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See https://bugs.archlinux.org/ for instructions. The backtrace of the segfault is: #0 0x004e00e7 in ?? () #1 0x004e0464 in tsubst_copy_and_build () #2 0x004dbffa in ?? () #3 0x004e7ddf in ?? () #4 0x004e105b in tsubst_copy_and_build () #5 0x004dbffa in ?? () #6 0x004e28c0 in tsubst () #7 0x004e881c in ?? () #8 0x004e2ceb in tsubst () #9 0x004e5b13 in ?? () #10 0x004df422 in ?? () #11 0x004e2ec9 in tsubst () #12 0x004e0dac in tsubst_copy_and_build () #13 0x004e0ffe in tsubst_copy_and_build () #14 0x004dbffa in ?? () #15 0x004dcd0f in ?? () #16 0x004dcc4c in ?? () #17 0x004dc118 in ?? () #18 0x004f0da3 in instantiate_decl () #19 0x004f37ac in instantiate_pending_templates () #20 0x0050979d in cp_write_global_declarations () #21 0x00831a58 in toplev_main () #22 0x75eca725 in __libc_start_main () from /usr/lib/libc.so.6 #23 0x004abaf1 in _start () which is of course very incomplete, and I am currently compiling gcc with debug symbols to get a better backtrace, but it will take some time. The preprocessed source of the file being compiled is here: http://www.mediafire.com/?hdv6qddwnwclj82
[Bug rtl-optimization/54993] [4.8 regression] PIC register not marked as live
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54993 --- Comment #5 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 17:24:17 UTC --- (In reply to comment #2) What exactly did you test? The bug is clearly present before r192890. I was testing a cross from powerpc64-unknown-linux-gnu to m68k-linux-gnu, your wait.ii test case, with -fPIC -O2 -std=gnu++0x. Perhaps I somehow messed up, I'll try again.
[Bug tree-optimization/55110] New: Internal compiler error in vectorizable_reduction, at tree-vect-loop.c:4633
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55110 Bug #: 55110 Summary: Internal compiler error in vectorizable_reduction, at tree-vect-loop.c:4633 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: antoine.balest...@gmail.com Hello ! The following testcase makes GCC 4.8.0 as of 20121021 crash with -O1 -ftree-vectorize. $ cat vector.c int a, b, c; void f(void) { for(; b; b++) for(c = 0; c 2; c++) a /= 5; } $ xgcc -O1 -ftree-vectorize -w vector.c vector.c: In function ‘f’: vector.c:3:6: internal compiler error: in vectorizable_reduction, at tree-vect-loop.c:4633 void f(void) ^ linux-vdso.so.1: No such file or directory 0xa67b9c vectorizable_reduction(gimple_statement_d*, gimple_stmt_iterator*, gimple_statement_d**, _slp_tree*) ../../srcdir/gcc/tree-vect-loop.c:4633 0xa58fa0 vect_analyze_stmt(gimple_statement_d*, bool*, _slp_tree*) ../../srcdir/gcc/tree-vect-stmts.c:5710 0xa58aca vect_analyze_stmt(gimple_statement_d*, bool*, _slp_tree*) ../../srcdir/gcc/tree-vect-stmts.c:5632 0xa6356d vect_analyze_loop_operations ../../srcdir/gcc/tree-vect-loop.c:1447 0xa6356d vect_analyze_loop_2 ../../srcdir/gcc/tree-vect-loop.c:1725 0xa6356d vect_analyze_loop(loop*) ../../srcdir/gcc/tree-vect-loop.c:1778 0xa75f1c vectorize_loops() ../../srcdir/gcc/tree-vectorizer.c:114 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug c++/55109] internal compiler error: Segmentation fault while reporting error in template function instantiation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55109 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2012-10-28 Ever Confirmed|0 |1 --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-10-28 17:55:32 UTC --- Please reduce the testcase as much as possible - there are many tools which you can use for that, delta, creduce - and attach here what you get.
[Bug c++/55095] Wshift-overflow
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55095 --- Comment #4 from joseph at codesourcery dot com joseph at codesourcery dot com 2012-10-28 17:58:55 UTC --- The constant folder (fold-const.c:int_const_binop_1) would seem to be the place where overflow information would most readily be available for this: as I understand it, it's specifically about constants, rather than the generic issue that almost any left shift with nonconstant operands might overflow. If diagnosing there, you'd want to pass down a location a few levels from fold_binary_loc (so changing lots of calls to const_binop to pass a location). (In any case, double-int will need a new interface to report whether shift overflow has occurred.)
[Bug c++/55077] implement and enable by default -Wliteral-conversion
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55077 --- Comment #2 from joseph at codesourcery dot com joseph at codesourcery dot com 2012-10-28 18:02:07 UTC --- On Sat, 27 Oct 2012, manu at gcc dot gnu.org wrote: // Expressions, such as those that indicate rounding-down, should NOT produce warnings. int x = 24 * 0.5; int y = (24*60*60) * 0.25; int pennies = 123.45 * 100; The last of those seems pretty suspicious (123.45 isn't an exact floating-point value, but the user probably wants 12345 independent of whether the floating-point value is above or below the exact decimal value). Are you *sure* you don't want a warning in such a case?
[Bug target/51106] [4.6 Regression] ICE in move_insn, at haifa-sched.c:2314
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51106 --- Comment #21 from Andrey Belevantsev abel at gcc dot gnu.org 2012-10-28 18:17:16 UTC --- (In reply to comment #20) This issue still exists in mainline, there seems to be no objection to Andrey's suggested fix, could someone please commit it? Not quite, the last message was http://gcc.gnu.org/ml/gcc-patches/2012-04/msg00161.html and then there was no consensus about the way to proceed.
[Bug fortran/54958] Wrongly rejects ac-implied-DO variables which also occur with INTENT(IN)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54958 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||burnus at gcc dot gnu.org Resolution||FIXED --- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-10-28 18:25:19 UTC --- FIXED on the 4.8 trunk.
[Bug c++/55095] Wshift-overflow
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55095 --- Comment #5 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-10-28 18:34:43 UTC --- (In reply to comment #4) The constant folder (fold-const.c:int_const_binop_1) would seem to be the place where overflow information would most readily be available for this: as I understand it, it's specifically about constants, rather than the generic issue that almost any left shift with nonconstant operands might overflow. If diagnosing there, you'd want to pass down a location a few levels from fold_binary_loc (so changing lots of calls to const_binop to pass a location). (In any case, double-int will need a new interface to report whether shift overflow has occurred.) Is there some interface that I can directly call to perform the shift in the largest available precision (or infinite precision if that is possible) and then convert the result to the result type and compare the two values? That seems much more straight-forward than going through fold-const. And it allows to report what the result would have been and how much precision would be needed for it, like clang does.
[Bug rtl-optimization/54993] [4.8 regression] PIC register not marked as live
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54993 --- Comment #6 from Andreas Schwab sch...@linux-m68k.org 2012-10-28 18:34:52 UTC --- I didn't write anything about -fPIC. The PIC register is used for TLS accesses.
[Bug tree-optimization/55111] New: ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:89
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55111 Bug #: 55111 Summary: ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:89 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: antoine.balest...@gmail.com With GCC 4.8.0 as of 20121021, at -O2 and higher : $ cat ssa.c int a, b, c; long d; unsigned long *e; int f(void) { for(;; a++) { if(c) { for(b = d = 0; b 1; b++) e = d; --*e; if(d 0) a = 0; return d; } } } $ xgcc -O2 -w ssa.c ssa.c: In function ‘f’: ssa.c:5:5: internal compiler error: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:89 int f(void) ^ linux-vdso.so.1: No such file or directory 0xa90b9a tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../srcdir/gcc/tree.c:8896 0xa7650d tree_check ../../srcdir/gcc/tree.h:3676 0xa7650d live_on_edge ../../srcdir/gcc/tree-vrp.c:89 0xa7ce9a register_edge_assert_for_2 ../../srcdir/gcc/tree-vrp.c:4736 0xa7e4e0 register_edge_assert_for ../../srcdir/gcc/tree-vrp.c:5216 0xa81734 find_conditional_asserts ../../srcdir/gcc/tree-vrp.c:5304 0xa81734 find_assert_locations_1 ../../srcdir/gcc/tree-vrp.c:5518 0xa88136 find_assert_locations ../../srcdir/gcc/tree-vrp.c:5658 0xa88136 insert_range_assertions ../../srcdir/gcc/tree-vrp.c:5846 0xa88136 execute_vrp ../../srcdir/gcc/tree-vrp.c:9156 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug fortran/52724] Internal read with character(kind=4) data
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52724 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #7 from Thomas Koenig tkoenig at gcc dot gnu.org 2012-10-28 20:51:37 UTC --- Fixed on trunk, closing.
[Bug target/49263] SH Target: underutilized TST #imm, R0 instruction
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49263 --- Comment #19 from Oleg Endo olegendo at gcc dot gnu.org 2012-10-28 22:01:47 UTC --- Another thing I've noticed... Cases such as: mov.l r0,@r2! LS mov r13,r0! MT and #7,r0 ! EX tst r0,r0 ! MT bt/s.L8 ! BR mov.l r0,@(16,r1) where the result of the and op is re-used would be slightly better as: mov.l r0,@r2 ! LS mov r13,r0 ! MT tst #7,r0! MT and #7,r0! EX bt/s.L8 ! BR mov.l r0,@(16,r1) because it reduces dependency on the result of the and op and thus has a higher chance to be executed in parallel.
[Bug lto/55112] New: internal compiler error: in simplify_subreg, at simplify-rtx.c:5424
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55112 Bug #: 55112 Summary: internal compiler error: in simplify_subreg, at simplify-rtx.c:5424 Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: patr...@motec.com.au Using cross compile gcc (x86_64-powerpc-eabispe) the following command line results in an internal compiler error. I've attached the problem object file. Hope this is enough information, thanks. patrick@gtr:~/bug/report1$ powerpc-eabispe-gcc -v -Os -flto=jobserver -nostdlib -o test bug.o Using built-in specs. COLLECT_GCC=powerpc-eabispe-gcc COLLECT_LTO_WRAPPER=/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/lto-wrapper Target: powerpc-eabispe Configured with: /z/src/e7/toolchain/src/gcc-4.7.2/configure --prefix=/z/src/e7/toolchain/stage2 --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=powerpc-eabispe --enable-languages=c,c++ --with-sysroot=/z/src/e7/toolchain/../prex_sysroot --disable-nls --disable-werror --with-newlib --with-gmp=/z/src/e7/toolchain/stage2 --with-mpfr=/z/src/e7/toolchain/stage2 --disable-shared --disable-debug --disable-libssp --with-cpu=8540 Thread model: single gcc version 4.7.2 (GCC) COMPILER_PATH=/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/:/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/:/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/../../../../powerpc-eabispe/bin/ LIBRARY_PATH=/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/:/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/:/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/../../../../powerpc-eabispe/lib/ COLLECT_GCC_OPTIONS='-v' '-Os' '-flto=jobserver' '-nostdlib' '-o' 'test' '-mcpu=8540' /home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/collect2 -plugin /home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/liblto_plugin.so -plugin-opt=/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/lto-wrapper -plugin-opt=-fresolution=/tmp/ccTv6kV7.res -flto=jobserver --sysroot=/z/src/e7/toolchain/../prex_sysroot --eh-frame-hdr -V -dn -Bstatic -o test -L/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2 -L/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc -L/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/../../../../powerpc-eabispe/lib bug.o GNU ld (GNU Binutils) 2.22 Supported emulations: elf32ppc elf32ppclinux elf32ppcsim powerpc-eabispe-gcc @/tmp/ccu1YKNX.args Using built-in specs. COLLECT_GCC=powerpc-eabispe-gcc Target: powerpc-eabispe Configured with: /z/src/e7/toolchain/src/gcc-4.7.2/configure --prefix=/z/src/e7/toolchain/stage2 --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=powerpc-eabispe --enable-languages=c,c++ --with-sysroot=/z/src/e7/toolchain/../prex_sysroot --disable-nls --disable-werror --with-newlib --with-gmp=/z/src/e7/toolchain/stage2 --with-mpfr=/z/src/e7/toolchain/stage2 --disable-shared --disable-debug --disable-libssp --with-cpu=8540 Thread model: single gcc version 4.7.2 (GCC) COLLECT_GCC_OPTIONS='-c' '-msdata=none' '-mno-spe' '-mcpu=8540' '-v' '-Os' '-nostdlib' '-mcpu=8540' '-dumpdir' './' '-dumpbase' 'test.wpa' '-fltrans-output-list=/tmp/cc4GjAt6.ltrans.out' '-fwpa' '-fresolution=/tmp/ccTv6kV7.res' /home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/../../libexec/gcc/powerpc-eabispe/4.7.2/lto1 -quiet -dumpdir ./ -dumpbase test.wpa -msdata=none -mno-spe -mcpu=8540 -mcpu=8540 -auxbase bug -Os -version -fltrans-output-list=/tmp/cc4GjAt6.ltrans.out -fwpa -fresolution=/tmp/ccTv6kV7.res @/tmp/ccfQPfB6 GNU GIMPLE (GCC) version 4.7.2 (powerpc-eabispe) compiled by GNU C version 4.7.2, GMP version 5.0.1, MPFR version 3.1.1, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU GIMPLE (GCC) version 4.7.2 (powerpc-eabispe) compiled by GNU C version 4.7.2, GMP version 5.0.1, MPFR version 3.1.1, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
[Bug lto/55112] internal compiler error: in simplify_subreg, at simplify-rtx.c:5424
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55112 --- Comment #1 from Patrick Oppenlander patrick at motec dot com.au 2012-10-28 22:18:32 UTC --- Created attachment 28549 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28549 Problem object file
[Bug lto/55113] New: internal compiler error: in emit_library_call_value_1, at calls.c:3739
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55113 Bug #: 55113 Summary: internal compiler error: in emit_library_call_value_1, at calls.c:3739 Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: patr...@motec.com.au Created attachment 28550 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28550 Problem object files Using cross-compile gcc (x86_64 to powerpc) the following command line results in an internal compiler error. I have attached the problem object files (couldn't reduce beyond these two). Hope this is enough information, thanks. patrick@gtr:~/bug/report2$ powerpc-eabispe-gcc -v -Os -flto=jobserver -nostdlib -o test *.o Using built-in specs. COLLECT_GCC=powerpc-eabispe-gcc COLLECT_LTO_WRAPPER=/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/lto-wrapper Target: powerpc-eabispe Configured with: /z/src/e7/toolchain/src/gcc-4.7.2/configure --prefix=/z/src/e7/toolchain/stage2 --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=powerpc-eabispe --enable-languages=c,c++ --with-sysroot=/z/src/e7/toolchain/../prex_sysroot --disable-nls --disable-werror --with-newlib --with-gmp=/z/src/e7/toolchain/stage2 --with-mpfr=/z/src/e7/toolchain/stage2 --disable-shared --disable-debug --disable-libssp --with-cpu=8540 Thread model: single gcc version 4.7.2 (GCC) COMPILER_PATH=/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/:/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/:/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/../../../../powerpc-eabispe/bin/ LIBRARY_PATH=/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/:/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/:/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/../../../../powerpc-eabispe/lib/ COLLECT_GCC_OPTIONS='-v' '-Os' '-flto=jobserver' '-nostdlib' '-o' 'test' '-mcpu=8540' /home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/collect2 -plugin /home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/liblto_plugin.so -plugin-opt=/home/patrick/src/e7/toolchain/stage2/bin/../libexec/gcc/powerpc-eabispe/4.7.2/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXmIQW9.res -flto=jobserver --sysroot=/z/src/e7/toolchain/../prex_sysroot --eh-frame-hdr -V -dn -Bstatic -o test -L/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2 -L/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc -L/home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/powerpc-eabispe/4.7.2/../../../../powerpc-eabispe/lib bug0.o bug1.o GNU ld (GNU Binutils) 2.22 Supported emulations: elf32ppc elf32ppclinux elf32ppcsim powerpc-eabispe-gcc @/tmp/ccMr3FEZ.args Using built-in specs. COLLECT_GCC=powerpc-eabispe-gcc Target: powerpc-eabispe Configured with: /z/src/e7/toolchain/src/gcc-4.7.2/configure --prefix=/z/src/e7/toolchain/stage2 --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=powerpc-eabispe --enable-languages=c,c++ --with-sysroot=/z/src/e7/toolchain/../prex_sysroot --disable-nls --disable-werror --with-newlib --with-gmp=/z/src/e7/toolchain/stage2 --with-mpfr=/z/src/e7/toolchain/stage2 --disable-shared --disable-debug --disable-libssp --with-cpu=8540 Thread model: single gcc version 4.7.2 (GCC) COLLECT_GCC_OPTIONS='-c' '-msdata=none' '-mno-spe' '-mcpu=8540' '-v' '-Os' '-nostdlib' '-mcpu=8540' '-dumpdir' './' '-dumpbase' 'test.wpa' '-fltrans-output-list=/tmp/cc06h8H9.ltrans.out' '-fwpa' '-fresolution=/tmp/ccXmIQW9.res' /home/patrick/src/e7/toolchain/stage2/bin/../lib/gcc/../../libexec/gcc/powerpc-eabispe/4.7.2/lto1 -quiet -dumpdir ./ -dumpbase test.wpa -msdata=none -mno-spe -mcpu=8540 -mcpu=8540 -auxbase bug0 -Os -version -fltrans-output-list=/tmp/cc06h8H9.ltrans.out -fwpa -fresolution=/tmp/ccXmIQW9.res @/tmp/ccZssqpa GNU GIMPLE (GCC) version 4.7.2 (powerpc-eabispe) compiled by GNU C version 4.7.2, GMP version 5.0.1, MPFR version 3.1.1, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU GIMPLE (GCC) version 4.7.2 (powerpc-eabispe) compiled by GNU C version 4.7.2, GMP version 5.0.1, MPFR version 3.1.1, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
[Bug target/54963] [4.8 Regression] Wrong code generated for libgfortran/generated/eoshift3_8.c on SH
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54963 --- Comment #3 from Oleg Endo olegendo at gcc dot gnu.org 2012-10-28 23:01:24 UTC --- Created attachment 28551 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28551 Proposed patch This patch fixes the problem, by using 'emit_move_insn' instead of manually doing the DImode reg copy. I've seized the moment and refactored the abs patterns -- the T_REG clobber handling was a bit confusing and using mode iterators saves a few lines. Kaz, could you please have a look at this one? Only briefly tested with make-gcc and compiling CSiBE. There are no code size changes in the CSiBE set, except for one: jikespg-1.3 src/prntstat3576 - 3568 -8 / -0.223714 % I guess it's the T_REG clobber thing that has a positive impact on register allocation in this case.
[Bug lto/55113] internal compiler error: in emit_library_call_value_1, at calls.c:3739
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55113 --- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-10-28 23:27:17 UTC --- Can you attach the preprocessed source for those object files and how those object files were compiled?
[Bug lto/55112] internal compiler error: in simplify_subreg, at simplify-rtx.c:5424
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55112 --- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-10-28 23:28:39 UTC --- Can you attach the preprocessed source for this object file?
[Bug rtl-optimization/55093] [4.8 Regression] [x32] -maddress-mode=long failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55093 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Attachment #28541|0 |1 is obsolete|| --- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2012-10-29 00:10:37 UTC --- Created attachment 28552 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28552 A smaller testcase LRA failed to handle (insn 34 32 35 4 (parallel [ (set (reg:SI 79) (plus:SI (subreg:SI (reg/f:DI 16 argp) 0) (const_int 4 [0x4]))) (clobber (reg:CC 17 flags)) ]) x.ii:63 247 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_EQUIV (plus:SI (subreg:SI (reg/f:DI 16 argp) 0) (const_int 4 [0x4])) (nil The old reload eliminates argp: (insn 34 49 35 4 (parallel [ (set (reg:SI 4 si [79]) (plus:SI (reg:SI 4 si [79]) (const_int 20 [0x14]))) (clobber (reg:CC 17 flags)) ]) x.ii:63 247 {*addsi_1} (expr_list:REG_EQUIV (plus:SI (subreg:SI (plus:DI (reg/f:DI 7 sp) (const_int 16 [0x10])) 0) (const_int 4 [0x4])) (nil))) while LRA keeps: (insn 34 32 35 4 (parallel [ (set (reg:SI 4 si [79]) (plus:SI (reg:SI 16 argp) (const_int 20 [0x14]))) (clobber (reg:CC 17 flags)) ]) x.ii:63 247 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_EQUIV (plus:SI (subreg:SI (reg/f:DI 16 argp) 0) (const_int 4 [0x4])) (nil
[Bug rtl-optimization/55093] [4.8 Regression] [x32] -maddress-mode=long failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55093 --- Comment #5 from H.J. Lu hjl.tools at gmail dot com 2012-10-29 00:41:19 UTC --- This patch: diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c index d80..681c609 100644 --- a/gcc/lra-eliminations.c +++ b/gcc/lra-eliminations.c @@ -272,7 +272,7 @@ get_elimination (rtx reg) if ((hard_regno = REGNO (reg)) 0 || hard_regno = FIRST_PSEUDO_REGISTER) return NULL; if ((ep = elimination_map[hard_regno]) != NULL) -return ep-from_rtx != reg ? NULL : ep; +return ep-from_rtx != reg ep-from != hard_regno ? NULL : ep; if ((offset = self_elim_offsets[hard_regno]) == 0) return NULL; /* This is an iteration to restore offsets just after HARD_REGNO fixes the IC.
[Bug rtl-optimization/55106] ice: Maximum number of LRA constraint passes is achieved (15)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55106 --- Comment #2 from Vladimir Makarov vmakarov at gcc dot gnu.org 2012-10-29 00:42:30 UTC --- Author: vmakarov Date: Mon Oct 29 00:42:25 2012 New Revision: 192904 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=192904 Log: 2012-10-28 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/55106 * lra-constraints.c (skip_usage_debug_insns): New function. (check_secondary_memory_needed_p): Ditto. (inherit_reload_reg): Use the new functions. Improve debug output. Modified: trunk/gcc/ChangeLog trunk/gcc/lra-constraints.c
[Bug rtl-optimization/55093] [4.8 Regression] [x32] -maddress-mode=long failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55093 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Target Milestone|--- |4.8.0 --- Comment #6 from H.J. Lu hjl.tools at gmail dot com 2012-10-29 00:44:53 UTC --- I am testing this patch: diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c index d80..cbfbe7a 100644 --- a/gcc/lra-eliminations.c +++ b/gcc/lra-eliminations.c @@ -272,7 +272,7 @@ get_elimination (rtx reg) if ((hard_regno = REGNO (reg)) 0 || hard_regno = FIRST_PSEUDO_REGISTER) return NULL; if ((ep = elimination_map[hard_regno]) != NULL) -return ep-from_rtx != reg ? NULL : ep; +return ep-from != hard_regno ? NULL : ep; if ((offset = self_elim_offsets[hard_regno]) == 0) return NULL; /* This is an iteration to restore offsets just after HARD_REGNO
[Bug target/54963] [4.8 Regression] Wrong code generated for libgfortran/generated/eoshift3_8.c on SH
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54963 --- Comment #4 from Kazumoto Kojima kkojima at gcc dot gnu.org 2012-10-29 00:59:37 UTC --- (In reply to comment #3) Created attachment 28551 [details] Proposed patch This patch fixes the problem, by using 'emit_move_insn' instead of manually doing the DImode reg copy. Does the pattern in negdi_cond emit_insn (gen_negc (low_dst, low_src)); emit_label_after (skip_neg_label, emit_insn (gen_negc (high_dst, high_src))); work in the problematic situation? Perhaps I've missed something.
[Bug middle-end/55114] New: [4.8 Regression] gcc.dg/builtins-53.c ICEs on mips64 soft-float
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55114 Bug #: 55114 Summary: [4.8 Regression] gcc.dg/builtins-53.c ICEs on mips64 soft-float Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: pins...@gcc.gnu.org /home/apinski/src/gcc-fsf/local/gcc/gcc/testsuite/gcc.dg/builtins-53.c:96:1: error: unrecognizable insn: (insn 12 13 14 2 (set (reg:TF 4 $4) (parallel:TF [ (expr_list:REG_DEP_TRUE (reg:DI 199) (const_int 0 [0])) (expr_list:REG_DEP_TRUE (reg:DI 200) (const_int 8 [0x8])) ])) /home/apinski/src/gcc-fsf/local/gcc/gcc/testsuite/gcc.dg/builtins-53.c:95 -1 (nil)) That instruction should be split into two sets.
[Bug rtl-optimization/55093] [4.8 Regression] [x32] -maddress-mode=long failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55093 --- Comment #7 from H.J. Lu hjl.tools at gmail dot com 2012-10-29 02:31:44 UTC --- (In reply to comment #6) I am testing this patch: diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c index d80..cbfbe7a 100644 --- a/gcc/lra-eliminations.c +++ b/gcc/lra-eliminations.c @@ -272,7 +272,7 @@ get_elimination (rtx reg) if ((hard_regno = REGNO (reg)) 0 || hard_regno = FIRST_PSEUDO_REGISTER) return NULL; if ((ep = elimination_map[hard_regno]) != NULL) -return ep-from_rtx != reg ? NULL : ep; +return ep-from != hard_regno ? NULL : ep; if ((offset = self_elim_offsets[hard_regno]) == 0) return NULL; /* This is an iteration to restore offsets just after HARD_REGNO It doesn't solve all problems. I got Starting program: /export/build/gnu/gcc-x32-mx32-native-long/build-x86_64-linux/gcc/cc1 -fpreprocessed /tmp/bad.i -march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=generic -quiet -dumpbase bad.i -msse2 -mx32 -auxbase-strip O3-pr41881.s -O2 -O3 -version -fno-diagnostics-show-caret -ftree-vectorize -fno-vect-cost-model -fno-common -fdump-tree-vect-details -fno-ipa-cp-clone -o O3-pr41881.s GNU C (GCC) version 4.8.0 20121029 (experimental) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.8.0 20121029 (experimental), GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU C (GCC) version 4.8.0 20121029 (experimental) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.8.0 20121029 (experimental), GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 8b8bc795ba054ad7d30608d02345517d Program received signal SIGSEGV, Segmentation fault. 0x0073eddb in dump_gimple_bb_header (outf=outf@entry=0x136dab0, bb=bb@entry=0xf6943380, indent=indent@entry=0, flags=flags@entry=469762568) at /export/gnu/import/git/gcc-misc/gcc/gimple-pretty-print.c:2097 2097 memset (s_indent, ' ', (size_t) indent); (gdb) p/x $rsp $6 = 0xc8b0 (gdb) When -maddress-mode=long is used to compile x32 GCC, Pmode is DImode and ptr_mode is SImode. LRA fails to properly handle ptr_mode != Pmode: 0x0073edb6 +278:lea-0x1(%rbx),%eax 0x0073edb9 +281:mov%ebx,%edx 0x0073edbb +283:mov$0x20,%esi 0x0073edc0 +288:add$0x2e,%rax 0x0073edc4 +292:shr$0x4,%rax 0x0073edc8 +296:shl$0x4,%rax 0x0073edcc +300:sub%rax,%rsp 0x0073edcf +303:lea0x1f(%rsp),%r8 0x0073edd4 +308:and$0xffe0,%r8d 0x0073edd8 +312:mov%r8,%rdi = 0x0073eddb +315:callq 0x4a5970 memset@plt