[Bug c++/57000] [4.8/4.9 Regression] ICE with -Ofast and -frounding-math

2013-04-19 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.1

Summary|4.8 Regression?, ICE with   |[4.8/4.9 Regression] ICE

   |-Ofast and -frounding-math  |with -Ofast and

   ||-frounding-math


[Bug c++/57000] [4.8/4.9 Regression] ICE with -Ofast and -frounding-math

2013-04-19 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000



--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2013-04-19 
07:29:35 UTC ---

Created attachment 29901

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29901

pr57000.ii



Somewhat reduced testcase (but sitll quite large).


[Bug testsuite/53222] dejagnu trims leading whitespace

2013-04-19 Thread skannan at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53222



--- Comment #1 from Shakthi Kannan skannan at redhat dot com 2013-04-19 
07:29:43 UTC ---

Created attachment 29902

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29902

namespace error after applying patch



Can you please provide the version of GCC that you used?



I built GCC-4.8.0 (x86_64) after applying the patch and I get the attached

errors.


[Bug c++/57000] [4.8/4.9 Regression] ICE with -Ofast and -frounding-math

2013-04-19 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000



--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2013-04-19 
07:44:54 UTC ---

reassoc clearly doesn't adjust the virtual ops, not sure if just on the pow*

handling, or everywhere, it expects the math builtin calls to have no vops.

As the vops are missing just with -ffast-math, guess this is just about the

flag_unsafe_math_operations guarded code, i.e. pow and powi handling.



So, either we should give up also if the builtin pow/powi etc. has vops, or

request updating of vops if we see any pow* with vops and modify it, or update

it ourselves.


[Bug testsuite/53222] dejagnu trims leading whitespace

2013-04-19 Thread manu at gcc dot gnu.org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53222

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

   Severity|normal  |trivial

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-19 
07:51:14 UTC ---
Did you run with -fdiagnostics-show-caret enabled? 

At the end, it was decided to disable it for the testsuite, so this report is
not very important anymore. It would be nice if DejaGNU didn't alter the
output, but right now, it doesn't affect us.

[Bug c++/57000] [4.8/4.9 Regression] ICE with -Ofast and -frounding-math

2013-04-19 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000



--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2013-04-19 
08:03:34 UTC ---

Shorter testcase:

/* PR tree-optimization/57000 */

/* { dg-do compile } */

/* { dg-options -Ofast -frounding-math } */



double baz (double foo, double bar)

{

  return foo * foo * foo * foo * bar * bar * bar * bar;

}


[Bug target/56975] [regression] dllimport broken on i686-pc-cygwin

2013-04-19 Thread ktietz at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56975



--- Comment #7 from Kai Tietz ktietz at gcc dot gnu.org 2013-04-19 08:18:13 
UTC ---

At what place it freezes?  Can you provide a testcase?  Are you sure it is

really related to the patch?  What makes you think that?



All in all, what I mean about those questions is that it isn't helpful to tell

such statements without even trying to narrow it down to its reason.


[Bug rtl-optimization/56999] [4.8 Regression] LRA caused miscompilation of xulrunner

2013-04-19 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56999



Marek Polacek mpolacek at gcc dot gnu.org changed:



   What|Removed |Added



 CC||mpolacek at gcc dot gnu.org



--- Comment #6 from Marek Polacek mpolacek at gcc dot gnu.org 2013-04-19 
08:19:16 UTC ---

Author: mpolacek

Date: Fri Apr 19 08:18:29 2013

New Revision: 198085



URL: http://gcc.gnu.org/viewcvs?rev=198085root=gccview=rev

Log:

Backport from mainline

2013-01-08  Steven Bosscher  ste...@gcc.gnu.org

Jakub Jelinek  ja...@redhat.com



PR tree-optimization/48189

* predict.c (predict_loops): If max is 0, don't call compare_tree_int.

If nitercst is 0, don't predict the exit edge.



* gcc.dg/pr48189.c: New test.





Added:

branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/pr48189.c

Modified:

branches/gcc-4_7-branch/gcc/ChangeLog

branches/gcc-4_7-branch/gcc/predict.c

branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


[Bug rtl-optimization/56999] [4.8 Regression] LRA caused miscompilation of xulrunner

2013-04-19 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56999



--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org 2013-04-19 
08:19:50 UTC ---

Damn, wrong PR, sorry.


[Bug tree-optimization/48189] [4.7 Regression] ICE: SIGFPE (division by zero) in in predict_loops () at predict.c:991 with --param max-predicted-iterations=0

