[Bug c++/34066] New: typeid breaks aliasing rules, according to g++

2007-11-11 Thread guillaume dot melquiond at ens-lyon dot fr
ing rules, according to g++ Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr

[Bug tree-optimization/3713] Pointers to functions or member functions are not folded or inlined

2007-09-02 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #14 from guillaume dot melquiond at ens-lyon dot fr 2007-09-02 11:56 --- Created an attachment (id=14150) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14150&action=view) Implements folding of "(&function & 1)" I encountered the same issue

[Bug target/33103] New: Redundant multiplications for memset

2007-08-17 Thread guillaume dot melquiond at ens-lyon dot fr
: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr GCC target triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33103

[Bug c/32433] New: Code for __builtin_ffs does not benefit from compiler optimizations

2007-06-20 Thread guillaume dot melquiond at ens-lyon dot fr
from compiler optimizations Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond a

[Bug rtl-optimization/31549] New: Documentation for -frtl-abstract-sequences is in the wrong place

2007-04-12 Thread guillaume dot melquiond at ens-lyon dot fr
Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31549

[Bug c/31530] Incorrect folding of multiplication and sign change when followed by an addition

2007-04-11 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #1 from guillaume dot melquiond at ens-lyon dot fr 2007-04-11 09:43 --- As a follow-up, it seems the wrong code is generated during the "combine" pass: the RTL after the "life1" pass is still correct: "(-b) * a + c" (whether -frounding-math is

[Bug c/31530] New: Incorrect folding of multiplication and sign change when followed by an addition

2007-04-10 Thread guillaume dot melquiond at ens-lyon dot fr
Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr GCC target triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31530

[Bug rtl-optimization/323] optimized code gives strange floating point results

2007-04-03 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #95 from guillaume dot melquiond at ens-lyon dot fr 2007-04-03 17:51 --- > I think that Uros' patch to add a -mpc switch for precision control would > "fix" this. > The real fix would be to automatically insert fldcw instructions before > float/

[Bug c++/31462] New: Unnamed namespace and exported symbols

2007-04-03 Thread guillaume dot melquiond at ens-lyon dot fr
mbols Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr http://gcc.gn

[Bug c++/31267] #'typename_type' not supported by dump_decl#

2007-03-20 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #1 from guillaume dot melquiond at ens-lyon dot fr 2007-03-20 11:22 --- I just encountered another instance of a missing typename diagnostic. This time with a different message, so I add it here for completeness: a.cpp:5: error: dependent-name ‘T::#‘typename_type’ not

[Bug c++/31267] New: #'typename_type' not supported by dump_decl#

2007-03-19 Thread guillaume dot melquiond at ens-lyon dot fr
ot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31267

[Bug middle-end/30364] [4.1/4.2/4.3 Regression] Wrong variable ranges due to constant folding

2007-01-04 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #4 from guillaume dot melquiond at ens-lyon dot fr 2007-01-04 11:25 --- Just for the sake of completeness. Wrong code is also generated when addition and multiplication are mixed, because of distributivity: int f(int a) { if (a > 0x7FF0) return 0; int b = (a -

[Bug middle-end/30364] [4.1/4.2/4.3 Regression] Wrong variable ranges due to constant folding

2007-01-04 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #1 from guillaume dot melquiond at ens-lyon dot fr 2007-01-04 10:15 --- Is it really a middle-end issue? It could also be seen as a front-end issue, as it does produce "a + b - 40", doesn't it? If the front-end had given "(a - 20) + (b - 20)" to

[Bug c/30364] New: Wrong variable ranges due to constant folding

2007-01-04 Thread guillaume dot melquiond at ens-lyon dot fr
signedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30364

[Bug middle-end/21032] With -frounding-math, incorrectly reorders unary minus

2006-11-13 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #15 from guillaume dot melquiond at ens-lyon dot fr 2006-11-13 09:41 --- Actually, not only is it wrong-code, but this is also a regression (see PR29538). Programs using interval arithmetic that were working fine when compiled with GCC 3.3 are broken now. -- http

[Bug middle-end/21032] With -frounding-math, incorrectly reorders unary minus

2006-11-13 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #13 from guillaume dot melquiond at ens-lyon dot fr 2006-11-13 08:45 --- Unless I'm mistaken, the patch has only been applied to the trunk and not to the branches, in particular not to the current release series. Shouldn't this bug-report, either be reopened un

[Bug c/29538] New: Incorrect interpretation of floating-point unary minus

2006-10-21 Thread guillaume dot melquiond at ens-lyon dot fr
unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29538

[Bug target/29042] New: Useless floating-point stores and loads on x86

2006-09-12 Thread guillaume dot melquiond at ens-lyon dot fr
Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29042

[Bug middle-end/28831] [4.0/4.1/4.2 Regression] Aggregate copy not elided when using a return value as a pass-by-value parameter

