[Bug rtl-optimization/49034] ARM optimizer generating incorrect code (causing bad pointer dereference)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49034 --- Comment #2 from Michael Brown michaelatnavman at gmail dot com 2011-05-23 06:38:35 UTC --- Based on previous experiences, it'll be at least a couple of weeks to bring up a similarly configured (cross-compiling darwin-x86 - arm-eabi) FSF toolchain. The command line is (paths and project-specific defines removed for clarity, but otherwise unchanged): arm-linux-androideabi-g++ -MMD -MP -MF foo.o.d.org -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fno-exceptions -fno-rtti -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Wa,--noexecstack -fexceptions -frtti -O2 -DNDEBUG -g -fexceptions -frtti -c foo.cpp -o foo.o Yes, it's asking for no exceptions and no RTTI, and also for them to be enabled. The wondrous inflexibilities of the android NDK ... Preprocessed output is several MB, and I'm probably not allowed to post it anyhow. Given how sensitive the bug is to surrounding code (changing only peripherally related code causes the bug to vanish) it'll probably take another couple of weeks (after getting the toolchain going) to get a decent test case going. As mentioned in the initial report, I don't really expect this to be fixed. It's just to let people who are seeing bizarre or impossible SIGSEGV exceptions a hint as to where to look. Given: (a) the amount of work required to get a satisfactory bug report together is large, and (b) a workaround exists (turn off optimization), and (b) no-one else seems to have run into this, and (c) the bug is in a GCC version that was released two years ago, and (d) the likelihood that due to the sensitivity of the bug to the surrounding code, other unrelated changes in GCC will result in the test case failing to tickle the bug in later versions even if the bug still being present, it ends up on the pile of things that get worked on in the evenings when I have time. Hence why it'll probably be a month if not longer before I can get a useful test case together.
[Bug middle-end/45098] Missed induction variable optimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45098 --- Comment #10 from vries at gcc dot gnu.org 2011-05-23 07:00:07 UTC --- Author: vries Date: Mon May 23 07:00:02 2011 New Revision: 174055 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174055 Log: 2011-05-23 Tom de Vries t...@codesourcery.com PR target/45098 * gcc.target/arm/ivopts-6.c: New test. Added: trunk/gcc/testsuite/gcc.target/arm/ivopts-6.c Modified: trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added CC||ebotcazou at gcc dot ||gnu.org --- Comment #12 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-05-23 06:44:36 UTC --- On the next iteration, insn 433 has been deleted but regs_live at the start of bb 16 is still the same as before: I think that it shouldn't be deleted, see the head comment of update_block.
[Bug fortran/49103] [4.6/4.7 Regression] local variables exchange values / wrong code with -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49103 --- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 07:35:48 UTC --- Ugh, the problem is that first cunrolli unrolls the loop, so we get among other things parm.9 initialized for printing fgrades_35, then _gfortran_transfer_array_write from parm.9, then parm.11 initialized for printing fbasegrades_19, then _gfortran_transfer_array_write from parm.11, then again parm.9 initialized to the same values again, _gfortran_transfer_array_write from it, parm.11 to the same values and _gfortran_transfer_array_write from it. Additionally, _gfortran_transfer_array_write uses .wr fn spec attribute. Next comes fre (2nd), which sees the .wr fn spec and removes the second identical initialization of parm.9 and parm.11, so parm.9 is no longer live in two separate ranges, but also across the parm.11 initialization and _gfortran_transfer_array_write call from it. And during expansion, we figure out that parm.9 and parm.11 are in different, non-overlapping blocks and thus decide to share the stack slot for both. Appart from the .wr fn spec attribute I think there is nothing fortran specific and with struct S { largish struct }; for (int i = 0; i 2; i++) { { struct S a; initialize a; use a; } { struct S b; initialize b; use b; } } we could achieve similar effect (though, if e.g. use is a pure function, the second call would be deleted). So, I'm not convinced reverting my patch is the right fix. Not sure how to allow expansion to notice that unrolling made it impossible to share the stack slots though. Ideas?
[Bug c++/49118] Endless operator- chain causes infinite loop
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49118 --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-05-23 07:44:01 UTC --- For the record, ICC (EDG that is) misbehaves the same way, at least the versions to which I have access. Maybe clang does something different?
[Bug middle-end/45098] Missed induction variable optimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45098 --- Comment #11 from vries at gcc dot gnu.org 2011-05-23 07:28:03 UTC --- Author: vries Date: Mon May 23 07:27:59 2011 New Revision: 174056 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174056 Log: 2011-05-23 Tom de Vries t...@codesourcery.com PR target/45098 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New function. (infer_loop_bounds_from_undefined): Use new function. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-loop-niter.c
[Bug c/49119] PowerPC: Wrong code with designated initializers and bit fields
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49119 --- Comment #1 from Sebastian Huber sebastian.hu...@embedded-brains.de 2011-05-23 08:00:49 UTC --- Created attachment 24334 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24334 C source code corresponding to the assembler code.
[Bug c/49119] New: PowerPC: Wrong code with designated initializers and bit fields
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49119 Summary: PowerPC: Wrong code with designated initializers and bit fields Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: sebastian.hu...@embedded-brains.de Target: powerpc-rtems4.11-gcc With GCC 4.6.1 20110513 for PowerPC with -O2 I get this: Disassembly of section .text: wrong_code: 0: 38 00 00 00 li r0,0 - This is wrong 4: 7c 10 9b a6 mtspr 624,r0 - 8: 3d 20 00 00 lis r9,0 c: 80 09 00 04 lwz r0,4(r9) 10: 7c 11 9b a6 mtspr 625,r0 14: 3d 20 00 00 lis r9,0 18: 80 09 00 08 lwz r0,8(r9) 1c: 7c 12 9b a6 mtspr 626,r0 20: 3d 20 00 00 lis r9,0 24: 80 09 00 0c lwz r0,12(r9) 28: 7c 13 9b a6 mtspr 627,r0 2c: 7c 00 07 a4 tlbld r0 30: 4e 80 00 20 blr 0034 valid_code: 34: 3c 00 10 05 lis r0,4101 - This is valid 38: 7c 10 9b a6 mtspr 624,r0 - 3c: 3d 20 00 00 lis r9,0 40: 80 09 00 1c lwz r0,28(r9) 44: 7c 11 9b a6 mtspr 625,r0 48: 3d 20 00 00 lis r9,0 4c: 80 09 00 20 lwz r0,32(r9) 50: 7c 12 9b a6 mtspr 626,r0 54: 3d 20 00 00 lis r9,0 58: 80 09 00 24 lwz r0,36(r9) 5c: 7c 13 9b a6 mtspr 627,r0 60: 7c 00 07 a4 tlbld r0 64: 4e 80 00 20 blr Disassembly of section .rodata: mmu_setup_wrong: 0: 10 05 00 00 4: c0 00 01 00 8: 3f ff 80 0a c: 3f ff 80 0f ... 0018 mmu_setup_valid: 18: 10 05 00 00 1c: c0 00 01 00 20: 3f ff 80 0a 24: 3f ff 80 0f The designated initializer .MAS0 = { .B = { .TLBSEL = 1, .ESEL = 5 } }, leads to wrong code. On the other hand .MAS0 = { .R = 0x1005 }, leads to valid code.
[Bug c++/18016] Warn about member variables initialized with itself
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18016 --- Comment #12 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-23 08:15:24 UTC --- Author: redi Date: Mon May 23 08:15:16 2011 New Revision: 174058 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174058 Log: 2011-05-23 Jonathan Wakely jwakely@gmail.com PR c++/18016 * init.c (perform_member_init): Check for self-initialization. Added: trunk/gcc/testsuite/g++.dg/warn/pr18016.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/init.c trunk/gcc/testsuite/ChangeLog
[Bug c++/18016] Warn about member variables initialized with itself
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18016 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-23 08:19:38 UTC --- fixed for 4.7.0
[Bug c++/49118] Endless operator- chain causes infinite loop
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49118 --- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-23 08:22:00 UTC --- nope, same behaviour for clang 2.8
[Bug c++/49021] [4.6 regression] BOOST_FOREACH over vector segfaults at runtime
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49021 Michel MORIN mimomorin at gmail dot com changed: What|Removed |Added CC||mimomorin at gmail dot com --- Comment #13 from Michel MORIN mimomorin at gmail dot com 2011-05-23 09:04:14 UTC --- (In reply to comment #12) This is a bug in BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION. This was already fixed in boost/trunk, and the fix will be released in Boost.1.47. For details, please see the following ticket: [Foreach] Compile-time const rvalue detection fails with gcc 4.6 https://svn.boost.org/trac/boost/ticket/5279
[Bug tree-optimization/49000] [4.6/4.7 Regression] ICE: verify_ssa failed with -O2 -g
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49000 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #15 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 09:24:02 UTC --- Fixed.
[Bug middle-end/48973] [4.3/4.4/4.5/4.6/4.7 Regression] Inliner bug with one-bit (1-bit) bitfield
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48973 --- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 09:36:09 UTC --- Author: jakub Date: Mon May 23 09:36:05 2011 New Revision: 174060 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174060 Log: PR middle-end/48973 * expr.c (expand_expr_real_2) case LT_EXPR: If do_store_flag failed and the comparison has a single bit signed type, use constm1_rtx instead of const1_rtx for true value. (do_store_flag): If ops-type is single bit signed type, disable signel bit test optimization and pass -1 instead of 1 as last parameter to emit_store_flag_force. * gcc.c-torture/execute/pr48973-1.c: New test. * gcc.c-torture/execute/pr48973-2.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c trunk/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/expr.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/47359] Recursive functions of intrinsic names generates invalid assembler
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47359 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.05.23 09:58:19 Ever Confirmed|0 |1 --- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-05-23 09:58:19 UTC --- The test in comment #1 is still nt working at revision 174047.
[Bug middle-end/48973] [4.3/4.4/4.5/4.6/4.7 Regression] Inliner bug with one-bit (1-bit) bitfield
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48973 --- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 10:24:50 UTC --- Author: jakub Date: Mon May 23 10:24:47 2011 New Revision: 174063 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174063 Log: PR middle-end/48973 * expr.c (expand_expr_real_2) case LT_EXPR: If do_store_flag failed and the comparison has a single bit signed type, use constm1_rtx instead of const1_rtx for true value. (do_store_flag): If ops-type is single bit signed type, disable signel bit test optimization and pass -1 instead of 1 as last parameter to emit_store_flag_force. * gcc.c-torture/execute/pr48973-1.c: New test. * gcc.c-torture/execute/pr48973-2.c: New test. Added: branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c Modified: branches/gcc-4_6-branch/gcc/ChangeLog branches/gcc-4_6-branch/gcc/expr.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
[Bug c/49120] New: bogus value computed is not used warning (variable-length array in compound statement)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49120 Summary: bogus value computed is not used warning (variable-length array in compound statement) Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: kari.nurm...@stonesoft.com When declaring a variable-length array in the beginning of a compound statement, so that the length expression contains at least one operator, the warning value computed is not used is incorrectly given for the computed length of the array (with -Wall). For example: ~$ cat kok1.c int main(void) { int foo = 1; ({ char bar[foo + 1]; /* */ bar[0] = 0; }); return 0; } ~$ gcc-4.5 -Wall kok1.c -o kok1 kok1.c: In function ‘main’: kok1.c:5:22: warning: value computed is not used ~$ gcc-4.5 --version gcc-4.5 (Ubuntu/Linaro 4.5.1-7ubuntu2) 4.5.1 ... If the compound statement is replaced with a block in this example, the warning goes away: ~$ cat kok2.c int main(void) { int foo = 1; { char bar[foo + 1]; bar[0] = 0; } return 0; } ~$ gcc-4.5 -Wall kok2.c -o kok2 ~$ In gcc 4.4 the bogus warning does not appear: ~$ gcc-4.4 -Wall kok1.c -o kok1 ~$ gcc-4.4 --version gcc-4.4 (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5 ...
[Bug libfortran/49024] REAL*16 ERFC_SCALED inaccuracy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49024 Francois-Xavier Coudert fxcoudert at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.05.23 10:34:35 CC||fxcoudert at gcc dot ||gnu.org AssignedTo|unassigned at gcc dot |fxcoudert at gcc dot |gnu.org |gnu.org Ever Confirmed|0 |1 --- Comment #1 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org 2011-05-23 10:34:35 UTC --- I'll take that one, thanks for the report.
[Bug middle-end/48973] [4.3/4.4/4.5 Regression] Inliner bug with one-bit (1-bit) bitfield
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48973 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Known to work||4.6.1, 4.7.0 Summary|[4.3/4.4/4.5/4.6/4.7|[4.3/4.4/4.5 Regression] |Regression] Inliner bug |Inliner bug with one-bit |with one-bit (1-bit)|(1-bit) bitfield |bitfield| Known to fail|4.7.0 | --- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 10:46:55 UTC --- Fixed for 4.6+ so far.
[Bug c++/49118] Endless operator- chain causes infinite loop
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49118 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.05.23 10:58:00 Ever Confirmed|0 |1 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 10:58:00 UTC --- Confirmed at least.
[Bug c/49120] [4.5/4.6/4.7 Regression] bogus value computed is not used warning (variable-length array in compound statement)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49120 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Known to work||4.4.5 Keywords||diagnostic Last reconfirmed||2011.05.23 10:54:25 Ever Confirmed|0 |1 Summary|bogus value computed is|[4.5/4.6/4.7 Regression] |not used warning |bogus value computed is |(variable-length array in |not used warning |compound statement) |(variable-length array in ||compound statement) Target Milestone|--- |4.5.4 Known to fail||4.5.3, 4.6.0 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 10:54:25 UTC --- Confirmed.
[Bug tree-optimization/49121] New: [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49121 Summary: [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0 Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org Target: x86_64-*-* The test fails on x86_64-*-* at least. That's possibly wrong-code.
[Bug c/49120] [4.5/4.6/4.7 Regression] bogus value computed is not used warning (variable-length array in compound statement)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49120 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 11:39:10 UTC --- http://gcc.gnu.org/viewcvs?root=gccview=revrev=145254
[Bug tree-optimization/49121] [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49121 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug tree-optimization/15419] memcpy pessimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15419 --- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 12:03:21 UTC --- Author: rguenth Date: Mon May 23 12:03:19 2011 New Revision: 174065 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174065 Log: 2011-05-23 Richard Guenther rguent...@suse.de PR middle-end/15419 * builtins.c (fold_builtin_memory_op): Be less restrictive about what pointer types we accept for folding. * gcc.dg/memcpy-3.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/memcpy-3.c Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/49115] [4.5/4.6 Regression] invalid return value optimization (?) when exception is thrown and caught
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49115 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Known to work||4.4.5, 4.7.0 Target Milestone|--- |4.5.4 Summary|invalid return value|[4.5/4.6 Regression] |optimization (?) when |invalid return value |exception is thrown and |optimization (?) when |caught |exception is thrown and ||caught Known to fail|4.7.0 |4.5.3, 4.6.0 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 12:11:14 UTC --- Fixed on trunk sofar. Works with 4.4.
[Bug tree-optimization/49115] invalid return value optimization (?) when exception is thrown and caught
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49115 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 12:08:45 UTC --- Author: rguenth Date: Mon May 23 12:08:41 2011 New Revision: 174066 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174066 Log: 2011-05-23 Richard Guenther rguent...@suse.de PR tree-optimization/49115 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment is not necessarily carried out, do not claim it kills the ref. * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. * g++.dg/torture/pr49115.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/torture/pr49115.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-alias.c trunk/gcc/tree-ssa-dce.c
[Bug rtl-optimization/49080] Wrong register allocation for even register
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49080 Andreas Schwab sch...@linux-m68k.org changed: What|Removed |Added Resolution|FIXED |INVALID --- Comment #4 from Andreas Schwab sch...@linux-m68k.org 2011-05-23 12:45:31 UTC --- Which means that this is actually invalid.
[Bug tree-optimization/15419] memcpy pessimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15419 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 12:09:36 UTC --- Fixed for 4.7.
[Bug c++/49122] New: [C++0x] initializer_list is broken
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49122 Summary: [C++0x] initializer_list is broken Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: sscr...@gmail.com The initializer_list object returned to function is broken. See the next code: #includeinitializer_list #includeiostream std::initializer_listint f(int a, int b) { return {a, b}; } int main() { std::initializer_listint list = f(0, 1); for(int i: list) std::cout i std::endl; } Output result (example) is 2293416 2293636 It's a strange result. Output should be 0 1 I tried use compiler version 4.6.0 Release and 4.7.0 20110521 (experimental)
[Bug c/49120] [4.5/4.6/4.7 Regression] bogus value computed is not used warning (variable-length array in compound statement)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49120 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 12:31:25 UTC --- Created attachment 24335 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24335 gcc46-pr49120.patch Untested fix.
[Bug lto/49123] New: [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 Summary: [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com On Linux/x86, revision 174063 gave: FAIL: gcc.c-torture/execute/pr48973-1.c execution, -O2 -flto FAIL: gcc.c-torture/execute/pr48973-1.c execution, -O2 -flto FAIL: gcc.c-torture/execute/pr48973-1.c execution, -O2 -flto -flto-partition=none FAIL: gcc.c-torture/execute/pr48973-1.c execution, -O2 -flto -flto-partition=none FAIL: gcc.c-torture/execute/pr48973-2.c execution, -O2 -flto FAIL: gcc.c-torture/execute/pr48973-2.c execution, -O2 -flto FAIL: gcc.c-torture/execute/pr48973-2.c execution, -O2 -flto -flto-partition=none FAIL: gcc.c-torture/execute/pr48973-2.c execution, -O2 -flto -flto-partition=none revision 174054 is OK.
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 13:14:58 UTC --- Also aborts w/o LTO but with -fwhole-program.
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.05.23 13:17:55 Target Milestone|--- |4.6.1 Ever Confirmed|0 |1 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 13:17:55 UTC --- Confirmed. FRE does bb 2: s.f = 1; - D.2698_4 = s.f; - D.2699_5 = (unsigned int) D.2698_4; - if (D.2699_5 != 4294967295) -goto bb 3; - else -goto bb 4; - -bb 3: + D.2698_4 = 1; + D.2699_5 = 1; so it fails to properly sign-extend D.2698_4.
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 13:22:12 UTC --- The 1 is non-canonical: (gdb) call debug_tree ($1) integer_cst 0x75b25eb0 type integer_type 0x75b29540 constant 1 (gdb) call debug_tree (0x75b29540) integer_type 0x75b29540 public QI size integer_cst 0x77e734d8 type integer_type 0x77e860a8 bit_size_type constant 8 unit size integer_cst 0x77e73500 type integer_type 0x77e86000 long unsigned int constant 1 align 8 symtab 0 alias set -1 canonical type 0x75b29540 precision 1 min integer_cst 0x75b25690 -1 max integer_cst 0x75b256b8 0 (gdb) p $1-int_cst. common int_cst (gdb) p $1-int_cst.int_cst $2 = {low = 1, high = 0} built via build_int_cst, fixed on trunk by properly making that produce canonical constants.
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 13:30:21 UTC --- Wonder if I'm not seeing it because my ld doesn't support plugins...
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 --- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 13:25:03 UTC --- A less intrusive variant of the patch might be suitable for backporting (it doesn't touch the NULL type argument path) and fixes the testcase for me. Index: gcc/tree.c === --- gcc/tree.c (revision 174066) +++ gcc/tree.c (working copy) @@ -1034,9 +1034,9 @@ build_int_cst (tree type, HOST_WIDE_INT { /* Support legacy code. */ if (!type) -type = integer_type_node; +return build_int_cst_wide (integer_type_node, low, low 0 ? -1 : 0); - return build_int_cst_wide (type, low, low 0 ? -1 : 0); + return double_int_to_tree (type, shwi_to_double_int (low)); } /* Create an INT_CST node with a LOW value in TYPE. The value is sign extended
[Bug middle-end/49124] New: [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49124 Summary: [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: t...@codesourcery.com On Linux/x86-64, revision 174056: http://gcc.gnu.org/ml/gcc-cvs/2011-05/msg00837.html caused: FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0
[Bug libstdc++/41495] libstdc++ --enable-clocale=ieee_1003.1-2001 fails
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41495 --- Comment #8 from Alasdair Lumsden alasdairrr at gmail dot com 2011-05-23 13:44:16 UTC --- Hi Jonathan, (In reply to comment #7) Does OpenIndiana support the new POSIX.1-2008 APIs, e.g. wctype_l and towupper_l? Not at present, however Garrett D'Amore has expressed interest in adding support: illumos doesn't have the POSIX 2008 locale APIs. I've considered adding them... it would not be too difficult, although we would need to eliminate some process global state ... are there applications that consume these? If there are, then its worth the time and effort. Do you know if there are many apps using these APIs? If so I'll respond back to him and see if we can get the ball rolling. If noone else does it I hope to get time to work on fixing the problems in the current code, but it's not a high priority for me. Would a financial incentive help? My company may be interested in funding this to speed up the work. I think a better long term plan is to write a new locale model based on the POSIX 2008 API, as that could be common to more platforms and would provide thread-safety and the other advantages of the GNU/Linux code. Would this be a significant volume of work? Cheers, Alasdair
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Target Milestone|4.6.1 |--- --- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 13:36:00 UTC --- (In reply to comment #4) A less intrusive variant of the patch might be suitable for backporting (it doesn't touch the NULL type argument path) and fixes the testcase for me. Index: gcc/tree.c === --- gcc/tree.c (revision 174066) +++ gcc/tree.c (working copy) @@ -1034,9 +1034,9 @@ build_int_cst (tree type, HOST_WIDE_INT { /* Support legacy code. */ if (!type) -type = integer_type_node; +return build_int_cst_wide (integer_type_node, low, low 0 ? -1 : 0); - return build_int_cst_wide (type, low, low 0 ? -1 : 0); + return double_int_to_tree (type, shwi_to_double_int (low)); } /* Create an INT_CST node with a LOW value in TYPE. The value is sign extended Alternatively you could call build_int_cst_type instead of build_int_cst in the spot where FRE? calls it. Guess that would be even safer to backport.
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 --- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 13:56:49 UTC --- That would be Index: gcc/fold-const.c === --- gcc/fold-const.c(revision 174066) +++ gcc/fold-const.c(working copy) @@ -5954,7 +5954,7 @@ constant_boolean_node (int value, tree t else if (type == boolean_type_node) return value ? boolean_true_node : boolean_false_node; else -return build_int_cst (type, value); +return build_int_cst_type (type, value); } which works for me as well.
[Bug middle-end/49124] [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49124 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 14:08:40 UTC --- . *** This bug has been marked as a duplicate of bug 49121 ***
[Bug tree-optimization/49121] [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49121 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added CC||hjl.tools at gmail dot com --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 14:08:40 UTC --- *** Bug 49124 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/40874] Function object abstraction penalty with inline functions.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40874 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #15 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 14:33:11 UTC --- Works on trunk (but not during early inlining). From early inlining we now get bb 2: f.x = g; D.2126_6 = f.x; D.2127_7 = D.2126_6 (3); and early FRE turns that into a direct call: f$x_8 = g; D.2126_6 = f$x_8; D.2125_7 = g (3); which is then inlined by IPA inlining: int main(int, char**) (int argc, char * * argv) { bb 2: return 0; } Fixed.
[Bug c++/49122] [C++0x] initializer_list is broken
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49122 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-05-23 14:19:40 UTC --- If we *really* have to use the word broken here, it much better applies to your snippet, not the implementation of std::initializer_list: an initializer_list is essentially just a pointer (+ a length) into something else (open the header and you will see it): thus, f is returning a pointer to the {a, b} which by itself goes away when f returns. Anything can happen. Compare: std::initializer_listint f(int a, int b) { static auto range = {a, b}; return range; } ...
[Bug c/49125] New: [avr-gcc] internal compiler error: in build_unary_op, at c-typeck.c:3786
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49125 Summary: [avr-gcc] internal compiler error: in build_unary_op, at c-typeck.c:3786 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: ddavenp...@walchem.com Created attachment 24336 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24336 The preprocessed file that fails. While compiling avr-libc, the following error message was generated: dtostre.c: In function 'dtostre': dtostre.c:63:2: internal compiler error: in build_unary_op, at c-typeck.c:3786 Please submit a full bug report, The command line and output with -v -save-temps added: avr-gcc -v -save-temps -DHAVE_CONFIG_H -g -Wall -W -Wstrict-prototypes -mmcu=avr2 -D__COMPILING_AVR_LIBC__ -mcall-prologues -Os -MT dtostre.o -MD -MP -MF -c -o dtostre.o dtostre.c -I../../include -I../../common Using built-in specs. COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/avr/4.6.0/lto-wrapper Target: avr Configured with: ../configure --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp Thread model: single gcc version 4.6.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'HAVE_CONFIG_H' '-g' '-Wall' '-Wextra' '-Wstrict-prototypes' '-mmcu=avr2' '-D' '__COMPILING_AVR_LIBC__' '-mcall-prologues' '-Os' '-MT' 'dtostre.o' '-MD' '-MP' '-MF' '-c' '-o' 'dtostre.o' '-I' '../../include' '-I' '../../common' /usr/local/libexec/gcc/avr/4.6.0/cc1 -E -quiet -v -I ../../include -I ../../common -MD dtostre.d -MF -c -MP -MT dtostre.o -D HAVE_CONFIG_H -D __COMPILING_AVR_LIBC__ dtostre.c -mmcu=avr2 -mcall-prologues -Wall -Wextra -Wstrict-prototypes -g -fworking-directory -Os -fpch-preprocess -o dtostre.i ignoring nonexistent directory /usr/local/lib/gcc/avr/4.6.0/../../../../avr/sys-include ignoring nonexistent directory /usr/local/lib/gcc/avr/4.6.0/../../../../avr/include #include ... search starts here: #include ... search starts here: ../../include ../../common /usr/local/lib/gcc/avr/4.6.0/include /usr/local/lib/gcc/avr/4.6.0/include-fixed End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'HAVE_CONFIG_H' '-g' '-Wall' '-Wextra' '-Wstrict-prototypes' '-mmcu=avr2' '-D' '__COMPILING_AVR_LIBC__' '-mcall-prologues' '-Os' '-MT' 'dtostre.o' '-MD' '-MP' '-MF' '-c' '-o' 'dtostre.o' '-I' '../../include' '-I' '../../common' /usr/local/libexec/gcc/avr/4.6.0/cc1 -fpreprocessed dtostre.i -quiet -dumpbase dtostre.c -mmcu=avr2 -mcall-prologues -auxbase dtostre -g -Os -Wall -Wextra -Wstrict-prototypes -version -o dtostre.s GNU C (GCC) version 4.6.0 (avr) compiled by GNU C version 4.2.1 (Apple Inc. build 5664), GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C (GCC) version 4.6.0 (avr) compiled by GNU C version 4.2.1 (Apple Inc. build 5664), GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: b184bfbe78c726ac0be514e297f61b46 dtostre.c: In function 'dtostre': dtostre.c:63:2: internal compiler error: in build_unary_op, at c-typeck.c:3786 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. *** end of compiler output *** The above command was simplified from the original command line as created by the makefile. I removed a few redundant -I parameters, and added the -v -save-temps for this report. The above command generates the same error message as originally spotted while building the library. avr-gcc build configuration parameters: Using built-in specs. COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/avr/4.6.0/lto-wrapper Target: avr Configured with: ../configure --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp Thread model: single gcc version 4.6.0 (GCC) This is running on OSX 10.6.6 (i686-apple-darwin10.6.0). The expected behavior is to compile without error, or at least without an internal compiler error. As the code in question is not code I wrote, I can not vouch for it being bug free. However, I did review the code file and did not notice a issue with the line in question of the variables used at or near that line.
[Bug tree-optimization/40874] Function object abstraction penalty with inline functions.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40874 --- Comment #16 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 14:36:33 UTC --- Author: rguenth Date: Mon May 23 14:36:28 2011 New Revision: 174068 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174068 Log: 2011-05-23 Richard Guenther rguent...@suse.de PR tree-optimization/40874 * g++.dg/tree-ssa/pr40874.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/tree-ssa/pr40874.C Modified: trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/49121] [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49121 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.05.23 14:34:51 Ever Confirmed|0 |1 --- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2011-05-23 14:34:51 UTC --- It is caused by revision 174056: http://gcc.gnu.org/ml/gcc-cvs/2011-05/msg00837.html
[Bug lto/49123] [4.6 Regression] FAIL: gcc.c-torture/execute/pr48973-[12].c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123 --- Comment #8 from H.J. Lu hjl.tools at gmail dot com 2011-05-23 14:36:44 UTC --- (In reply to comment #5) Wonder if I'm not seeing it because my ld doesn't support plugins... That is true.
[Bug tree-optimization/41320] XFAIL gcc.dg/tree-ssa/forwprop-12.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41320 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Summary|XFAIL |XFAIL |gcc.dg/tree-ssa/forwprop-1[ |gcc.dg/tree-ssa/forwprop-12 |12].c |.c --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 14:52:58 UTC --- gcc.dg/tree-ssa/forwprop-12.c remains on trunk.
[Bug c++/49126] New: timevar_stack faild because define_label
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49126 Summary: timevar_stack faild because define_label Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: zgss...@163.com when source code like this,I think there is a bug: int f() { goto cleanup: } then compiler will go along this path: |tree poplevel (int keep, int reverse, int functionbody) --timevar_start (TV_NAME_LOOKUP);xxx -- -- pop_labels (block); |static void pop_labels (tree block) htab_traverse (named_labels, pop_labels_1, block); |static int pop_labels_1 (void **slot, void *data) --pop_label (ent-label_decl, NULL_TREE); |static void pop_label (tree label, tree old_value) define_label (location, DECL_NAME (label)); |tree define_label (location_t location, tree name) -- timevar_start (TV_NAME_LOOKUP);x so at last in: |void timevar_start (timevar_id_t timevar) -- gcc_assert (!tv-standalone); failed!
[Bug middle-end/41043] [4.4 Regression] virtual memory exhausted: Cannot allocate memory
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41043 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|NEW Known to work|| AssignedTo|rguenth at gcc dot gnu.org |unassigned at gcc dot ||gnu.org --- Comment #14 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-23 14:39:36 UTC --- Probably not a very good idea for backporting this late.
[Bug tree-optimization/49121] [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49121 vries at gcc dot gnu.org changed: What|Removed |Added Status|NEW |UNCONFIRMED CC||vries at gcc dot gnu.org AssignedTo|unassigned at gcc dot |vries at gcc dot gnu.org |gnu.org | Ever Confirmed|1 |0
[Bug rtl-optimization/49127] New: -Os generates constant mov instead of instruction xor and mov when zeroing
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49127 Summary: -Os generates constant mov instead of instruction xor and mov when zeroing Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: msha...@users.sourceforge.net void zero (void* p) { *reinterpret_castulong*(p) = 0; } Generates: 48 c7 07 00 00 00 00movq $0x0,(%rdi) This is shorter by 2 bytes: 31 c0 xor%eax,%eax 48 89 07mov%rax,(%rdi) And can be reused in further assignments of zero for more savings: 31 c0 xor%eax,%eax 48 89 07mov%rax,(%rdi) 48 89 47 04 mov%rax,0x4(%rdi)
[Bug c++/48617] [C++0x] Problem with non-type template parameters and decltype
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48617 --- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-05-23 15:32:13 UTC --- Author: jason Date: Mon May 23 15:32:10 2011 New Revision: 174070 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174070 Log: PR c++/48617 * pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE. Added: trunk/gcc/testsuite/g++.dg/cpp0x/decltype27.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog
[Bug c++/47336] [C++0x] ICE: Error reporting routines re-entered
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47336 --- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-05-23 15:32:34 UTC --- Author: jason Date: Mon May 23 15:32:29 2011 New Revision: 174072 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174072 Log: PR c++/47336 * error.c (dump_template_bindings): Suppress access control. Added: trunk/gcc/testsuite/g++.dg/cpp0x/error3.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/error.c trunk/gcc/testsuite/ChangeLog
[Bug c++/47544] [C++0x] linker does not find =default constructor for explicitly instantiated template
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47544 --- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-05-23 15:32:23 UTC --- Author: jason Date: Mon May 23 15:32:19 2011 New Revision: 174071 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174071 Log: PR c++/47544 * pt.c (instantiate_decl): Handle =default. Added: trunk/gcc/testsuite/g++.dg/cpp0x/defaulted27.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog
[Bug libstdc++/49058] [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058 --- Comment #21 from Jason Merrill jason at gcc dot gnu.org 2011-05-23 15:32:42 UTC --- Author: jason Date: Mon May 23 15:32:39 2011 New Revision: 174073 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174073 Log: PR c++/49058 * call.c (splice_viable): Be strict in templates. Added: trunk/gcc/testsuite/g++.dg/cpp0x/sfinae24.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/testsuite/ChangeLog
[Bug c++/2288] Variable declared in for-loop-header is in wrong scope
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2288 --- Comment #19 from Peter Bergner bergner at gcc dot gnu.org 2011-05-23 15:38:11 UTC --- I applied Janis' patch (modulo a small fixup due to upstream changes) to current mainline and did a bootstrap and regtest. We bootstrap fine, unfortunately the patch no longer fixes the new added test case (g++.dg/parse/pr18770.C) and the modified test case (g++.old-deja/g++.jason/cond.C) also fails. I'm not really a C++ expert, so I'm not sure what to do here.
[Bug libstdc++/48811] error in compiling libstdc++ with -std=gnu++0x
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48811 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-05-23 15:48:46 UTC --- Jason committed to mainline a tweak which avoids the compilation error. Note, however, that building the whole set of *.cc files with -std=gnu++0x is still unsupported and experimental, may work, may not work, you are on your own.
[Bug c++/47335] [C++0x] sorry, unimplemented: mangling overload
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47335 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added CC||lenx99 at yahoo dot com.cn --- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-05-23 15:46:49 UTC --- *** Bug 49044 has been marked as a duplicate of this bug. ***
[Bug c++/47263] [C++0x] lambda + dynamic-exception-specification std::unexpected() is not called.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47263 --- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-05-23 15:48:49 UTC --- Author: jason Date: Mon May 23 15:48:37 2011 New Revision: 174076 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174076 Log: PR c++/47263 * decl.c (use_eh_spec_block): Do use an EH spec block for a lambda op(). Added: trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 --- Comment #14 from John David Anglin danglin at gcc dot gnu.org 2011-05-23 15:57:49 UTC --- This is how insn 433 is deleted: Breakpoint 14, delete_insn (insn=0x1ba9c60) at ../../gcc/gcc/cfgrtl.c:110 110 rtx next = NEXT_INSN (insn); (gdb) bt #0 delete_insn (insn=0x1ba9c60) at ../../gcc/gcc/cfgrtl.c:110 #1 0x002775b7 in delete_related_insns (insn=0x1ba9c60) at ../../gcc/gcc/jump.c:1137 #2 0x0027789a in delete_related_insns (insn=0x1ba1390) at ../../gcc/gcc/jump.c:1228 #3 0x00277e42 in redirect_jump_2 (jump=0x1ba9cc0, olabel=0x1ba1390, nlabel=0x1bac660, delete_unused=1, invert=0) at ../../gcc/gcc/jump.c:1430 #4 0x00277cfc in redirect_jump (jump=0x1ba9cc0, nlabel=0x1bac660, delete_unused=1) at ../../gcc/gcc/jump.c:1391 #5 0x00354b3d in reorg_redirect_jump (jump=0x1ba9cc0, nlabel=0x1bac660) at ../../gcc/gcc/reorg.c:1883 #6 0x003578d4 in relax_delay_slots (first=0x1b8a020) at ../../gcc/gcc/reorg.c:3525 #7 0x003581e1 in dbr_schedule (first=0x1b8a020) at ../../gcc/gcc/reorg.c:3894 #8 0x003589ba in rest_of_handle_delay_slots () at ../../gcc/gcc/reorg.c:4066 #9 0x002e3e22 in execute_one_pass (pass=0x634340) at ../../gcc/gcc/passes.c:1122 #10 0x002e3fd9 in execute_pass_list (pass=0x634340) at ../../gcc/gcc/passes.c:1176 #11 0x002e3ff5 in execute_pass_list (pass=0x633b80) at ../../gcc/gcc/passes.c:1177 #12 0x002e3ff5 in execute_pass_list (pass=0x633b40) at ../../gcc/gcc/passes.c:1177 #13 0x003f6ba7 in tree_rest_of_compilation (fndecl=0x1276ee0) at ../../gcc/gcc/tree-optimize.c:404 #14 0x00533c4c in cgraph_expand_function (node=0x156b280) at ../../gcc/gcc/cgraphunit.c:1166 #15 0x00533e08 in cgraph_expand_all_functions () at ../../gcc/gcc/cgraphunit.c:1229 #16 0x0053445b in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1436 #17 0x00015f5f in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:8099 #18 0x003a7942 in compile_file () at ../../gcc/gcc/toplev.c:1055 #19 0x003a9902 in do_compile () at ../../gcc/gcc/toplev.c:2244 #20 0x003a997a in toplev_main (argc=27, argv=0xb1c8) at ../../gcc/gcc/toplev.c:2276 #21 0x00081cab in main (argc=27, argv=0xb1c8) at ../../gcc/gcc/main.c:35 (gdb) p debug_rtx (insn) (insn 433 91 64 (use (insn/s 92 59 366 (set (reg/v:SI 4 %r4 [orig:111 i ] [111]) (const_int 2 [0x2])) 37 {*pa.md:2542} (expr_list:REG_EQUAL (const_int 2 [0x2]) (nil -1 (nil)) $61 = void
[Bug c++/49044] [C++0x] mangling overload in decltype
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49044 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||jason at gcc dot gnu.org Resolution||DUPLICATE --- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-05-23 15:46:49 UTC --- Same issue as 47335. *** This bug has been marked as a duplicate of bug 47335 ***
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 --- Comment #13 from John David Anglin danglin at gcc dot gnu.org 2011-05-23 15:48:43 UTC --- Ok, I'll see if I can find out why it's being deleted. In the first try, we have the following rtl: Breakpoint 12, mark_target_live_regs (insns=0x1b8a020, target=0x1b98f90, res=0xbfffeda0) at ../../gcc/gcc/resource.c:975 975 for (insn = start_insn; insn != stop_insn; (gdb) p debug_rtx_list (start_insn, 12) (code_label 322 386 91 16 617 [1 uses]) (note 91 322 433 [bb 16] NOTE_INSN_BASIC_BLOCK) (insn 433 91 64 (use (insn/s 92 59 366 (set (reg/v:SI 4 %r4 [orig:111 i ] [111]) (const_int 2 [0x2])) 37 {*pa.md:2542} (expr_list:REG_EQUAL (const_int 2 [0x2]) (nil -1 (nil)) (insn 64 433 65 ../../gcc/gcc/tree-cfgcleanup.c:697 (set (reg/f:SI 1 %r1 [216]) (high:SI (symbol_ref:SI (cfun) [flags 0x240] var_decl 0xc204e0 cfun))) 49 {*pa.md:3017} (expr_list:REG_EQUIV (high:SI (symbol_ref:SI (cfun) [flags 0x240] var_decl 0xc204e0 cfun)) (nil))) (insn 65 64 94 ../../gcc/gcc/tree-cfgcleanup.c:697 (set (reg/f:SI 3 %r3 [217]) (lo_sum:SI (reg/f:SI 1 %r1 [216]) (symbol_ref:SI (cfun) [flags 0x240] var_decl 0xc204e0 cfun))) 52 {*pa.md:3097} (expr_list:REG_DEAD (reg/f:SI 1 %r1 [216]) (nil))) (note 94 65 95 [bb 17] NOTE_INSN_BASIC_BLOCK) (insn 95 94 435 ../../gcc/gcc/basic-block.h:194 (set (reg:SI 28 %r28 [143]) (plus:SI (reg/v:SI 4 %r4 [orig:111 i ] [111]) (const_int 2 [0x2]))) 111 {addsi3} (nil)) (code_label 435 95 96 620 [1 uses]) (insn 96 435 97 ../../gcc/gcc/basic-block.h:194 (set (reg/v/f:SI 26 %r26 [orig:110 bb ] [110]) (mem/s/f/j:SI (plus:SI (mult:SI (reg:SI 28 %r28 [143]) (const_int 4 [0x4])) (reg/f:SI 26 %r26 [orig:104 iftmp.1903 ] [104])) [0 variable.vec S4 A32])) 37 {*pa.md:2542} (expr_list:REG_DEAD (reg:SI 28 %r28 [143]) (nil))) (jump_insn 97 96 98 ../../gcc/gcc/tree-cfgcleanup.c:698 (set (pc) (if_then_else (eq (reg/v/f:SI 26 %r26 [orig:110 bb ] [110]) (const_int 0 [0x0])) (label_ref 105) (pc))) 25 {*pa.md:1770} (expr_list:REG_BR_PROB (const_int 2820 [0xb04]) (nil))) (note 98 97 100 [bb 18] NOTE_INSN_BASIC_BLOCK) (call_insn 100 98 101 ../../gcc/gcc/tree-cfgcleanup.c:699 (parallel [ (set (reg:SI 28 %r28) (call (mem:SI (symbol_ref/v:SI (@cleanup_tree_cfg_bb) [flags 0x203] function_decl 0x1564850 cleanup_tree_cfg_bb) [0 S4 A32]) (const_int 16 [0x10]))) (clobber (reg:SI 1 %r1)) (clobber (reg:SI 2 %r2)) (use (const_int 0 [0x0])) ]) 212 {call_val_symref} (expr_list:REG_DEAD (reg:SI 26 %r26) (expr_list:REG_EH_REGION (const_int 0 [0x0]) (nil))) (expr_list:REG_DEP_TRUE (use (reg:SI 26 %r26)) (nil))) As can be seen, insn 64 is subsequently replaced by a use. Maybe this causes the deletion of insn 433. 433 to be deleted
[Bug tree-optimization/49121] [4.7 Regression] FAIL: gcc.dg/tree-ssa/ivopt_infer_2.c scan-tree-dump-times ivopts Replacing 0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49121 --- Comment #3 from vries at gcc dot gnu.org 2011-05-23 16:07:04 UTC --- test case: ... #ifndef TYPE #define TYPE char* #endif extern int a[]; /* Can not infer loop iteration from array -- exit test can not be replaced. */ void foo (int i_width, TYPE dst, TYPE src1, TYPE src2) { TYPE dstn= dst + i_width; TYPE dst0 = dst; unsigned long long i = 0; for( ; dst = dstn; ) { dst0[i] = ( src1[i] + src2[i] + 1 +a[i]) 1; dst++; i += 16; } } ... test case representation at ivopts: ... foo (int i_width, char * dst, char * src1, char * src2) { long long unsigned int i; char * dstn; char D.2707; int D.2706; int D.2705; int D.2704; int D.2703; int D.2702; int D.2701; char D.2700; char * D.2699; int D.2698; char D.2697; char * D.2696; char * D.2695; long unsigned int D.2694; bb 2: D.2694_4 = (long unsigned int) i_width_3(D); dstn_6 = dst_5(D) + D.2694_4; if (dst_5(D) = dstn_6) goto bb 3; else goto bb 7; bb 3: bb 4: # dst_32 = PHI dst_24(5), dst_5(D)(3) # i_33 = PHI i_25(5), 0(3) D.2695_9 = dst_5(D) + i_33; D.2696_11 = src1_10(D) + i_33; D.2697_12 = *D.2696_11; D.2698_13 = (int) D.2697_12; D.2699_15 = src2_14(D) + i_33; D.2700_16 = *D.2699_15; D.2701_17 = (int) D.2700_16; D.2702_18 = D.2698_13 + D.2701_17; D.2703_19 = D.2702_18 + 1; D.2704_20 = a[i_33]; D.2705_21 = D.2703_19 + D.2704_20; D.2706_22 = D.2705_21 1; D.2707_23 = (char) D.2706_22; *D.2695_9 = D.2707_23; dst_24 = dst_32 + 1; i_25 = i_33 + 16; if (dstn_6 = dst_24) goto bb 5; else goto bb 6; bb 5: goto bb 4; bb 6: bb 7: return; } ... the patch causes estimated_loop_iterations (loop, true, max_niter) in may_eliminate_iv to return a different value: without patch: 0x1 withpatch: 0x01000 The analysis in the patch concludes that the pointer arithmetic statement D.2695_9 = dst_5(D) + i_33 can only be executed 0x01000 times, based on the fact that i is incremented with 16 each iteration. Note that the statement corresponds to the pointer arithmetic in 'dst0[i]'. Since the proposed new char pointer iterator can represent 0x1 distinct values, may_eliminate_iv returns true, and the exit test is replaced: ... Replacing exit test: if (dstn_6 = dst_24) ... This causes the check: ... /* { dg-final { scan-tree-dump-times Replacing 0 ivopts} } */ ... to fail. The test case needs to be adapted.
[Bug libstdc++/41495] libstdc++ --enable-clocale=ieee_1003.1-2001 fails
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41495 --- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-23 16:22:18 UTC --- (In reply to comment #8) Would a financial incentive help? My company may be interested in funding this to speed up the work. I only work on libstdc++ in my spare time and I lack the time, not the motivation :) There are some others who expressed an interest in improving the locale code for Darwin and they might be interested. See the libstdc++ mailing list archives for December 2010, January, February and May 2011 for various threads on the subject. I think a better long term plan is to write a new locale model based on the POSIX 2008 API, as that could be common to more platforms and would provide thread-safety and the other advantages of the GNU/Linux code. Would this be a significant volume of work? I don't *think* so, the GNU locale model already uses those APIs as they've been in glibc for ages, so a good starting point would be copying the GNU code and fixing it up a bit to replace anything GNU-specific with the POSIX.1-2008 equivalent. Someone already started doing that for Darwin earlier this month.
[Bug c/49128] New: gcc -mtune=native generates unsoported instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49128 Summary: gcc -mtune=native generates unsoported instructions Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: nathanael.schaeffer...@gmail.com With gcc (GCC) 4.6.0 20110513 (prerelease) I compile on my laptop : Intel(R) Pentium(R) CPUU5400 @ 1.20GHz flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl e st tm2 ssse3 cx16 xtpr pdcm popcnt lahf_lm arat dts then gcc -mtune=native generates unsuported instructions like PINSRD (which is part of SSE4.1 according to wikipedia, not supported by this CPU) I guess -mtune=native uncorrectly detects this CPU in version 4.6.0 Version 4.5.x did work correctly. WORKAROUND: use -mtune=core2
[Bug target/47315] ICE: in extract_insn, at recog.c:2109 (unrecognizable insn) with -mvzeroupper and __attribute__((target(avx)))
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47315 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc-p ||atches/2011-05/msg01649.htm ||l --- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2011-05-23 16:00:22 UTC --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2011-05/msg01649.html
[Bug target/44643] ice in c-typeck.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44643 Joseph S. Myers jsm28 at gcc dot gnu.org changed: What|Removed |Added CC||ddavenport at walchem dot ||com --- Comment #11 from Joseph S. Myers jsm28 at gcc dot gnu.org 2011-05-23 16:30:47 UTC --- *** Bug 49125 has been marked as a duplicate of this bug. ***
[Bug debug/33861] Debugging info for C++ template parameters is incorrect
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33861 Tom Tromey tromey at gcc dot gnu.org changed: What|Removed |Added CC||tromey at gcc dot gnu.org --- Comment #3 from Tom Tromey tromey at gcc dot gnu.org 2011-05-23 16:33:45 UTC --- We've been discussing this on gdb-patches recently. Note that PR 30161 doesn't really help. Currently we get: 251: Abbrev Number: 5 (DW_TAG_template_value_param) 52 DW_AT_name: V 54 DW_AT_type: 0xaf 58 DW_AT_location: 6 byte block: 3 0 0 0 0 9f (DW_OP_addr: 0; DW_OP_stack_value) ... but this requires that we be able to reliably map from address to name, which is not in general possible.
[Bug c++/49122] [C++0x] initializer_list is broken
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49122 --- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-23 16:44:22 UTC --- There's a note in [support.initlist] which says: Copying an initializer list does not copy the underlying elements. However there was some discussion on the core reflector last month pointing out that other requirements are inconsistent with that.
[Bug debug/30161] GCC should generate dwarf info about template parameters
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30161 --- Comment #11 from Tom Tromey tromey at gcc dot gnu.org 2011-05-23 16:34:27 UTC --- See PR 33861 for another example of where an extension would seem to be necessary.
[Bug target/47315] ICE: in extract_insn, at recog.c:2109 (unrecognizable insn) with -mvzeroupper and __attribute__((target(avx)))
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47315 --- Comment #3 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-05-23 16:51:46 UTC --- Author: hjl Date: Mon May 23 16:51:42 2011 New Revision: 174078 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174078 Log: Save the initial options after checking vzeroupper. gcc/ 2011-05-23 H.J. Lu hongjiu...@intel.com PR target/47315 * config/i386/i386.c (ix86_option_override_internal): Save the initial options after checking vzeroupper. gcc/testsuite/ 2011-05-23 H.J. Lu hongjiu...@intel.com PR target/47315 * gcc.target/i386/pr47315.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr47315.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 --- Comment #17 from John David Anglin danglin at gcc dot gnu.org 2011-05-23 16:53:04 UTC --- Jump is redirected here: Breakpoint 17, reorg_redirect_jump (jump=0x1ba9cc0, nlabel=0x1bac660) at ../../gcc/gcc/reorg.c:1882 1882 incr_ticks_for_insn (jump); (gdb) bt #0 reorg_redirect_jump (jump=0x1ba9cc0, nlabel=0x1bac660) at ../../gcc/gcc/reorg.c:1882 #1 0x003578d4 in relax_delay_slots (first=0x1b8a020) at ../../gcc/gcc/reorg.c:3525 #2 0x003581e1 in dbr_schedule (first=0x1b8a020) at ../../gcc/gcc/reorg.c:3894 #3 0x003589ba in rest_of_handle_delay_slots () at ../../gcc/gcc/reorg.c:4066 #4 0x002e3e22 in execute_one_pass (pass=0x634340) at ../../gcc/gcc/passes.c:1122 #5 0x002e3fd9 in execute_pass_list (pass=0x634340) at ../../gcc/gcc/passes.c:1176 #6 0x002e3ff5 in execute_pass_list (pass=0x633b80) at ../../gcc/gcc/passes.c:1177 #7 0x002e3ff5 in execute_pass_list (pass=0x633b40) at ../../gcc/gcc/passes.c:1177 #8 0x003f6ba7 in tree_rest_of_compilation (fndecl=0x1276ee0) at ../../gcc/gcc/tree-optimize.c:404 #9 0x00533c4c in cgraph_expand_function (node=0x156b280) at ../../gcc/gcc/cgraphunit.c:1166 #10 0x00533e08 in cgraph_expand_all_functions () at ../../gcc/gcc/cgraphunit.c:1229 #11 0x0053445b in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1436 #12 0x00015f5f in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:8099 #13 0x003a7942 in compile_file () at ../../gcc/gcc/toplev.c:1055 #14 0x003a9902 in do_compile () at ../../gcc/gcc/toplev.c:2244 #15 0x003a997a in toplev_main (argc=27, argv=0xb1c8) at ../../gcc/gcc/toplev.c:2276 #16 0x00081cab in main (argc=27, argv=0xb1c8) at ../../gcc/gcc/main.c:35 (gdb) p debug_rtx (nlabel) (code_label 465 64 464 624 [0 uses]) $72 = void (gdb) p debug_rtx (jump) (jump_insn 59 58 92 ../../gcc/gcc/basic-block.h:194 (set (pc) (if_then_else (gtu (reg:SI 28 %r28 [orig:132 variable.base.num ] [132]) (const_int 2 [0x2])) (label_ref:SI 322) (pc))) 25 {*pa.md:1770} (expr_list:REG_DEAD (reg:SI 28 %r28 [orig:132 variable.base.num ] [132]) (expr_list:REG_BR_PROB (const_int 9700 [0x25e4]) (nil $73 = void
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 --- Comment #16 from John David Anglin danglin at gcc dot gnu.org 2011-05-23 16:40:57 UTC --- The use is deleted because insn 434 has been retargeted from code_label 322 to code_label 465: (insn 434 58 366 ../../gcc/gcc/basic-block.h:194 (sequence [ (jump_insn 59 58 92 ../../gcc/gcc/basic-block.h:194 (set (pc) (if_then_else (gtu (reg:SI 28 %r28 [orig:132 variable.base.num ] [132]) (const_int 2 [0x2])) (label_ref:SI 465) (pc))) 25 {*pa.md:1770} (expr_list:REG_DEAD (reg:SI 28 %r28 [orig:132 variable.base.num ] [132]) (expr_list:REG_BR_PROB (const_int 9700 [0x25e4]) (nil (insn/s 92 59 366 (set (reg/v:SI 4 %r4 [orig:111 i ] [111]) (const_int 2 [0x2])) 37 {*pa.md:2542} (expr_list:REG_EQUAL (const_int 2 [0x2]) (nil))) ]) -1 (nil)) The code_label 322 then has zero uses.
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 --- Comment #18 from John David Anglin danglin at gcc dot gnu.org 2011-05-23 16:57:02 UTC --- So, the problem is here: /* Figure out where to emit the special USE insn so we don't later incorrectly compute register live/death info. */ rtx tmp = next_active_insn (trial); if (tmp == 0) tmp = find_end_label (); if (tmp) { /* Insert the special USE insn and update dataflow info. */ update_block (trial, tmp); /* Now emit a label before the special USE insn, and redirect our jump to the new label. */ target_label = get_label_before (PREV_INSN (tmp)); reorg_redirect_jump (delay_insn, target_label); next = insn; continue; } This code fails to handle the case where there already is a use.
[Bug target/49125] [avr-gcc] internal compiler error: in build_unary_op, at c-typeck.c:3786
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49125 Joseph S. Myers jsm28 at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Component|c |target Resolution||DUPLICATE --- Comment #1 from Joseph S. Myers jsm28 at gcc dot gnu.org 2011-05-23 16:30:47 UTC --- Duplicate of PR 44643. *** This bug has been marked as a duplicate of bug 44643 ***
[Bug c/49128] gcc -mtune=native generates unsuported instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49128 --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-23 16:53:00 UTC --- you haven't provided the necessary information requested at http://gcc.gnu.org/bugs/ Specifically you need to say how your gcc was configured (because -mtune should not affect the instructions gcc thinks are supported, that's set by -march) and provide your full compilation command and example code which reproduces the problem
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 --- Comment #15 from John David Anglin danglin at gcc dot gnu.org 2011-05-23 16:18:41 UTC --- Breakpoint 15, delete_related_insns (insn=0x1ba1390) at ../../gcc/gcc/jump.c:1126 1126 int was_code_label = (LABEL_P (insn)); (gdb) p debug_rtx (insn) (code_label 322 386 91 16 617 [0 uses]) $65 = void (gdb) p debug_rtx_list (insn, 5) (code_label 322 386 91 16 617 [0 uses]) (note 91 322 433 [bb 16] NOTE_INSN_BASIC_BLOCK) (insn 433 91 64 (use (insn/s 92 59 366 (set (reg/v:SI 4 %r4 [orig:111 i ] [111]) (const_int 2 [0x2])) 37 {*pa.md:2542} (expr_list:REG_EQUAL (const_int 2 [0x2]) (nil -1 (nil)) (insn 64 433 465 ../../gcc/gcc/tree-cfgcleanup.c:697 (set (reg/f:SI 1 %r1 [216]) (high:SI (symbol_ref:SI (cfun) [flags 0x240] var_decl 0xc204e0 cfun))) 49 {*pa.md:3017} (expr_list:REG_EQUIV (high:SI (symbol_ref:SI (cfun) [flags 0x240] var_decl 0xc204e0 cfun)) (nil))) (code_label 465 64 464 624 [1 uses])
[Bug c++/49105] [C++0x][SFINAE] ICE during list-initialization of rvalue-references to const
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49105 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011.05.23 17:38:40 CC||jason at gcc dot gnu.org AssignedTo|unassigned at gcc dot |jason at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1
[Bug c++/49092] [4.7 Regression] ice in tree_add_const_value_attribute
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49092 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED CC||jakub at gcc dot gnu.org Resolution||FIXED --- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 17:34:07 UTC --- Fixed.
[Bug c++/49102] [C++0x] Use of deleted copy constructor not diagnosed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49102 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011.05.23 17:53:17 AssignedTo|unassigned at gcc dot |jason at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1
[Bug c++/48892] [C++0x] XFAILed bogus errors in constexpr-48089.C
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48892 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.05.23 17:53:36 Ever Confirmed|0 |1
[Bug c/49120] [4.5/4.6/4.7 Regression] bogus value computed is not used warning (variable-length array in compound statement)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49120 --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 18:02:08 UTC --- Author: jakub Date: Mon May 23 18:02:03 2011 New Revision: 174081 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174081 Log: PR c/49120 * c-decl.c (start_decl): Convert expr to void_type_node. * gcc.dg/pr49120.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr49120.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-decl.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49007 --- Comment #19 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-05-23 18:00:56 UTC --- This code fails to handle the case where there already is a use. This should have been fixed in 4.5 and above: PR rtl-optimization/40086 * reorg.c (relax_delay_slots): When looking for redundant insn at the branch target, use next_real_insn, not next_active_insn.
[Bug debug/49032] -gstabs generates reference to deleted static variable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49032 --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 18:07:46 UTC --- Author: jakub Date: Mon May 23 18:07:43 2011 New Revision: 174083 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174083 Log: PR debug/49032 * dbxout.c: Include cgraph.h. (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written and without value expr, return NULL if no varpool node exists for it or if it is not needed. * Makefile.in (dbxout.o): Depend on $(CGRAPH_H). * gcc.dg/debug/pr49032.c: New test. Added: trunk/gcc/testsuite/gcc.dg/debug/pr49032.c Modified: trunk/gcc/ChangeLog trunk/gcc/Makefile.in trunk/gcc/dbxout.c trunk/gcc/testsuite/ChangeLog
[Bug c++/48324] [C++0x] constexpr evaluation should respect lifetime rules
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48324 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011.05.23 17:53:51 Ever Confirmed|0 |1
[Bug c/49120] [4.5/4.6/4.7 Regression] bogus value computed is not used warning (variable-length array in compound statement)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49120 --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 18:03:35 UTC --- Author: jakub Date: Mon May 23 18:03:31 2011 New Revision: 174082 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174082 Log: PR c/49120 * c-decl.c (start_decl): Convert expr to void_type_node. * gcc.dg/pr49120.c: New test. Added: branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/pr49120.c Modified: branches/gcc-4_6-branch/gcc/ChangeLog branches/gcc-4_6-branch/gcc/c-decl.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
[Bug rtl-optimization/48826] ICE in dwarf2out_var_location, at dwarf2out.c:22013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48826 --- Comment #6 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 2011-05-23 17:57:38 UTC --- Author: rsandifo Date: Mon May 23 17:57:35 2011 New Revision: 174080 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174080 Log: gcc/ PR rtl-optimization/48826 * emit-rtl.c (try_split): When splitting a call that is followed by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call. Modified: trunk/gcc/ChangeLog trunk/gcc/emit-rtl.c
[Bug c++/49129] New: confusing diagnostic for missing semi-colon after member template
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49129 Summary: confusing diagnostic for missing semi-colon after member template Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: diagnostic Severity: enhancement Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: froy...@gcc.gnu.org typedef int I; struct X { templateclass struct Y { } // oops, missing ';' static I f(); }; expinit.cc:7:12: error: expected initializer before ‘f’ If f returns 'int' instead of a typedef then the error is good: expinit.cc:5:30: error: expected ‘;’ after struct definition If X::Y is not a template then the error is good: expinit.cc:7:10: error: expected ‘;’ at end of member declaration expinit.cc:7:14: error: ISO C++ forbids declaration of ‘f’ with no type [-fpermissive]
[Bug rtl-optimization/48826] ICE in dwarf2out_var_location, at dwarf2out.c:22013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48826 rsand...@gcc.gnu.org rsandifo at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #7 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 2011-05-23 18:24:31 UTC --- Fixed on trunk.
[Bug debug/49032] -gstabs generates reference to deleted static variable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49032 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||jakub at gcc dot gnu.org Resolution||FIXED AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 18:19:18 UTC --- Fixed.
[Bug debug/49032] -gstabs generates reference to deleted static variable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49032 --- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 18:12:36 UTC --- Author: jakub Date: Mon May 23 18:12:34 2011 New Revision: 174084 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174084 Log: PR debug/49032 * dbxout.c: Include cgraph.h. (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written and without value expr, return NULL if no varpool node exists for it or if it is not needed. * Makefile.in (dbxout.o): Depend on $(CGRAPH_H). * gcc.dg/debug/pr49032.c: New test. Added: branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/debug/pr49032.c Modified: branches/gcc-4_6-branch/gcc/ChangeLog branches/gcc-4_6-branch/gcc/Makefile.in branches/gcc-4_6-branch/gcc/dbxout.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
[Bug debug/48843] ICE in dwarf2out_var_location, at dwarf2out.c:22585 with pragma GCC optimize
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48843 rsand...@gcc.gnu.org rsandifo at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||rsandifo at gcc dot gnu.org Resolution||DUPLICATE --- Comment #2 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 2011-05-23 18:27:33 UTC --- Same problem as #48826. I've just committed a patch. *** This bug has been marked as a duplicate of bug 48826 ***
[Bug c/49128] -mtune=native generates unsupported instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49128 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc-p ||atches/2011-05/msg01664.htm ||l --- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2011-05-23 18:11:35 UTC --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2011-05/msg01664.html
[Bug c/49120] [4.5 Regression] bogus value computed is not used warning (variable-length array in compound statement)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49120 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Known to work||4.6.1, 4.7.0 Summary|[4.5/4.6/4.7 Regression]|[4.5 Regression] bogus |bogus value computed is|value computed is not |not used warning |used warning |(variable-length array in |(variable-length array in |compound statement) |compound statement) --- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-23 18:17:58 UTC --- Fixed for 4.6+ so far.
[Bug rtl-optimization/48826] ICE in dwarf2out_var_location, at dwarf2out.c:22013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48826 rsand...@gcc.gnu.org rsandifo at gcc dot gnu.org changed: What|Removed |Added CC||aldot at gcc dot gnu.org --- Comment #8 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 2011-05-23 18:27:33 UTC --- *** Bug 48843 has been marked as a duplicate of this bug. ***
[Bug target/45345] In function `mips16_build_function_stub' undefined reference to `ASM_OUTPUT_DEF'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45345 rsand...@gcc.gnu.org rsandifo at gcc dot gnu.org changed: What|Removed |Added CC||amylaar at gcc dot gnu.org --- Comment #2 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 2011-05-23 18:38:26 UTC --- *** Bug 47110 has been marked as a duplicate of this bug. ***
[Bug libstdc++/41495] libstdc++ --enable-clocale=ieee_1003.1-2001 fails
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41495 --- Comment #10 from Alasdair Lumsden alasdairrr at gmail dot com 2011-05-23 18:36:29 UTC --- (In reply to comment #9) I only work on libstdc++ in my spare time and I lack the time, not the motivation :) Alrighty! There are some others who expressed an interest in improving the locale code for Darwin and they might be interested. See the libstdc++ mailing list archives for December 2010, January, February and May 2011 for various threads on the subject. I'll check this out, thanks for the info. I think a better long term plan is to write a new locale model based on the POSIX 2008 API, as that could be common to more platforms and would provide thread-safety and the other advantages of the GNU/Linux code. Would this be a significant volume of work? I don't *think* so, the GNU locale model already uses those APIs as they've been in glibc for ages, so a good starting point would be copying the GNU code and fixing it up a bit to replace anything GNU-specific with the POSIX.1-2008 equivalent. Someone already started doing that for Darwin earlier this month. Great, again thanks for the info. I'll make contact with the darwin folks. Cheers, Alasdair