2013-04-19 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48189



--- Comment #14 from Marek Polacek mpolacek at gcc dot gnu.org 2013-04-19 
08:20:11 UTC ---

Author: mpolacek

Date: Fri Apr 19 08:18:29 2013

New Revision: 198085



URL: http://gcc.gnu.org/viewcvs?rev=198085root=gccview=rev

Log:

Backport from mainline

2013-01-08  Steven Bosscher  ste...@gcc.gnu.org

Jakub Jelinek  ja...@redhat.com



PR tree-optimization/48189

* predict.c (predict_loops): If max is 0, don't call compare_tree_int.

If nitercst is 0, don't predict the exit edge.



* gcc.dg/pr48189.c: New test.





Added:

branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/pr48189.c

Modified:

branches/gcc-4_7-branch/gcc/ChangeLog

branches/gcc-4_7-branch/gcc/predict.c

branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


[Bug tree-optimization/48189] [4.7 Regression] ICE: SIGFPE (division by zero) in in predict_loops () at predict.c:991 with --param max-predicted-iterations=0

2013-04-19 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48189



Marek Polacek mpolacek at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #15 from Marek Polacek mpolacek at gcc dot gnu.org 2013-04-19 
08:20:34 UTC ---

Fixed.


[Bug middle-end/57003] gcc-4.8.0 breaks -O2 optimization with Wine(64) - links/info/bisect of commits included

2013-04-19 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57003



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |WAITING

   Last reconfirmed||2013-04-19

 Ever Confirmed|0   |1



--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org 2013-04-19 
08:26:30 UTC ---

To narrow down the problem more you can cherry-pick

d73df2920c77116fd88e03cd95dd352f16511a3f to after the commit that broke build

and continue bi-secting?


[Bug c++/56998] [4.8 Regression] ICE in value_dependent_expression_p, at cp/pt.c:19598

2013-04-19 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56998



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

  Known to work||4.7.3, 4.9.0

   Keywords||ice-on-valid-code

   Last reconfirmed||2013-04-19

 Ever Confirmed|0   |1

Summary|[4.8.0] ICE in  |[4.8 Regression] ICE in

   |value_dependent_expression_ |value_dependent_expression_

   |p, at cp/pt.c:19598 |p, at cp/pt.c:19598

   Target Milestone|--- |4.8.1

  Known to fail||4.8.0



--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2013-04-19 
08:29:54 UTC ---

Confirmed.


[Bug c++/57000] [4.8/4.9 Regression] ICE with -Ofast and -frounding-math

2013-04-19 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org

   |gnu.org |



--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org 2013-04-19 
08:30:19 UTC ---

Mine.


[Bug c++/56963] GCC 4.8.0 LTO issue: lto1: internal compiler error: in add_symbol_to_partition, at lto/lto-partition.c:284

2013-04-19 Thread vhaisman at gmail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56963

--- Comment #3 from Václav Zeman vhaisman at gmail dot com 2013-04-19 
08:54:59 UTC ---
I have broken the file on the Google Drive. Here is another copy of the same:
https://docs.google.com/file/d/0B-WkLJEfYmSEdTZvdFVRR0E0dEE/edit?usp=sharing

[Bug middle-end/56988] ipa-cp incorrectly propagates a field of an aggregate

2013-04-19 Thread jamborm at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56988



Martin Jambor jamborm at gcc dot gnu.org changed:



   What|Removed |Added



URL||http://gcc.gnu.org/ml/gcc-p

   ||atches/2013-04/msg01120.htm

   ||l



--- Comment #3 from Martin Jambor jamborm at gcc dot gnu.org 2013-04-19 
09:09:26 UTC ---

Richi was right.  The proper fix is to not ignore by_ref.

I have already posted a patch to the mailing list:



http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01120.html


[Bug target/56944] Better isfinite in some cases?

2013-04-19 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56944



Marc Glisse glisse at gcc dot gnu.org changed:



   What|Removed |Added



  Attachment #29900|0   |1

is obsolete||



--- Comment #4 from Marc Glisse glisse at gcc dot gnu.org 2013-04-19 09:53:42 
UTC ---

Created attachment 29903

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29903

(x  inf)  inf



Slightly improved version of the patch, but there are still issues. Attaching a

log of an IRC discussion, so I don't forget all the nice advice:



marcgHello. I added an optab for __builtin_finite and an expander for x86,