2006-08-25 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #3 from guillaume dot melquiond at ens-lyon dot fr 2006-08-25 08:34 --- > Which looks ok if we are passing via value but since we need to pass by > reference, the middle-end thinks we need a new stack space for it because it > does not know that D.1992 is not used

[Bug c/28831] New: Aggregate copy not elided when using a return value as a pass-by-value parameter

2006-08-23 Thread guillaume dot melquiond at ens-lyon dot fr
pass-by-value parameter Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon

[Bug middle-end/27116] [4.2 Regression] Incorrect integer division (wrong sign).

2006-06-07 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #16 from guillaume dot melquiond at ens-lyon dot fr 2006-06-08 06:35 --- Sorry if I'm misunderstanding your patch (I didn't try it), but it seems to me that GCC will still generate wrong code if the testcase is compiled with -fwrapv -fno-trapv. -- http://g

[Bug c++/27336] "this" pointer is not assumed to be not null

2006-04-28 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #2 from guillaume dot melquiond at ens-lyon dot fr 2006-04-28 09:03 --- I tried setting the nonnull attribute, it indeed allowed the optimization. In particular, codes containing dynamic casts are now straight lines. This is a nice improvement. Unfortunately GCC was not

[Bug c++/27336] New: "this" pointer is not assumed to be not null

2006-04-27 Thread guillaume dot melquiond at ens-lyon dot fr
is; } -- Summary: "this" pointer is not assumed to be not null Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org

[Bug target/27055] Structures are copied byte by byte into function arguments

2006-04-16 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #5 from guillaume dot melquiond at ens-lyon dot fr 2006-04-16 18:15 --- I have tried to look at why it fails. Here are my observations. The function gcc/expr.c:emit_block_move tries to expand a movmem pattern. The backend refuses, since a call to memcpy would be a lot more

[Bug c/27116] [4.2 Regression] Incorrect integer division (wrong sign).

2006-04-11 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #9 from guillaume dot melquiond at ens-lyon dot fr 2006-04-12 05:28 --- > This is undefined only if b is known to be negative otherwise it is defined. What is undefined? The value of "b" does not matter here. As soon as "a" is INT_MAX, the

[Bug c/27116] [4.2 Regression] Incorrect integer division (wrong sign).

2006-04-11 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #7 from guillaume dot melquiond at ens-lyon dot fr 2006-04-11 15:55 --- > I disagree. Could you give an explicit example? Sorry, my mistake, I should not have suggested this testcase: this optimization is indeed fine (yet GCC 4.1 does not apply it). The following testc

[Bug c/27055] Structures are copied byte by byte into function arguments

2006-04-06 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #3 from guillaume dot melquiond at ens-lyon dot fr 2006-04-06 13:05 --- > for -march=i{345}86 I get > for -march=i686,pentium2,... I get Thanks to your tests, I noticed that the change of behavior between GCC 3.4 versions was actually caused by the addition of --wit

[Bug c/27055] New: Structures are copied byte by byte into function arguments

2006-04-06 Thread guillaume dot melquiond at ens-lyon dot fr
AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr GCC target triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27055

[Bug c++/23372] [4.0/4.1/4.2 Regression] Temporary aggregate copy not elided when passing parameters by value

2006-04-06 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #36 from guillaume dot melquiond at ens-lyon dot fr 2006-04-06 10:59 --- The generated code is getting both better and worse. I just tested with GCC 4.1, and there is now a byte-by-byte (!) copy instead of memcpy. So not only does GCC use superfluous copies, but it

[Bug target/26778] GCC4 moves the result of a conditional block through inadequate registers

2006-04-05 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #3 from guillaume dot melquiond at ens-lyon dot fr 2006-04-05 08:59 --- Since the runtime slowdown between the binaries produced by GCC3 and GCC4 was not negligible, I did search a bit more for workarounds. It was quite simple in fact: passing -mno-sse produced assembly

[Bug target/26778] GCC4 moves the result of a conditional block through inadequate registers

2006-03-21 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #2 from guillaume dot melquiond at ens-lyon dot fr 2006-03-21 15:27 --- > But using the *ps variants on an SSE1 target is ok - the xmm > registers are just used as temporary storage. I can't really think of situations where it makes sense. If this a temporary

[Bug middle-end/26778] New: GCC4 moves the result of a conditional block through inadequate registers

2006-03-21 Thread guillaume dot melquiond at ens-lyon dot fr
middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr GCC host triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26778

[Bug c++/17166] Improve diagnostic for empty overload set listing the rejected overloads

2005-11-25 Thread guillaume dot melquiond at ens-lyon dot fr
--- Comment #11 from guillaume dot melquiond at ens-lyon dot fr 2005-11-25 08:31 --- Your testcases are too minimal. The issue lies in the diagnostic, when there is a compilation error involving an anonymous enumeration. In the original bug-report, GCC was trying to delete a file

