[Bug middle-end/51323] [4.6/4.7 Regression] g++ confuses this with function argument in optimized call
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51323 --- Comment #10 from Jakub Jelinek 2011-12-05 08:15:36 UTC --- Author: jakub Date: Mon Dec 5 08:15:23 2011 New Revision: 182000 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182000 Log: PR middle-end/51323 PR middle-end/50074 * calls.c (internal_arg_pointer_exp_state): New variable. (internal_arg_pointer_based_exp_1, internal_arg_pointer_exp_scan): New functions. (internal_arg_pointer_based_exp): New function. (mem_overlaps_already_clobbered_arg_p): Use it. (expand_call): Free internal_arg_pointer_exp_state.cache vector and clear internal_arg_pointer_exp_state.scan_start. * gcc.c-torture/execute/pr51323.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr51323.c Modified: trunk/gcc/ChangeLog trunk/gcc/calls.c trunk/gcc/testsuite/ChangeLog
[Bug middle-end/50074] [4.7 Regression] gcc.dg/sibcall-6.c execution test on x86_64 with -fPIC
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50074 --- Comment #18 from Jakub Jelinek 2011-12-05 08:15:38 UTC --- Author: jakub Date: Mon Dec 5 08:15:23 2011 New Revision: 182000 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182000 Log: PR middle-end/51323 PR middle-end/50074 * calls.c (internal_arg_pointer_exp_state): New variable. (internal_arg_pointer_based_exp_1, internal_arg_pointer_exp_scan): New functions. (internal_arg_pointer_based_exp): New function. (mem_overlaps_already_clobbered_arg_p): Use it. (expand_call): Free internal_arg_pointer_exp_state.cache vector and clear internal_arg_pointer_exp_state.scan_start. * gcc.c-torture/execute/pr51323.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr51323.c Modified: trunk/gcc/ChangeLog trunk/gcc/calls.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #37 from rguenther at suse dot de 2011-12-05 08:18:00 UTC --- On Fri, 2 Dec 2011, burnus at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 > > --- Comment #34 from Tobias Burnus 2011-12-02 > 17:06:57 UTC --- [...] > * * * > > Back to the comment 0 issue: I still do not quite understand what the double > evaluation (on tree level) of __builtin_pow in > D.1959_82 = ((D.2115_81)); > D.1960_83 = __builtin_pow (D.1959_82, 2.0e+0); > D.1978_168 = __builtin_pow (D.2115_81, 2.0e+0); > has to do with the -Ofast slow down. If I have understood it correctly, on > tree > level, there is no reason for it while the slow-down happens on RTL level. Indeed I can find no other difference on the tree level (thus, no invariant motion missed optimization that isn't present with both -f[no-]protect-parens). > That -fprotect-parens makes it faster is a mere coincidence. Is that a > correct rough > summary? Yes. Thus, I think if at the RTL level we see a missed invariant motion then this is a RTL level bug (esp. if it only triggers with -fno-protect-parens). Richard.
[Bug rtl-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #38 from rguenther at suse dot de 2011-12-05 08:27:08 UTC --- On Fri, 2 Dec 2011, ebotcazou at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 > > --- Comment #35 from Eric Botcazou 2011-12-02 > 21:21:15 UTC --- > > One thing I notice (and that's the only difference I can spot at the tree > > level) is that we do not CSE the **2s of > > There are many missed hoisting opportunities, with or without the switch. > There are just a few more with the switch, hence the performance regression. Most of them (not sure if you mean those) are because they are considered "cheap" by LIM and thus are not moved: vect_px2gauss.123_641 = &x2gauss; invariant up to level 1, cost 1. vect_cst_.126_659 = { 1.0e+0, 1.0e+0 }; invariant up to level 1, cost 1. vect_cst_.128_661 = {D.2126_109, D.2126_109}; invariant up to level 1, cost 1. ... vect_px2gauss.120_20 = vect_px2gauss.123_641 + 16; invariant up to level 1, cost 2. ... ivtmp.176_899 = 1; invariant up to level 1, cost 1. ... vect_px2gauss.120_649 = vect_px2gauss.120_336; invariant up to level 1, cost 5. ... ISTR discussing to remove all cost considerations for tree level loop invariant motion and simply move everything possible (PRE for example doesn't consider any costs and moves all invariants). If you use --param lim-expensive=1 you get all invariants moved on the tree level - does that solve the slowdown issue? The issue is of course that this might increase register pressure as we are not good in re-materializing for example constants inside a loop. I'll give --param lim-expensive=1 a try on SPEC 2k6
[Bug middle-end/51323] [4.6 Regression] g++ confuses this with function argument in optimized call
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51323 Jakub Jelinek changed: What|Removed |Added Summary|[4.6/4.7 Regression] g++|[4.6 Regression] g++ |confuses this with function |confuses this with function |argument in optimized call |argument in optimized call --- Comment #11 from Jakub Jelinek 2011-12-05 08:38:20 UTC --- Fixed on the trunk so far.
[Bug middle-end/50074] [4.7 Regression] gcc.dg/sibcall-6.c execution test on x86_64 with -fPIC
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50074 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #19 from Jakub Jelinek 2011-12-05 08:37:51 UTC --- Fixed.
[Bug fortran/51418] Fortran format sp,f0.0 output wrong with NaN and 0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51418 Tobias Burnus changed: What|Removed |Added CC||burnus at gcc dot gnu.org --- Comment #1 from Tobias Burnus 2011-12-05 08:40:49 UTC --- (In reply to comment #0) > This 6-line program prints " NaN" when IMHO it should print "NaN" and "+." > when IMHO it should print "+0." > gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) > gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) With GCC 4.7 and 4.6.2, I get: "NaN" "+0." However, with GCC 4.5.3 20110428, I get: " NaN" "**" Thus, it must have been fixed in 4.6 - either 4.6.0 or later. I saw some I/O-format-related changes around 2011-04-29 and some others around 2011-02-28. As it is no regression, an (inconvenient but) minor issue, and as I/O format fixes tend to have unexpected side effects, I do not think that the patches will be back ported to 4.5 or even 4.4. Thus, if the bug is a show stopper, you could try to install (possibly parallel to 4.4) a newer GCC/gfortran. For instance, Fedora 16 ships with GCC 4.6 and Ubuntu offers it as personal builds (cf. http://gcc.gnu.org/wiki/GFortranDistros). There is also a gfortran developer build for i386-linux at http://gcc.gnu.org/wiki/GFortranBinaries, which you could use - or you build GCC yourself. If it is no show stopper, you could also simply wait for the next Ubuntu version or - for RHEL - for a 6.x version with a newer GCC as technical preview. Thanks for reporting the bug!
[Bug middle-end/49719] [4.7 Regression] test gcc.target/arm/sibcall-1.c fails for ARM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49719 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Jakub Jelinek 2011-12-05 08:37:16 UTC --- Actually this particular testcase got fixed already by Joern's http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181738 change. But even the patch covering non-empty stored_args_map is now in.
[Bug rtl-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #39 from Eric Botcazou 2011-12-05 09:21:15 UTC --- > Thus, I think if at the RTL level we see a missed invariant motion then > this is a RTL level bug (esp. if it only triggers with -fno-protect-parens). Well, how can the RTL level invent load hoisting opportunities? They are of course already present at the Tree level, see the .optimized dump: vect_var_.124_350 = MEM[(real(kind=8)[9] *)&x2gauss]; vect_var_.133_823 = MEM[(real(kind=8)[9] *)&y2gauss]; vect_var_.157_586 = MEM[(real(kind=8)[9] *)&w2gauss]; vect_var_.124_357 = MEM[(real(kind=8)[9] *)&x2gauss + 16B]; vect_var_.133_363 = MEM[(real(kind=8)[9] *)&y2gauss + 16B]; vect_var_.157_874 = MEM[(real(kind=8)[9] *)&w2gauss + 16B]; vect_var_.124_405 = MEM[(real(kind=8)[9] *)&x2gauss + 32B]; vect_var_.133_594 = MEM[(real(kind=8)[9] *)&y2gauss + 32B]; vect_var_.157_610 = MEM[(real(kind=8)[9] *)&w2gauss + 32B]; vect_var_.124_651 = MEM[(real(kind=8)[9] *)&x2gauss + 48B]; vect_var_.133_680 = MEM[(real(kind=8)[9] *)&y2gauss + 48B]; vect_var_.157_805 = MEM[(real(kind=8)[9] *)&w2gauss + 48B];
[Bug other/51417] Cross-compiler - wrappers for ar, nm, ranlib installed under wrong names
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51417 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 CC||andi-gcc at firstfloor dot ||org Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2011-12-05 09:29:45 UTC --- It should be ${target}-gcc-{ar,nm,ranlib} only for a start.
[Bug lto/47259] [4.7 Regression] LTO and global register variable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47259 Richard Guenther changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||FIXED --- Comment #13 from Richard Guenther 2011-12-05 09:30:10 UTC --- Fixed.
[Bug debug/51410] [4.5/4.6/4.7 Regression] duplicate variable DIE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410 Richard Guenther changed: What|Removed |Added Keywords||wrong-debug Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 Known to work||4.3.6, 4.4.6 Target Milestone|--- |4.5.4 Summary|duplicate variable DIE |[4.5/4.6/4.7 Regression] ||duplicate variable DIE Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2011-12-05 09:34:29 UTC --- Confirmed. Fails since 4.5.0.
[Bug c++/51406] [4.5/4.6/4.7 Regression][c++0x] Incorrect result of static_cast to rvalue reference to base class.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51406 Richard Guenther changed: What|Removed |Added Keywords||wrong-code Target Milestone|--- |4.5.4
[Bug c++/51395] [4.5/4.6 Regression] ICE in dependent_type_p (endless (?) recursion)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51395 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 Target Milestone|--- |4.5.4 Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2011-12-05 09:38:35 UTC --- Confirmed.
[Bug middle-end/51285] [4.7 Regression] internal compiler error: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51285 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #9 from Jakub Jelinek 2011-12-05 09:41:31 UTC --- Fixed.
[Bug rtl-optimization/51069] [4.7 Regression] ICE in verify_loop_structure, at cfgloop.c:1559
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51069 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek 2011-12-05 09:47:33 UTC --- Started with http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171946 Tiny bit reduced testcase for -O3 -funroll-loops: int a, b, c, d, e, f, bar (void); void foo (int x) { for (;;) { if (!x) { for (d = 6; d >= 0; d--) { while (!b) ; if (e) return foo (x); if (f) { a = 0; continue; } for (; c; c--) ; } } if (bar ()) break; e = 0; if (x) for (;;) ; } }
[Bug c/51391] Differences between setting Winline in command-line and through pragma GCC diagnostic
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51391 Richard Guenther changed: What|Removed |Added CC||hubicka at gcc dot gnu.org, ||jsm28 at gcc dot gnu.org Severity|normal |enhancement --- Comment #16 from Richard Guenther 2011-12-05 09:49:20 UTC --- I think a more appropriate "fix" today is to drop the x_flag_no_inline setting (it should not be necessary these days) but keep ignoring -Winline at -O0 (there is probably a better central place to do this, supposedly at the point we emit the warning, instead of in the option code). In fact, the warning inlineBug.h:16:8: warning: function ‘inlineBug::inlineBug()’ can never be inlined because it is suppressed using -fno-inline does not seem useful to me at all (see tree-inline.c:tree_inlinable_function_p, warning in a predicate seems questionable to me at best, warning during expand_call_inline isn't better either. A pass over remaining inline-declared edges after IPA inline transform sounds more appropriate to me, also enabled when IPA inline is disabled itself)
[Bug rtl-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #40 from rguenther at suse dot de 2011-12-05 09:55:47 UTC --- On Mon, 5 Dec 2011, ebotcazou at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 > > --- Comment #39 from Eric Botcazou 2011-12-05 > 09:21:15 UTC --- > > Thus, I think if at the RTL level we see a missed invariant motion then > > this is a RTL level bug (esp. if it only triggers with > > -fno-protect-parens). > > Well, how can the RTL level invent load hoisting opportunities? They are of > course already present at the Tree level, see the .optimized dump: > > vect_var_.124_350 = MEM[(real(kind=8)[9] *)&x2gauss]; They are considered dependent because they are still decomposed as vect_px2gauss.123_680 = &x2gauss; ... vect_var_.124_350 = MEM[(real(kind=8)[9] *)vect_px2gauss.123_680]; during LIM3. Let me check why we don't fix that up in LIM dependence checking.
[Bug rtl-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #41 from Dominique d'Humieres 2011-12-05 10:12:39 UTC --- Using --param lim-expensive=1 when compiling induct.f90 does not change the timing, as for today (r181994): gfc -Ofast induct.f90 -> 14.62s gfc -Ofast induct.f90 --param lim-expensive=1 -> 14.61s gfc -fprotect-parens -Ofast induct.f90 -> 14.11s gfc -fprotect-parens -Ofast induct.f90 --param lim-expensive=1-> 14.12s (a ~0.15s improvement over the timing in comment #1).
[Bug rtl-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #42 from Richard Guenther 2011-12-05 10:19:11 UTC --- Argh. It seems LIM didn't get proper lifting both at tuplification and alias-improvements time. So it's memory handling (everything it does with VOPs) is a little very much conservative (read: it doesn't really work). I'll look into this.
[Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 Eric Botcazou changed: What|Removed |Added Status|ASSIGNED|NEW Component|rtl-optimization|tree-optimization AssignedTo|ebotcazou at gcc dot|unassigned at gcc dot |gnu.org |gnu.org --- Comment #43 from Eric Botcazou 2011-12-05 10:26:52 UTC --- > Argh. It seems LIM didn't get proper lifting both at tuplification and > alias-improvements time. So it's memory handling (everything it does > with VOPs) is a little very much conservative (read: it doesn't really work). OK, re-recategorizing for further investigation.
[Bug ada/51307] [4.7 Regression] s-taprop.adb:676:25: "CLOCK_RT_Ada" not declared in "OS_Constants"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51307 --- Comment #7 from Arnaud Charlet 2011-12-05 10:32:03 UTC --- Author: charlet Date: Mon Dec 5 10:31:58 2011 New Revision: 182004 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182004 Log: 2011-12-05 Bob Duff * sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias to the Comes_From_Source check, to deal properly with the case of indirect inheritance of "=". 2011-12-05 Thomas Quinot PR ada/51307 * s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal, not a macro. 2011-12-05 Thomas Quinot * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominance information in SCOs. Modified: trunk/gcc/ada/ChangeLog trunk/gcc/ada/get_scos.adb trunk/gcc/ada/par_sco.adb trunk/gcc/ada/put_scos.adb trunk/gcc/ada/s-oscons-tmplt.c trunk/gcc/ada/scos.ads trunk/gcc/ada/sem_ch3.adb
[Bug ada/51307] [4.7 Regression] s-taprop.adb:676:25: "CLOCK_RT_Ada" not declared in "OS_Constants"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51307 Arnaud Charlet changed: What|Removed |Added Status|NEW |WAITING --- Comment #8 from Arnaud Charlet 2011-12-05 10:33:42 UTC --- Dave, let me know if the current trunk solves the issue or not, thanks. Arno
[Bug rtl-optimization/50557] [4.7 Regression] Register pressure increase after reassociation (x86, 32 bits)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50557 Steven Bosscher changed: What|Removed |Added CC||steven at gcc dot gnu.org --- Comment #9 from Steven Bosscher 2011-12-05 10:45:56 UTC --- There is still the old loop re-rolling pass from the rtlopt-branch. I am not sure if there were any good reasons for not including it in GCC. http://gcc.gnu.org/viewcvs/branches/rtlopt-branch/gcc/loop-reroll.c?view=log
[Bug c++/51414] Broken diagnostic with invalid use of __underlying_type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51414 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot |gnu.org |com Ever Confirmed|0 |1 --- Comment #2 from Paolo Carlini 2011-12-05 10:46:00 UTC --- Seems just a trivial thinko if mine: %qE instead of %qT.
[Bug c++/51225] [c++0x] [4.7 Regression] ICE with invalid template parameter
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51225 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|NEW AssignedTo|paolo.carlini at oracle dot |unassigned at gcc dot |com |gnu.org
[Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 Richard Guenther changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | --- Comment #44 from Richard Guenther 2011-12-05 11:11:36 UTC --- Created attachment 25990 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25990 proposed patch Pretty much minimal patch in testing. I have a 2nd patch doing some cost adjustments.
[Bug c++/51406] [4.5/4.6/4.7 Regression][c++0x] Incorrect result of static_cast to rvalue reference to base class.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51406 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 Ever Confirmed|0 |1 --- Comment #2 from Paolo Carlini 2011-12-05 11:38:28 UTC --- When fixing this bug we may want to have a look to PR51161
[Bug c++/51399] [c++0x] [4.7 Regression] ICE with invalid initializer list
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51399 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot |gnu.org |com Ever Confirmed|0 |1 --- Comment #1 from Paolo Carlini 2011-12-05 12:00:16 UTC --- On it.
[Bug tree-optimization/51396] [4.7 Regression] ICE: verify_flow_info failed: BB 4 can not throw but has an EH edge with -O2 -fnon-call-exceptions -mfma4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51396 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 Target Milestone|--- |4.7.0 Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2011-12-05 12:12:03 UTC --- Confirmed, catched after the lower-resx pass. Note that there doesn't seem to be an FMA involved at all ...
[Bug inline-asm/51423] New: Questions regarding Clobber List for inline ARM/NEON assembly
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51423 Bug #: 51423 Summary: Questions regarding Clobber List for inline ARM/NEON assembly Classification: Unclassified Product: gcc Version: 4.4.1 Status: UNCONFIRMED Severity: major Priority: P3 Component: inline-asm AssignedTo: unassig...@gcc.gnu.org ReportedBy: amit_chauha...@yahoo.co.in Dear All, I am facing some random crashes in my applications on using the neon(inline) assembly code. However with pure C code the application works fine. I had following questions regarding neon inline assembly usage. Q1> In Inline neon assembly does only d8-d15 registers are required to be added in clobber list even if inline assembly uses d0-d7,d16-d31 registers? Q2> Correct way to put the register in clobber list: s(32 bit) , d(64 bit) or q(128bit) registers. Thanks in Advanced.
[Bug rtl-optimization/51069] [4.7 Regression] ICE in verify_loop_structure, at cfgloop.c:1559
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51069 Jakub Jelinek changed: What|Removed |Added CC||hubicka at gcc dot gnu.org --- Comment #3 from Jakub Jelinek 2011-12-05 12:46:05 UTC --- CCing Honza, not familiar enough with remove_path/unroll. #0 unloop (loop=0x7133d880, irred_invalidated=0x7fffdeef "") at ../../gcc/cfgloopmanip.c:797 #1 0x00675e53 in remove_path (e=0x7146c900) at ../../gcc/cfgloopmanip.c:319 #2 0x009ae07f in peel_loop_completely (loop=0x7133d880) at ../../gcc/loop-unroll.c:514 #3 0x009ad89f in peel_loops_completely (flags=2) at ../../gcc/loop-unroll.c:256 #4 0x009ad640 in unroll_and_peel_loops (flags=2) at ../../gcc/loop-unroll.c:165 #5 0x009a07e4 in rtl_unroll_and_peel_loops () at ../../gcc/loop-init.c:329 is called with loop_2 (header = 6, latch = 21, niter = ) { bb_6 (preds = {bb_21 bb_45 }, succs = {bb_9 bb_7 }) bb_9 (preds = {bb_6 }, succs = {bb_10 bb_11 }) bb_11 (preds = {bb_9 }, succs = {bb_21 bb_12 }) bb_21 (preds = {bb_11 }, succs = {bb_6 }) } where bb_4, bb_12, bb_13 and bb_14 are BB_IRREDUCIBLE_LOOP, before this unroll call verify_loop_structure passes, after it already fails. Of course calling mark_irreducible_loops () after peel_loops_completely () fixes this up and let the testcase pass, but remove_path/unroll should figure it out if it invalidates this property.
[Bug c++/51154] internal compiler error: gimplification failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51154 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME --- Comment #5 from Richard Guenther 2011-12-05 13:10:45 UTC --- All testcases work for me.
[Bug tree-optimization/51117] [4.7 regression] rev.181172 causes glibc build failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51117 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug testsuite/51128] [4.7 Regression] New LTO failures
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51128 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug c++/51350] [4.7 Regression] Bogus -Wstrict-overflow warning: assuming signed overflow does not occur when assuming that (X + c) < X is always false
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51350 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug middle-end/51263] [4.7 regression] ICE in inline_small_functions when compiling scummvm with -O2 -flto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51263 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug gcov-profile/51113] [4.7 regression] rev. 181105 causes Firefox profiledbuild failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51113 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug regression/51097] [4.7 Regression] a lot of "FAIL: gcc.dg/vect" on i686 avx build 181167 to 181177
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51097 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug libstdc++/51135] [4.7 Regression] SIGSEGV during exception cleanup on win32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51135 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug c++/51223] [4.5/4.6/4.7 Regression] ICE with invalid function parameter
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51223 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.5.4
[Bug c++/51228] [4.5/4.6/4.7 Regression] ICE with transparent union
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51228 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.5.4
[Bug libstdc++/51386] [4.7 Regression]: 23_containers/unordered_set/hash_policy/load_factor.cc execution timeout
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51386 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug tree-optimization/51362] [4.7 Regression] ICE: SIGFPE (division by zero) in good_cloning_opportunity_p at ipa-cp.c:2401
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51362 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug tree-optimization/51091] [4.7 Regression] FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51091 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug regression/51097] [4.7 Regression] a lot of "FAIL: gcc.dg/vect" on i686 avx build 181167 to 181177
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51097 --- Comment #3 from Igor Zamyatin 2011-12-05 14:16:09 UTC --- Hope to finish a patch this week
[Bug bootstrap/51094] [4.7 Regression] Bootstrap failure at revision 181279 on non-ELF targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51094 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug fortran/51338] [4.6/4.7 Regression] seg fault in gfc_dep_compare_expr with -O2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51338 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.6.3
[Bug ada/51307] [4.7 Regression] s-taprop.adb:676:25: "CLOCK_RT_Ada" not declared in "OS_Constants"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51307 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug gcov-profile/51361] [4.7 Regression] 471.omnetpp of SPEC2006 fails to build with -fprofile-generate
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51361 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug tree-optimization/51363] [4.7 Regression] ICE: in gimple_rhs_has_side_effects, at gimple.c:2530 with -O -fno-tree-ccp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51363 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug fortran/51197] [4.7 Regression] Backtrace information less useful
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51197 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug debug/51262] [4.7 Regression] ICE: SIGSEGV in primary_template_instantiation_p (pt.c:2874) with -flto -g
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51262 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug tree-optimization/51091] [4.7 Regression] FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51091 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Jakub Jelinek 2011-12-05 14:20:20 UTC --- Fixed.
[Bug middle-end/51339] [4.6/4.7 Regression] ICE: in convert_move, at expr.c:326 with -fopenmp and parallel for
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51339 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.6.3
[Bug target/51237] [4.7 Regression] FAIL: gcc.dg/tree-ssa/prefetch-[89].c (internal compiler error) caused by revision 181491
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51237 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug testsuite/51128] [4.7 Regression] New LTO failures
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51128 --- Comment #1 from Uros Bizjak 2011-12-05 14:35:03 UTC --- /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } */
[Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #45 from Richard Guenther 2011-12-05 14:36:48 UTC --- Author: rguenth Date: Mon Dec 5 14:36:44 2011 New Revision: 182010 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182010 Log: 2011-12-05 Richard Guenther PR tree-optimization/50904 * tree-ssa-loop-im.c (struct mem_ref): Remove vops member. (MEM_ANALYZABLE): New. (memory_references): Remove clobbered_vops and vop_ref_map members, add all_refs_stored_in_loop member. (memref_free): Adjust. (mem_ref_alloc): Likewise. (gather_mem_refs_stmt): Do not record clobbers, instead record refs for unanalyzable stmts. (gather_mem_refs_in_loops): Do not propagate clobbers. (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores, add_vop_ref_mapping): Remove. (create_vop_ref_mapping_loop): Adjust to simply record all stores. (analyze_memory_references): Adjust. (refs_independent_p): Check for not analyzable refs. (can_sm_ref_p): Likewise. (ref_indep_loop_p_1): Simplify. (tree_ssa_lim_finalize): Adjust. * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE rather than magic constants. Assign zero cost to PAREN_EXPR and SSA_NAME copies. Assign cost proportional to the vector size for vector constructors. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-loop-im.c
[Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 Richard Guenther changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #46 from Richard Guenther 2011-12-05 14:37:14 UTC --- Fixed (fingers crossing).
[Bug fortran/51338] [4.6/4.7 Regression] seg fault in gfc_dep_compare_expr with -O2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51338 Tobias Burnus changed: What|Removed |Added CC||burnus at gcc dot gnu.org --- Comment #8 from Tobias Burnus 2011-12-05 14:40:56 UTC --- (In reply to comment #7) > I'll look at it. Thanks for the analysis and the fix! Thomas' patch: http://gcc.gnu.org/ml/fortran/2011-11/msg00254.html Review (approval): http://gcc.gnu.org/ml/fortran/2011-12/msg00023.html
[Bug tree-optimization/48641] [4.7 Regression] ICE: verify_flow_info failed: Wrong frequency of block 77 -419530 with -O -fno-tree-ccp -fno-tree-copy-prop
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48641 Jakub Jelinek changed: What|Removed |Added Attachment #24012|0 |1 is obsolete|| --- Comment #2 from Jakub Jelinek 2011-12-05 14:51:12 UTC --- Created attachment 25991 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25991 pr48641.c Slightly more reduced testcase. The problem is in the thread-ssa-threadupdate.c (redirect_edges) hunk added in r102053: rd->dup_block->count += e->count; rd->dup_block->frequency += EDGE_FREQUENCY (e); EDGE_SUCC (rd->dup_block, 0)->count += e->count; create_duplicates on this testcase creates huge number of basic blocks, and this function adjusts the edges, so that each of these rd->dup_block has two incoming edges, one 100% EDGE_FREQUENCY (for the first one of these from the ENTRY successor, another one from some other bb (which will be removed as dead later on, for the other blocks one of the predecessors is the previous dup block). Unfortunately this means that rd->dup_block->frequency goes over BB_FREQ_MAX (the first of these has BB_FREQ_MAX + something, second that plus something2, etc.) and finally the EDGE_FREQUENCY computation overflows (e->src->frequency where e->src is the previous rd->dup_block is over 214748 and EDGE_FREQUENCY multiplies that by 1). Caping it to BB_FREQ_MAX wouldn't probably work, because then cfg cleanup that removes all the unreachable blocks would decrease it too much. Honza?
[Bug libstdc++/51135] [4.7 Regression] SIGSEGV during exception cleanup on win32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51135 Paolo Carlini changed: What|Removed |Added CC||cgf at gcc dot gnu.org, ||dave.korn.cygwin at gmail ||dot com, ktietz at gcc dot ||gnu.org --- Comment #1 from Paolo Carlini 2011-12-05 14:52:58 UTC --- This badly requires a target maintainer.
[Bug target/51237] [4.7 Regression] FAIL: gcc.dg/tree-ssa/prefetch-[89].c (internal compiler error) caused by revision 181491
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51237 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #1 from Dominique d'Humieres 2011-12-05 14:56:33 UTC --- Fixed by revision 181531: Author:uros Date:Sun Nov 20 19:17:08 2011 UTC (2 weeks ago) Changed paths:5 Log Message: * config/i386/i386.md (UNSPEC_MOVNTI): Remove. (UNSPEC_MOVNTQ): New unspec. * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi. Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT. * config/i386/sse.md (sse2_movnti): Use UNSPEC_MOVNT instead of UNSPEC_MOVNTI. (STORENT_MODE): Add DI and V4DI modes. see http://gcc.gnu.org/ml/gcc-patches/2011-11/msg02016.html .
[Bug tree-optimization/51117] [4.7 regression] rev.181172 causes glibc build failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51117 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek 2011-12-05 14:57:39 UTC --- I agree it is a gcc bug, please see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51275 for more information.
[Bug bootstrap/51094] [4.7 Regression] Bootstrap failure at revision 181279 on non-ELF targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51094 --- Comment #21 from Dominique d'Humieres 2011-12-05 15:01:49 UTC --- There is no longer any bootstrap issues. Does it remain something to fix? Otherwise I'll close this PR as fixed.
[Bug tree-optimization/51363] [4.7 Regression] ICE: in gimple_rhs_has_side_effects, at gimple.c:2530 with -O -fno-tree-ccp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51363 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011-12-05 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther 2011-12-05 15:03:55 UTC --- Mine.
[Bug libstdc++/51135] [4.7 Regression] SIGSEGV during exception cleanup on win32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51135 Dave Korn changed: What|Removed |Added CC||davek at gcc dot gnu.org --- Comment #2 from Dave Korn 2011-12-05 15:10:54 UTC --- Doesn't reproduce on Cygwin, and I don't have a current mingw cross compiler handy. It would be best if Kai can look at this as I'm up to my neck in ada at the moment, if he hasn't found time in the next four or five days I'll try and investigate.
[Bug c++/51350] [4.7 Regression] Bogus -Wstrict-overflow warning: assuming signed overflow does not occur when assuming that (X + c) < X is always false
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51350 Richard Guenther changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #1 from Richard Guenther 2011-12-05 15:17:08 UTC --- This is a valid warning. We transform (in forwprop) int suffix = pattern_length + 1; ... if (suffix < pattern_length) to if (0) which is true only when pattern_length + 1 does not overflow. This happens after jump-threading over while (i > start) suffix_table[--i] = --suffix; in case i is <= start, thus the "regression" is probably because of jump-threading improvements for 4.7.
[Bug libstdc++/51135] [4.7 Regression] SIGSEGV during exception cleanup on win32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51135 Kai Tietz changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2011-12-05 Ever Confirmed|0 |1 --- Comment #3 from Kai Tietz 2011-12-05 15:17:34 UTC --- Well, this seems to be caused by member exceptionDestructor in __cxa_exception structure. As a destructor has also __thiscall convention, we need to specify it here for 32-bit Windows target. I am just about to test a patch for it.
[Bug tree-optimization/51245] [4.7 Regression] ICE in vn_reference_insert_pieces, at tree-ssa-sccvn.c:1983
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51245 Richard Guenther changed: What|Removed |Added AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | --- Comment #2 from Richard Guenther 2011-12-05 15:20:19 UTC --- Mine.
[Bug lto/48094] ld: warning: section has unexpectedly large size errors in objc/obj-c++ lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48094 --- Comment #9 from Jack Howarth 2011-12-05 15:25:28 UTC --- Created attachment 25992 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25992 verbose assembly for objc.dg/torture/strings/string1.m -O2 -flto -flto-partition=none -fnext-runtime
[Bug lto/48094] ld: warning: section has unexpectedly large size errors in objc/obj-c++ lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48094 --- Comment #10 from Jack Howarth 2011-12-05 15:30:42 UTC --- Attached verbose assembly from x86_64-apple-darwin11 using gcc trunk at r181974 with http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00241.html generated using... /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/xgcc -B/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/ /sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20111202/gcc/testsuite/objc.dg/torture/strings/string1.m -O2 -flto -flto-partition=none -fnext-runtime -mno-constant-cfstrings -Wno-deprecated-declarations -B/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/i386/libobjc/.libs -L/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/i386/libobjc/.libs /sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20111202/gcc/testsuite/objc.dg/torture/strings/../../../objc-obj-c++-shared/nsconstantstring-class-impl.m -lobjc -lm -fverbose-asm --save-temps -m32 -o ./string1.exe [Leaving LTRANS /var/tmp//ccygm7lI.args] ld: warning: section __OBJC/__image_info has unexpectedly large size 16 in /var/tmp//ccRjujTE.lto.o
[Bug c/51339] [4.6/4.7 Regression] ICE: in convert_move, at expr.c:326 with -fopenmp and parallel for
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51339 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2011-12-05 CC||jakub at gcc dot gnu.org Component|middle-end |c Ever Confirmed|0 |1 --- Comment #1 from Jakub Jelinek 2011-12-05 15:44:15 UTC --- Reduced testcase: char g[] = "g"; void foo (void) { #pragma omp parallel sections firstprivate (g) lastprivate (g) { #pragma omp section g[0] = 'h'; } } With char g[2] this works. Seems a C FE bug.
[Bug c++/51404] [c++0x] [4.7 Regression] ICE with invalid use of auto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51404 --- Comment #2 from paolo at gcc dot gnu.org 2011-12-05 15:46:34 UTC --- Author: paolo Date: Mon Dec 5 15:46:30 2011 New Revision: 182011 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182011 Log: /cp 2011-12-05 Paolo Carlini PR c++/51404 * typeck2.c (build_functional_cast): Early return error_mark_node for invalid uses of 'auto'. * parser.c (cp_parser_direct_declarator): When cp_parser_constant_expression returns error do not produce further diagnostic for the bound. /testsuite 2011-12-05 Paolo Carlini PR c++/51404 * g++.dg/cpp0x/auto28.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/auto28.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/cp/typeck2.c trunk/gcc/testsuite/ChangeLog
[Bug c++/51404] [c++0x] [4.7 Regression] ICE with invalid use of auto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51404 Paolo Carlini changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Paolo Carlini 2011-12-05 15:48:38 UTC --- Fixed.
[Bug tree-optimization/51275] CLOBBERS can be optimized if they are right before the return (or RESX)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51275 --- Comment #6 from Richard Guenther 2011-12-05 15:49:44 UTC --- Another approach is to not create CLOBBERs in the outermost scope at all but re-create those during inlining when building the containing BLOCK. That would probably avoid CLOBBERs for most C code that is not inlined.
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183 Paolo Carlini changed: What|Removed |Added CC||paolo.carlini at oracle dot ||com --- Comment #5 from Paolo Carlini 2011-12-05 15:54:05 UTC --- Chris, delegating constructors are just in, a patch would be welcome...
[Bug tree-optimization/51275] CLOBBERS can be optimized if they are right before the return (or RESX)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51275 --- Comment #7 from Michael Matz 2011-12-05 16:02:10 UTC --- As said, this would still require ugly fiddling with exception edges. Getting rid of some of the clobbers a posteriori seems cleaner.
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183 --- Comment #6 from Jonathan Wakely 2011-12-05 16:06:57 UTC --- Nice! it should be pretty simple: template pair(piecewise_construct_t, tuple<_Args1...> __first, tuple<_Args2...> __second) : pair(std::move(__first), std::move(__second), typename _Build_index_tuple::__type(), typename _Build_index_tuple::__type()) { } template explicit pair(tuple<_Args1...> __tuple1, tuple<_Args2> __tuple2, _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) : first(std::forward<_Args1>(get<_Indexes1>(__tuple1))...), second(std::forward<_Args2>(get<_Indexes2>(__tuple2))...) { }
[Bug c++/51424] New: [C++11] G++ should diagnose self-delegating constructors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51424 Bug #: 51424 Summary: [C++11] G++ should diagnose self-delegating constructors Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org CC: pedro.lama...@gmail.com, ville.voutilai...@gmail.com This modification of g++.dg/template/meminit1.C should get a diagnostic in C++11 mode as well: template struct S { S() : S() {} // { dg-message "delegating constructors" "" { target c++98 } } // { dg-error "delegates to itself" "" { target c++11 } } }; S s; because 12.6.2 says, "If a constructor delegates to itself directly or indirectly, the program is ill-formed; no diagnostic is required." The diagnostic is not required, but it is easy to give, so we should do so.
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183 --- Comment #7 from Jonathan Wakely 2011-12-05 16:09:18 UTC --- (In reply to comment #6) > template
[Bug target/51408] Miscompilation in arm.md:*minmax_arithsi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51408 --- Comment #1 from Kazu Hirata 2011-12-05 16:11:43 UTC --- Author: kazu Date: Mon Dec 5 16:11:35 2011 New Revision: 182014 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182014 Log: gcc/ PR target/51408 * config/arm/arm.md (*minmax_arithsi): Always require the else clause in the MINUS case. gcc/testsuite/ PR target/51408 * gcc.dg/pr51408.c: New. Added: trunk/gcc/testsuite/gcc.dg/pr51408.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm.md trunk/gcc/testsuite/ChangeLog
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183 --- Comment #8 from Paolo Carlini 2011-12-05 16:12:35 UTC --- I suspected that. Thus, Jon, if you like, just test and commit! ;)
[Bug target/51408] Miscompilation in arm.md:*minmax_arithsi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51408 Kazu Hirata changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #2 from Kazu Hirata 2011-12-05 16:15:18 UTC --- Fixed on trunk.
[Bug inline-asm/51423] Questions regarding Clobber List for inline ARM/NEON assembly
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51423 Richard Earnshaw changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #1 from Richard Earnshaw 2011-12-05 16:22:14 UTC --- Bugzilla is for reporting bugs, please use gcc-h...@gcc.gnu.org for questions. If you use specific registers in an ASM statement you have to declare all of them, even if the register is call-clobbered. The compiler does not try to parse the contents of the asm statement (it does simple substitution of the declared operands) so if you don't specify which registers you are modifying the compiler might try to use them for other purposes. In GCC-4.5 and earlier you have to specify the smallest addressable register unit in any clobber list (so s0...s31 and d16...d31)[1]. GCC-4.6 and later are smarter: the compiler now knows that q0 is equivalent to d0+d1 is equivalent to s0+s1+s2+s3 etc. [1] in these older compilers saying "q0" or "d0" will be interpreted as "s0" and not clobber what you think it should.
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183 --- Comment #10 from Chris Jefferson 2011-12-05 16:25:13 UTC --- Oh, and one other tiny detail, I've about given up trying to understand corner cases in the name look-up rules in C++, so I'd probably std:: qualify those 'get's, just to be on the safe side. Although I think this is one case where things are OK.
[Bug c/51339] [4.6/4.7 Regression] ICE: in convert_move, at expr.c:326 with -fopenmp and parallel for
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51339 Jakub Jelinek changed: What|Removed |Added AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #2 from Jakub Jelinek 2011-12-05 16:25:33 UTC --- Created attachment 25993 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25993 gcc47-pr51339.patch Untested fix.
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183 --- Comment #9 from Chris Jefferson 2011-12-05 16:19:40 UTC --- The only difference in the version I wrote was that I passed the arguments into the explicit constructor as non-const references, rather than by value with std::move, which should be more efficent for types without a move constructor. However, there really isn't very much choice in how you implement this. Jonathan, if you are already off writing tests and ready to commit, I'm happy to let you finish, else I could write some tests and submit a patch.
[Bug fortran/51338] [4.6/4.7 Regression] seg fault in gfc_dep_compare_expr with -O2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51338 Jakub Jelinek changed: What|Removed |Added Priority|P3 |P4 CC||jakub at gcc dot gnu.org
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183 --- Comment #11 from Jonathan Wakely 2011-12-05 16:27:07 UTC --- I was assuming that since the public piecewise constructor takes them by value the extra move would be elided ... that might not be true though. I haven't written any tests for it and have a few other patches I need to chase for approval, so if you have time to work on this please be my guest, thanks!
[Bug c++/39480] generated memcpy causes trouble in assignment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39480 lu_zero at gentoo dot org changed: What|Removed |Added CC||lu_zero at gentoo dot org --- Comment #31 from lu_zero at gentoo dot org 2011-12-05 16:56:43 UTC --- Seems that a related problem is still present in bug 32667
[Bug middle-end/32667] builtin operator= generates memcpy with overlapping memory regions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667 lu_zero at gentoo dot org changed: What|Removed |Added CC||lu_zero at gentoo dot org --- Comment #6 from lu_zero at gentoo dot org 2011-12-05 16:59:07 UTC --- Doesn't seem. Here a reduced testcase courtesy of Mans Rullgard struct foo { int x[64]; }; void __attribute__((noinline)) foo(struct foo *a, struct foo *b) { *a = *b; } int main(void) { struct foo a = { 0 }; foo(&a, &a); return 0; }
[Bug other/50775] Register allocator sets up frame and frame pointer with low register pressure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50775 --- Comment #7 from Vladimir Makarov 2011-12-05 17:02:59 UTC --- Author: vmakarov Date: Mon Dec 5 17:02:54 2011 New Revision: 182015 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182015 Log: 2011-12-05 Vladimir Makarov PR other/50775 * ira-int.h (struct ira_object): Remove add_data. (OBJECT_ADD_DATA): Remove. * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA initialization. * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to allocno_hard_regs_t, allocno_hard_regs. (object_hard_regs_node_t, object_hard_regs_node): Rename to allocno_hard_regs_node_t and allocno_hard_regs_node. (struct allocno_color_data): Add new member last_process. Move profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start from object_color_data. (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove. (curr_allocno_process): New static variable. (object_hard_regs_eq, object_hard_regs_htab): Rename to allocno_hard_regs_eq and allocno_hard_regs_htab. (init_object_hard_regs, finish_object_hard_regs): Rename to init_allocno_hard_regs and finish_allocno_hard_regs. (object_hard_regs_compare, object_hard_regs_node_t): Rename to allocno_hard_regs_compare and allocno_hard_regs_node_t. (create_new_object_hard_regs_node): Rename to create_new_allocno_hard_regs_node. (add_new_object_hard_regs_node_to_forest): Rename to add_new_allocno_hard_regs_node_to_forest. (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover. (setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent. (remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes. (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num): Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num. (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to allocno_hard_regs_nodes and allocno_hard_regs_subnode_t. (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to allocno_hard_regs_subnode and allocno_hard_regs_subnodes. (object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index. (setup_object_hard_regs_subnode_index): Rename to setup_allocno_hard_regs_subnode_index. (get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num. (form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest. (finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest (finish_object_hard_regs_nodes_forest): Rename to finish_allocno_hard_regs_nodes_forest. (setup_left_conflict_sizes_p): Use allocno data instead of object ones. Process conflict allocnos once. (update_left_conflict_sizes_p): Use allocno data instead of object ones. Change prototype signature. (empty_profitable_hard_regs): Use allocno data instead of object ones. (setup_profitable_hard_regs): Ditto. (get_conflict_profitable_regs): Rename to get_conflict_and_start_profitable_regs. Use allocno data for profitable regs calculation. (check_hard_reg_p): Change prototype signature. Check profitable regs for allocno not the objects. (assign_hard_reg): Process conflict allocnos only once for updating conflict costs. (setup_allocno_available_regs_num): Use allocno data instead of object ones. Modify debug output. (color_pass): Remove initialization and finalization of object color data. Modified: trunk/gcc/ChangeLog trunk/gcc/ira-build.c trunk/gcc/ira-color.c trunk/gcc/ira-int.h
[Bug debug/51410] [4.5/4.6/4.7 Regression] duplicate variable DIE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410 Jakub Jelinek changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #2 from Jakub Jelinek 2011-12-05 17:13:10 UTC --- Created attachment 25994 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25994 gcc47-pr51410.patch Untested fix.
[Bug lto/48094] ld: warning: section has unexpectedly large size errors in objc/obj-c++ lto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48094 Iain Sandoe changed: What|Removed |Added Status|WAITING |NEW --- Comment #11 from Iain Sandoe 2011-12-05 17:23:25 UTC --- OK - I can reproduce this on Darwin9. ... as things stand I don't think this is the same bug it was originally -- that is solved (the trivial case originally cited does not give rise to two instances of the ImageInfo var.). === The problem is this; In the string case there are now two input object files - and of the those files contains a local L_OBJC_ImageInfo variable. Usually ld would get those variables from two input object files and knows to coalesce them (even tho the section is not marked coalesce) ... ... when LTO is engaged we now produce (I think, correctly, from an LTO perspective) two local vars in the section - and the linker doesn't get to see them and do the merge. So, somehow, we need to make these variables merge-able by LTO; such that there is only one instance in the LTO output to ld. I think that later versions of the vendor's tools make some of the ObjC sections merge-able - so that's a possibility - - otherwise - Honza any suggestions?
[Bug target/51381] Internal compiler error for arm target
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51381 Ramana Radhakrishnan changed: What|Removed |Added CC||ramana at gcc dot gnu.org --- Comment #11 from Ramana Radhakrishnan 2011-12-05 17:23:36 UTC --- I don't think this is ICE on valid code. The compiler at the minute doesn't generate unified syntax for VFP instructions - therefore expecting the instructions of that form to work correctly is wrong. I think the correct way of writing this is void round_int(void) { __asm__ __volatile__("fconstd d1,%G0" : : "Dv"(0.5f) : "d1"); } And then it would work. We really do need to transition to unified syntax for VFP instructions. cheers Ramana
[Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 Eric Botcazou changed: What|Removed |Added CC||ebotcazou at gcc dot ||gnu.org --- Comment #47 from Eric Botcazou 2011-12-05 17:29:21 UTC --- > Fixed (fingers crossing). That's great, thanks (you can count mine as well :-).
[Bug rtl-optimization/44194] struct returned by value generates useless stores
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44194 Eric Botcazou changed: What|Removed |Added Status|REOPENED|ASSIGNED AssignedTo|unassigned at gcc dot |ebotcazou at gcc dot |gnu.org |gnu.org --- Comment #38 from Eric Botcazou 2011-12-05 17:48:23 UTC --- Taking it over.
[Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 --- Comment #48 from Dominique d'Humieres 2011-12-05 17:58:13 UTC --- > Fixed (fingers crossing). So far, so good! The runtime for induct compiled with -fprotect-parens -Ofast went down from 14.11s to 13.14s, and compiled with -Ofast from 14.62s to 13.32s (still ~1% slower). The timings for the other tests in the polyhedron suite were basically unchanged (i.e., within the noise margin). Thanks for the patch.
[Bug testsuite/51128] [4.7 Regression] New LTO failures
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51128 --- Comment #2 from uros at gcc dot gnu.org 2011-12-05 17:59:44 UTC --- Author: uros Date: Mon Dec 5 17:59:32 2011 New Revision: 182016 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182016 Log: PR testsuite/51128 * gcc.dg/torture/pr23821.c: Skip if -fno-fat-lto-objects was passed. * gcc.dg/torture/pr39074.c: Ditto. * gcc.dg/torture/pr39074-2.c: Ditto. * gcc.dg/torture/pr42898.c: Ditto. * gcc.dg/torture/pr42898-2.c: Ditto. * gcc.dg/torture/pr45704.c: Ditto. * gcc.dg/torture/pr50472.c: Ditto. * gcc.dg/torture/pta-callused-1.c: Ditto. * gcc.dg/torture/pta-ptrarith-1.c: Ditto. * gcc.dg/torture/pta-ptrarith-2.c: Ditto. * gcc.dg/torture/pta-ptrarith-3.c: Ditto. * gcc.dg/torture/pta-escape-1.c: Ditto. * gcc.dg/torture/ipa-pta-1.c: Ditto. * gcc.dg/torture/ssa-pta-fn-1.c: Ditto. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c trunk/gcc/testsuite/gcc.dg/torture/pr23821.c trunk/gcc/testsuite/gcc.dg/torture/pr39074-2.c trunk/gcc/testsuite/gcc.dg/torture/pr39074.c trunk/gcc/testsuite/gcc.dg/torture/pr42898-2.c trunk/gcc/testsuite/gcc.dg/torture/pr42898.c trunk/gcc/testsuite/gcc.dg/torture/pr45704.c trunk/gcc/testsuite/gcc.dg/torture/pr50472.c trunk/gcc/testsuite/gcc.dg/torture/pta-callused-1.c trunk/gcc/testsuite/gcc.dg/torture/pta-escape-1.c trunk/gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c trunk/gcc/testsuite/gcc.dg/torture/pta-ptrarith-2.c trunk/gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c trunk/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c