and it seems to work. To avoid hurting the vectorizer, I also did a vector

version, and a builtin and told ix86_builtin_vectorized_function about it, and

it works for float.

marcgFor double, finite takes a double and returns an int, so the

vectorizer tries to find a vector version that takes a V2DF and returns a V4SI,

whereas I added a version that returns V2DI.

richimake sure to also add constant folding

marcg(good point about constant folding, thanks)

marcgHow is the vectorization supposed to work in that case? Should the

vectorizer try V2DI as well?

richiit's not that easy. I think the target should provide a V2SI variant

instead. But of course the vectorizer will ask for V4SI here, so it won't work

either.

richithe vectorizer simply cannot handle this at the moment (multiple types

and calls, in vectorizer speak)

richiit would need to go through vectorizable_conversion-like code

marcgA V2SI variant would be ugly, mixing vector sizes hurts.

richispecial-casing the FP classification builtins

marcgOk, I guess I should avoid adding this special 'finite' implementation

then

richiyou can hande it in vectorizer pattern matching, vectorizing it as it

was before

marcgAh, indeed, I could have a look (though it is only papering over

something, and it is becoming complicated for such a small optimization).

Thanks for the explanations.

richiyes, it would be a hack

jakubmarcg: perhaps pattern recognition for that?

marcgI think pattern recognition in the vectorizer is the hack richi was

talking about? Or do you mean something else?

jakubmarcg: if you find the target has V{2,4}DF - V{2,4}DI finite builtin,

and code uses DF-SI, then rewrite the __builtin_finite call as

__builtin_finitedfdi casted to (int), and the vectorizer will handle the cast

richiof course you then need such a builtin

richialternatively you can teach this to call vectorization

richithat is, look for a vectorized call that preserves the number of

vector elements

richiand do the appropriate widening/shortening


[Bug web/55933] Missing attachment download link

2013-04-19 Thread sch...@linux-m68k.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55933



Andreas Schwab sch...@linux-m68k.org changed:



   What|Removed |Added



 Status|RESOLVED|REOPENED

   Last reconfirmed||2013-04-19

 Resolution|WORKSFORME  |

 Ever Confirmed|0   |1



--- Comment #3 from Andreas Schwab sch...@linux-m68k.org 2013-04-19 09:55:38 
UTC ---

There is no such link in the comment.


[Bug fortran/56872] [4.8/4.9 Regression] Incorrect SUM evaluation, involving implied-do loop, with -ffrontend-optimize

2013-04-19 Thread mikael at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56872



--- Comment #12 from Mikael Morin mikael at gcc dot gnu.org 2013-04-19 
10:03:55 UTC ---

Author: mikael

Date: Fri Apr 19 09:58:41 2013

New Revision: 198086



URL: http://gcc.gnu.org/viewcvs?rev=198086root=gccview=rev

Log:

2013-04-19  Thomas Koenig  tkoe...@gcc.gnu.org

Mikael Morin  mik...@gcc.gnu.org



PR fortran/56872

* frontend-passes.c (copy_walk_reduction_arg): Change argument type

to gfc_constructor.  If it has an iterator, wrap the copy of its

expression in an array constructor with that iterator.  Don't special

case function expressions.

(callback_reduction): Update caller.  Don't return early if there is

an iterator.



2013-04-19  Thomas Koenig  tkoe...@gcc.gnu.org

Mikael Morin  mik...@gcc.gnu.org



PR fortran/56872

* gfortran.dg/array_constructor_45.f90:  New test.

* gfortran.dg/array_constructor_46.f90:  New test.

* gfortran.dg/array_constructor_47.f90:  New test.

* gfortran.dg/array_constructor_40.f90:  Adjust number of

while loops.





Added:

trunk/gcc/testsuite/gfortran.dg/array_constructor_45.f90

trunk/gcc/testsuite/gfortran.dg/array_constructor_46.f90

trunk/gcc/testsuite/gfortran.dg/array_constructor_47.f90

Modified:

trunk/gcc/fortran/ChangeLog

trunk/gcc/fortran/frontend-passes.c

trunk/gcc/testsuite/ChangeLog

trunk/gcc/testsuite/gfortran.dg/array_constructor_40.f90


[Bug tree-optimization/57000] [4.8 Regression] ICE with -Ofast and -frounding-math

2013-04-19 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



  Component|c++ |tree-optimization

  Known to work||4.7.3, 4.9.0