[Bug c++/24560] New: "insufficient contextual information to determine type" is not a helpful error message

2005-10-27 Thread guillaume dot melquiond at ens-lyon dot fr
Product: gcc Version: 4.0.2 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24560

[Bug c++/24052] &#`label_decl' not supported by dump_expr#

2005-09-25 Thread guillaume dot melquiond at ens-lyon dot fr
--- Additional Comments From guillaume dot melquiond at ens-lyon dot fr 2005-09-25 08:49 --- Created an attachment (id=9803) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9803&action=view) Trivial fix The error message is a bit better now: a.cpp:3: error: no match for &#

[Bug c++/24052] New: &#`label_decl' not supported by dump_expr#

2005-09-25 Thread guillaume dot melquiond at ens-lyon dot fr
Version: 4.1.0 Status: UNCONFIRMED Severity: minor Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24052

[Bug c/24020] Excessive (x20) stack usage for 4.0 with -O3

2005-09-22 Thread guillaume dot melquiond at ens-lyon dot fr
--- Additional Comments From guillaume dot melquiond at ens-lyon dot fr 2005-09-22 20:16 --- Created an attachment (id=9793) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9793&action=view) Testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24020

[Bug c/24020] New: Excessive (x20) stack usage for 4.0 with -O3

2005-09-22 Thread guillaume dot melquiond at ens-lyon dot fr
ssive (x20) stack usage for 4.0 with -O3 Product: gcc Version: 4.0.2 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at en

[Bug libstdc++/23956] Class __mt_alloc overexerts __policy_type::_S_get_pool

2005-09-19 Thread guillaume dot melquiond at ens-lyon dot fr
--- Additional Comments From guillaume dot melquiond at ens-lyon dot fr 2005-09-20 05:07 --- Created an attachment (id=9779) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9779&action=view) Remove gratuitous calls to _S_get_pool in __mt_alloc Since I didn't find an

[Bug libstdc++/23956] Class __mt_alloc overexerts __policy_type::_S_get_pool

2005-09-18 Thread guillaume dot melquiond at ens-lyon dot fr
--- Additional Comments From guillaume dot melquiond at ens-lyon dot fr 2005-09-18 21:54 --- Some additional information. Looking through the CVS log, it appears the __mt_alloc constructors were empty in GCC 3.4, and they were filled when fixing PR 17780. The patch was huge and the log

[Bug libstdc++/23956] New: Class __mt_alloc overexerts __policy_type::_S_get_pool

2005-09-18 Thread guillaume dot melquiond at ens-lyon dot fr
Version: 4.0.2 Status: UNCONFIRMED Severity: normal Priority: P2 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr CC: gcc-bugs at gcc dot gnu dot

[Bug c/23869] New: Missed optimization with integer booleans when compiling for pentium and higher

2005-09-13 Thread guillaume dot melquiond at ens-lyon dot fr
mponent: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: i686-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23869

[Bug c/23756] New: Missed optimization for PIC code with internal visibility

2005-09-06 Thread guillaume dot melquiond at ens-lyon dot fr
ent: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23756

[Bug c++/23372] [4.0/4.1 Regression] Temporary aggregate copy not elided when passing parameters by value

2005-08-26 Thread guillaume dot melquiond at ens-lyon dot fr
--- Additional Comments From guillaume dot melquiond at ens-lyon dot fr 2005-08-26 17:38 --- > all of 3.4 and 4.1 produce exactly two temporaries. Yet I said that g++ 3.4 did not produce any temporary, and I still think so. No temporaries, only g's stack frame. See the f

[Bug c++/23372] [4.0/4.1 Regression] Temporary aggregate copy not elided when passing parameters by value

2005-08-13 Thread guillaume dot melquiond at ens-lyon dot fr
--- Additional Comments From guillaume dot melquiond at ens-lyon dot fr 2005-08-14 06:45 --- Looking at it again, I found an even worse regression with respect to g++ 3.4. Consider this testcase: struct A { int a[1000]; } A f(); void g(A); void h() { g(f()); } Ideally, h will allocate

[Bug c++/23372] New: Temporary aggregate copy not elided when passing parameters by value

2005-08-13 Thread guillaume dot melquiond at ens-lyon dot fr
Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: guillaume dot melquiond at ens-lyon dot fr CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23372

[Bug c++/17166] g++ 3.4.1 and 3.5 forget a template function definition

2004-08-24 Thread guillaume dot melquiond at ens-lyon dot fr
--- Additional Comments From guillaume dot melquiond at ens-lyon dot fr 2004-08-24 12:49 --- Bugzilla complains each time I'm trying to attach the test-case. So here is an URL. http://perso.ens-lyon.fr/guillaume.melquiond/divers/bug.ii.bz2 Sorry for the inconvenience. --