Summary|[4.8/4.9 Regression] ICE|[4.8 Regression] ICE with

   |with -Ofast and |-Ofast and -frounding-math

   |-frounding-math |

  Known to fail||4.8.0



--- Comment #8 from Richard Biener rguenth at gcc dot gnu.org 2013-04-19 
10:16:09 UTC ---

Author: rguenth

Date: Fri Apr 19 10:15:15 2013

New Revision: 198087



URL: http://gcc.gnu.org/viewcvs?rev=198087root=gccview=rev

Log:

2013-04-19  Richard Biener  rguent...@suse.de



PR tree-optimization/57000

* tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.



* gcc.dg/tree-ssa/reassoc-27.c: New testcase.



Added:

trunk/gcc/testsuite/gcc.dg/tree-ssa/reassoc-27.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-ssa-reassoc.c


[Bug rtl-optimization/38026] Miscompilation for CRIS of gfortran.dg/char_result_5.f95 with -fno-gcse

2013-04-19 Thread hp at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38026



Hans-Peter Nilsson hp at gcc dot gnu.org changed:



   What|Removed |Added



 Status|WAITING |RESOLVED

 Resolution||WORKSFORME

   Target Milestone|--- |4.3.6



--- Comment #4 from Hans-Peter Nilsson hp at gcc dot gnu.org 2013-04-19 
10:18:32 UTC ---

(In reply to comment #3)

 (In reply to comment #2)

  Sure, it's fill_eager_delay_slots that moved the insn, but it's only acting 
  on

  a stray REG_DEAD note left over from cprop_hardreg.

 

 This is probably fixed by http://gcc.gnu.org/r164458



That might be so, but I can't verify that. :(



Unfortunately I forgot to note the exact svn revision at which the test failed,

and reverting the 174133 revision (backport to 4.3 documented in PR42775) from

revision 175148 and following the to-repeat description does not expose the

bug.



Hm, I see I mentioned 4.3.3 in this quite old report but as I can't repeat it

with a revision near ToT, I believe it's time to retire this PR and close it as

WORKSFORME rather than WONTFIX.


[Bug fortran/56981] Slow I/O: Unformatted 5x slower, large sys component; formatted slow as well

2013-04-19 Thread jb at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56981



Janne Blomqvist jb at gcc dot gnu.org changed:



   What|Removed |Added



URL||http://gcc.gnu.org/ml/gcc-p

   ||atches/2013-04/msg01127.htm

   ||l



--- Comment #7 from Janne Blomqvist jb at gcc dot gnu.org 2013-04-19 10:34:20 
UTC ---

Patch implementing the unbuffered really means buffered but flush after every

write idea: http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01127.html


[Bug c/57004] New: False warning: comparison is always true due to limited range of data type [-Wtype-limits]

2013-04-19 Thread slava.garbuzov at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57004



 Bug #: 57004

   Summary: False warning: comparison is always true due to

limited range of data type [-Wtype-limits]

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: slava.garbu...@gmail.com





Reproduced with cross linaro-gcc 4.6.3 and FSF 4.7.2 for ARM.

Cannot be reproduced with native GCC 4.6.3 on x86



$ cat test.c

int main() {

  char a = 'a';

  return (a = 0);

}

$

$ arm-none-linux-gnueabi-gcc test.c -Wextra

test.c: In function 'main':

test.c:3:3: warning: comparison is always true due to limited range of data

type [-Wtype-limits]

$


[Bug other/55793] Compile hog with -gdwarf-4 and -O2 (-fvar-tracking issue)

2013-04-19 Thread jan.sm...@alcatel-lucent.com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55793



--- Comment #3 from Jan Smets jan.sm...@alcatel-lucent.com 2013-04-19 
11:57:36 UTC ---

Can't confirm since the patch can not be applied to 4.6.

(Even though the branch is dead already..)


[Bug tree-optimization/56718] Early inlining prevents type based devirtualization

2013-04-19 Thread jamborm at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56718



Martin Jambor jamborm at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #2 from Martin Jambor jamborm at gcc dot gnu.org 2013-04-19 
12:04:45 UTC ---

Author: jamborm

Date: Fri Apr 19 12:00:27 2013

New Revision: 198088



URL: http://gcc.gnu.org/viewcvs?rev=198088root=gccview=rev

Log:

2013-04-19  Martin Jambor  mjam...@suse.cz



PR tree-optimization/56718

* ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...

* ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed

and made public.  Adjusted all callers.

(ipa_intraprocedural_devirtualization): New function.

* ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.

(ipa_intraprocedural_devirtualization): Likewise.

* Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.



testsuite/

* g++.dg/ipa/imm-devirt-1.C: New test.

* g++.dg/ipa/imm-devirt-2.C: Likewise.





Added:

trunk/gcc/testsuite/g++.dg/ipa/imm-devirt-1.C

trunk/gcc/testsuite/g++.dg/ipa/imm-devirt-2.C

Modified:

trunk/gcc/ChangeLog

trunk/gcc/Makefile.in

trunk/gcc/ipa-cp.c

trunk/gcc/ipa-prop.c

trunk/gcc/ipa-prop.h

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-ssa-pre.c


[Bug c/57004] False warning: comparison is always true due to limited range of data type [-Wtype-limits]

2013-04-19 Thread dtemirbulatov at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57004



Dinar Temirbulatov dtemirbulatov at gmail dot com changed:



   What|Removed |Added



 CC||dtemirbulatov at gmail dot

   ||com



--- Comment #1 from Dinar Temirbulatov dtemirbulatov at gmail dot com 
2013-04-19 12:04:52 UTC ---

reproduced this error on trunk with --with-interwork --with-mode=arm

--with-fpu=vfpv3 --with-cpu=cortex-a15 --with-tune=cortex-a15 configuration.


[Bug c/57004] False warning: comparison is always true due to limited range of data type [-Wtype-limits]

2013-04-19 Thread jtaylor.debian at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57004



Julian Taylor jtaylor.debian at gmail dot com changed:



   What|Removed |Added



 CC||jtaylor.debian at gmail dot

   ||com



--- Comment #2 from Julian Taylor jtaylor.debian at gmail dot com 2013-04-19 
12:41:28 UTC ---

you need to use -fsigned-char if your program expects signed chars on a machine

which defaults to unsigned chars (like ARM).


[Bug tree-optimization/56982] [4.8 Regression] Bad optimization with setjmp()

2013-04-19 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56982



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



  Known to work||4.9.0

Summary|[4.8/4.9 Regression] Bad|[4.8 Regression] Bad

   |optimization with setjmp()  |optimization with setjmp()



--- Comment #11 from Richard Biener rguenth at gcc dot gnu.org 2013-04-19 
13:40:05 UTC ---

Author: rguenth

Date: Fri Apr 19 13:39:16 2013

New Revision: 198096



URL: http://gcc.gnu.org/viewcvs?rev=198096root=gccview=rev

Log:

2013-04-19  Richard Biener  rguent...@suse.de



PR tree-optimization/56982

* builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf

function.

* gimplify.c (gimplify_call_expr): Notice special calls.

(gimplify_modify_expr): Likewise.

* tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like

abnormal control flow receivers.

(call_can_make_abnormal_goto): Handle cfun-calls_setjmp

in the same way as cfun-has_nonlocal_labels.

(gimple_purge_dead_abnormal_call_edges): Likewise.

(stmt_starts_bb_p): Make setjmp-like abnormal control flow

receivers start a basic-block.



* gcc.c-torture/execute/pr56982.c: New testcase.



Added:

trunk/gcc/testsuite/gcc.c-torture/execute/pr56982.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/builtins.def

trunk/gcc/gimplify.c

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-cfg.c


[Bug target/56944] Better isfinite in some cases?

2013-04-19 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56944



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 2013-04-19 
13:43:18 UTC ---

For the vectorization, vectorizable_call should handle DF - SI builtin

vectorization, see e.g. how on i?86/x86_64 BUILT_IN_IFLOOR is vectorized.


[Bug c++/57005] New: alias template's pseudo-destructor is rejected

2013-04-19 Thread omawarisan.bokudesu at live dot jp


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57005



 Bug #: 57005

   Summary: alias template's pseudo-destructor is rejected

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: omawarisan.bokud...@live.jp





g++ -std=c++11 does not allow the following pseudo-destructor call.



template class T

using type = T;



int main()

{

typeint().~typeint();

}





Using built-in specs.

COLLECT_GCC=g++

COLLECT_LTO_WRAPPER=/home/user/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper

Target: x86_64-unknown-linux-gnu

Configured with: ../gcc/configure --prefix=/home/user/gcc-trunk

--disable-bootstrap --disable-multilib --enable-languages=c,c++,fortran

--with-gmp=/home/user/gcc-trunk/src/build/backends

--with-mpfr=/home/user/gcc-trunk/src/build/backends

--with-mpc=/home/user/gcc-trunk/src/build/backends

Thread model: posix

gcc version 4.9.0 20130419 (experimental) (GCC)


[Bug target/56975] [regression] dllimport broken on i686-pc-cygwin

2013-04-19 Thread jojelino at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56975



--- Comment #8 from gee jojelino at gmail dot com 2013-04-19 14:26:15 UTC ---

Created attachment 29904

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29904

Patch for supporting cygwin32's SYSV_ABI proper - Fixed a hunk fail



(In reply to comment #7)

 At what place it freezes?  Can you provide a testcase?  Are you sure it is

 really related to the patch?  What makes you think that?

 

 All in all, what I mean about those questions is that it isn't helpful to tell

 such statements without even trying to narrow it down to its reason.



The attachment 29898 fixed the problem.

there is a hunk failure so I uploaded another attachment that workarounds the

failure.

Thanks!


[Bug target/56944] Better isfinite in some cases?

2013-04-19 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56944



--- Comment #6 from Marc Glisse glisse at gcc dot gnu.org 2013-04-19 15:11:58 
UTC ---

(In reply to comment #5)

 For the vectorization, vectorizable_call should handle DF - SI builtin

 vectorization, see e.g. how on i?86/x86_64 BUILT_IN_IFLOOR is vectorized.



I may try that. For cases where the result of __builtin_finite (really a bool)

is immediately used in a condition, that's going to be a waste compared to

pretending it returns a DI. However, detecting situations where we have a long

l and we use (int) l in an expression where we can remove the cast to int, and

making the necessary adjustments seems hard. Maybe restricting to the case

where the result is used once, as the first argument of a cond_expr where the

other arguments have a wider type would be doable...



Another thing worth trying would be to do this new __builtin_finite expansion

in the middle-end (same place as currently), and implement whatever is

necessary so that the back-end generates the right code from it. Even after the

patch for PR 54716, we are still not very good at turning integer logic

operations into float logic operations.


[Bug debug/57006] New: extend DWARF to indicate types coming from template parameters

2013-04-19 Thread tromey at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57006



 Bug #: 57006

   Summary: extend DWARF to indicate types coming from template

parameters

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: debug

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: tro...@gcc.gnu.org





Consider this source:



templatetypename T

struct Q

{

  T field1;

  int field2;

};



Qint q;





If I compile it I see DWARF like this for the fields:



 229: Abbrev Number: 3 (DW_TAG_member)

2a   DW_AT_name: (indirect string, offset: 0x0): field1

2e   DW_AT_decl_file   : 1

2f   DW_AT_decl_line   : 4

30   DW_AT_type: 0x49

34   DW_AT_data_member_location: 0

 235: Abbrev Number: 3 (DW_TAG_member)

36   DW_AT_name: (indirect string, offset: 0x7): field2

3a   DW_AT_decl_file   : 1

3b   DW_AT_decl_line   : 5

3c   DW_AT_type: 0x49

40   DW_AT_data_member_location: 4





That is, they have the same type.



It would be nice if there were a way to differentiate these two types.

This would make type pretty-printing in gdb give better output.

(It isn't important in a trivial case like this, but I think it is

more important in complicated real-world code.)



One idea I had was to have the DW_AT_type of field1 point to the

DW_TAG_template_type_param field.  This would be a small extension to

DWARF, not requiring any new tags or attributes.


[Bug c++/53822] Diagnostic: spell out type in ambiguous call

2013-04-19 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53822



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2013-04-19 
15:27:28 UTC ---

Makes sense to me and must be pretty easy to implement.


[Bug c/53924] unhelpful diagnostic in invalid declaration list

2013-04-19 Thread manu at gcc dot gnu.org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53924

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-04-19
 Ever Confirmed|0   |1

--- Comment #3 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-19 
16:15:18 UTC ---
I think this is confirmed, but there doesn't seem to be much activity in the C
FE anymore.

The C++ parser is still not as good as Clang:

test.c:2:18: error: expected initializer before ‘cdecl’
 tree klass, tree cdecl, class_array_type;
  ^

[Bug c++/54311] Info about default template arguments in instantiation backtrace

2013-04-19 Thread manu at gcc dot gnu.org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54311

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-04-19
 CC||manu at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-19 
16:21:54 UTC ---
That would be an improvement yes. This is what Clang++ gives:

test.cc:6:39: error: no type named 'type' in 'Aint'
  typename U = typename AT::type
   ~~~^~~~
test.cc:11:3: note: in instantiation of default argument for 'Bint' required
here
  Bint b;
  ^~

which seems to me even better than what you propose.

[Bug c++/54377] Consider default arguments in wrong number of template arguments diagnostic

2013-04-19 Thread manu at gcc dot gnu.org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54377

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-04-19
 CC||manu at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-19 
16:32:56 UTC ---
Or say:

test.cpp: In function 'int main()':
test.cpp:6:12: error: wrong number of template arguments (1, should be at least
2)
 fooint f;
 ^
test.cpp:2:8: note: provided for 'templateclass, class, class=void,
class=void struct foo'
 struct foo {};
^

that is, make the second message a note, mention the minimum, fix the location
to point to foo, show the default arguments in the declaration.

I would guess that counting how many are non-default is easier, but someone
will have to provide a patch.

[Bug c++/54948] template unnecessarily displayed as A template-parameter-1-1 not AT

2013-04-19 Thread manu at gcc dot gnu.org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54948

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-04-19
 CC||manu at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-19 
16:39:45 UTC ---
I think there are other bugs about printing template-parameter-1-1. I don't
see why the pretty-printer may ever need to print such a thing.

[Bug c++/56289] Bad location for unused value warning with comma operator

2013-04-19 Thread manu at gcc dot gnu.org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56289

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-04-19
 CC||manu at gcc dot gnu.org
Summary|Bad unused value warning|Bad location for unused
   |with comma operator |value warning with comma
   ||operator
 Ever Confirmed|0   |1

--- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-19 
16:49:44 UTC ---
The location could be better but it is pretty close for C++:

test.c:4:14: warning: right operand of comma operator has no effect
[-Wunused-value]
   (void) x, y; /* warning: right operand of comma operator has no effect
  ^

But the C FE is pretty awful:

test.c:4:3: warning: statement with no effect [-Wunused-value]
   (void) x, y; /* warning: right operand of comma operator has no effect
   ^

Clang:

test.c:4:13: warning: expression result unused [-Wunused-value]
  (void) x, y; /* warning: right operand of comma operator has no effect
^

[Bug c/57004] False warning: comparison is always true due to limited range of data type [-Wtype-limits]

2013-04-19 Thread pinskia at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57004



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||INVALID



--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2013-04-19 
16:49:59 UTC ---

Arm's EABI says char defaults to unsigned.  This is different from x86's ABI 

Note ARM-linux defaults to signed though.


[Bug c++/11582] Odd error message with dynamically sized template arg printing

2013-04-19 Thread manu at gcc dot gnu.org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11582

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #7 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-19 
17:13:38 UTC ---
The '[(((sizetype)anonymous) + 1)]' is just awful. If we don't know the
actual type there, that is int [size()], then we should just print 'int []'
or 'int [size_t]' or something similar to denote a VLA.

Surprisingly, Clang++ is even more confused:

test.cc:6:3: error: no matching function for call to 'f'
  f( buf ) ; 
  ^
test.cc:2:28: note: candidate template ignored: could not match 'int' against
'int'
template int N  void f(int ()[N]); 
   ^
test.cc:13:3: error: no matching function for call to 'f'
  f( buf ) ; 
  ^
test.cc:2:28: note: candidate template ignored: could not match 'int' against
'int'
template int N  void f(int ()[N]); 
   ^

[Bug target/56412] [4.8] libtool: cygpath: command not found for mingw32 host

2013-04-19 Thread nightstrike at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56412



--- Comment #5 from nightstrike nightstrike at gmail dot com 2013-04-19 
17:46:37 UTC ---

CYGPATH_W gets set correctly, but libtool seems to ignore it.


[Bug target/56975] [regression] dllimport broken on i686-pc-cygwin

2013-04-19 Thread davek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56975



--- Comment #9 from Dave Korn davek at gcc dot gnu.org 2013-04-19 18:18:19 
UTC ---

Kai's patch applied cleanly for me vs. Revision: 197992 and allowed my failed

build to proceed as far as stage 3 where it failed on libjava (known issue). 

I'm going to rerun the build from clean and try some tests.


[Bug target/57009] New: Select best typed instruction for scalar bitwise operations

2013-04-19 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57009



 Bug #: 57009

   Summary: Select best typed instruction for scalar bitwise

operations

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Keywords: missed-optimization

  Severity: enhancement

  Priority: P3

 Component: target

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: gli...@gcc.gnu.org

Target: x86_64-linux-gnu





Hello,



I purposedly took almost the same title as PR 54716, because this is the same

issue, but for scalars. Consider this code:



union A { double d; unsigned long long i; };



bool f(double a, double b, double c){

  A x, y, z;

  x.d = a * a;

  y.d = b * b;

  z.i = x.i  y.i;

  return z.d  c;

}



which compiles to:



mulsd%xmm0, %xmm0

mulsd%xmm1, %xmm1

movq%xmm0, %rax

movq%xmm1, %rdx

andq%rdx, %rax

movq%rax, %xmm0

ucomisd%xmm0, %xmm2

seta%al



when using andpd would save 3 movq. Note that for vectors, we get nicer code

thanks to Jakub's patch:



mulpd%xmm1, %xmm1

mulpd%xmm0, %xmm0

andpd%xmm1, %xmm0

cmpltpd%xmm2, %xmm0



It would be nice to extend that code to scalars (including the case where one

of the arguments is a constant).



I hit this while experimenting for PR 56944.


[Bug fortran/45424] F2008: Add is_contiguous intrinsic

2013-04-19 Thread quantheory at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45424



Sean Santos quantheory at gmail dot com changed:



   What|Removed |Added



 CC||quantheory at gmail dot com



--- Comment #3 from Sean Santos quantheory at gmail dot com 2013-04-19 
21:12:06 UTC ---

A naive interpretation of the standard suggests that in the case a),

is_contiguous should return .true., because the standard doesn't say anything

about strides here, only about the ordering of the elements. (Of course strides

matter for simply contiguous things, but that's different.)



Case b) seems to be the same.



In case f), since scalars can be associated with assumed-rank entities that

have the contiguous attribute, it wouldn't make much sense to return .false.

in this case.


[Bug libstdc++/57010] New: priority_queue calls self-move-assignment operator

2013-04-19 Thread philipp at fb dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57010



 Bug #: 57010

   Summary: priority_queue calls self-move-assignment operator

Classification: Unclassified

   Product: gcc

   Version: 4.7.1

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: libstdc++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: phil...@fb.com





#include iostream

#include queue



struct A {

  A() { }



  A(const A) = default;

  A operator=(const A) = default;



  A(A) = default;

  A operator=(A a) {

if (this == a) {

  std::cerr  ?!  std::endl;

}

return *this;

  }



  bool operator(const A) const {

return false;

  }

};



int main() {

  std::priority_queueA q;

  q.push(A());

  q.pop();  // prints '?!'

  return 0;

}





std::priority_queue calls self-move-assignment when pop() the last element. 

Verified in gcc-4.6.2 and gcc-4.7.1.


[Bug c++/57011] New: Compiling _GLIBCXX_CONCEPT_CHECKS rejects vectorunique_ptrfoo

2013-04-19 Thread h.chage at suremail dot info


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57011



 Bug #: 57011

   Summary: Compiling _GLIBCXX_CONCEPT_CHECKS rejects

vectorunique_ptrfoo

Classification: Unclassified

   Product: gcc

   Version: 4.7.3

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: h.ch...@suremail.info





I read about _GLIBCXX_CONCEPT_CHECKS on 

http://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_compile_checks.html

(it mentions that the upcoming C++ standard contains concepts, which did not

happen with C++11, so it is probably wrong) and tried to test it with test.cc:



#include memory

#include vector

int main() { std::vectorstd::unique_ptrint F; }



Compiled with `g++ -std=c++11 -D_GLIBCXX_CONCEPT_CHECKS test.cc` it fails,

though. :-(


[Bug rtl-optimization/38026] Miscompilation for CRIS of gfortran.dg/char_result_5.f95 with -fno-gcse

2013-04-19 Thread hp at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38026



--- Comment #5 from Hans-Peter Nilsson hp at gcc dot gnu.org 2013-04-20 
01:54:59 UTC ---

(In reply to comment #4)

 I can't repeat it

 with a revision near ToT,



I tested using r175148 on the 4.3-branch, in case it was unclear.


[Bug target/56263] [avr] Provide strict address-space checking

2013-04-19 Thread gjl at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56263



Georg-Johann Lay gjl at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED

   Target Milestone|4.8.1   |4.8.0



--- Comment #10 from Georg-Johann Lay gjl at gcc dot gnu.org 2013-04-20 
05:10:59 UTC ---

Done, see -Waddr-space-convert.