[Bug target/55718] [4.8 Regression] ICE in gen_reg_rtx, at emit-rtl.c:866

2013-01-10 Thread krebbel at gcc dot gnu.org


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



--- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-10 
08:15:23 UTC ---

Author: krebbel

Date: Thu Jan 10 08:15:07 2013

New Revision: 195078



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195078

Log:

2013-01-10  Andreas Krebbel  andreas.kreb...@de.ibm.com



PR target/55718

* config/s390/s390.c (s390_symref_operand_p)

(s390_loadrelative_operand_p): Merge the two functions.

(s390_check_qrst_address, print_operand_address): Add parameters

to s390_loadrelative_operand_p invokation.

(s390_check_symref_alignment): Use s390_loadrelative_operand_p.

(s390_reload_larl_operand, s390_secondary_reload): Use

s390_loadrelative_operand_p instead of s390_symref_operand_p.

(legitimize_pic_address): Handle @GOTENT and @PLT + addend.





Added:

trunk/gcc/testsuite/gcc.target/s390/pr55718.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/config/s390/s390.c


[Bug target/55718] [4.8 Regression] ICE in gen_reg_rtx, at emit-rtl.c:866

2013-01-10 Thread krebbel at gcc dot gnu.org


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



Andreas Krebbel krebbel at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-10 
08:21:30 UTC ---

Fixed per commit above.


[Bug fortran/55905] [OOP] [F008] ICE for polymorphic dummy argument with an allocatable coarray component

2013-01-10 Thread janus at gcc dot gnu.org


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



janus at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-01-10

 CC||janus at gcc dot gnu.org

Summary|ICE for polymorphic dummy   |[OOP] [F008] ICE for

   |argument with an|polymorphic dummy argument

   |allocatable coarray |with an allocatable coarray

   |component   |component

 Ever Confirmed|0   |1



--- Comment #1 from janus at gcc dot gnu.org 2013-01-10 08:30:35 UTC ---

I can confirm it with:



gcc version 4.8.0 20130105 (experimental) [trunk revision 194927] (GCC)



I get the following backtrace:



0xb0d96d crash_signal

/home/jweil/gcc48/trunk/gcc/toplev.c:334

0x616b10 tree_class_check(tree_node*, tree_code_class, char const*,

int, char const*)

/home/jweil/gcc48/trunk/gcc/tree.h:3793

0x64366a duplicate_allocatable

/home/jweil/gcc48/trunk/gcc/fortran/trans-array.c:7334

0x6439cf gfc_duplicate_allocatable(tree_node*, tree_node*, tree_node*, int)

/home/jweil/gcc48/trunk/gcc/fortran/trans-array.c:7396

0x644d00 structure_alloc_comps

/home/jweil/gcc48/trunk/gcc/fortran/trans-array.c:7738

0x644ee2 gfc_copy_alloc_comp(gfc_symbol*, tree_node*, tree_node*, int)

/home/jweil/gcc48/trunk/gcc/fortran/trans-array.c:7790

0x6741e9 gfc_trans_scalar_assign(gfc_se*, gfc_se*, gfc_typespec, bool,

bool, bool)

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:6841

0x676cf7 gfc_trans_assignment_1

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:7757

0x677342 gfc_trans_assignment(gfc_expr*, gfc_expr*, bool, bool)

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:7915

0x677372 gfc_trans_init_assign(gfc_code*)

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:7921







4.7 gives:



c0.f90:7.19:



class(foo) this

   1

Error: Component '_def_init' at (1) with coarray component shall be a

nonpointer, nonallocatable scalar

c0.f90:7.19:



class(foo) this

   1

Error: Variable 'dst' at (1) is INTENT(OUT) and can thus not be an allocatable

coarray or have coarray components

c0.f90:7.19:



class(foo) this

   1

Error: Component '_def_init' at (1) with coarray component shall be a

nonpointer, nonallocatable scalar


[Bug fortran/45076] [OOP] gfortran.dg/dynamic_dispatch_6.f03 ICEs with -fprofile-use

2013-01-10 Thread janus at gcc dot gnu.org


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



--- Comment #3 from janus at gcc dot gnu.org 2013-01-10 08:43:09 UTC ---

(In reply to comment #2)

 With 4.7 I get instead of an ICE just the warning:



Same with curent 4.8 trunk:



dynamic_dispatch_6.f03:66:0: note: Skipping target new_periodic_5th_order with

mismatching types for icall 

   u = field_creator%create()


[Bug fortran/46952] [OOP] Spurious recursive call error with type bound procedure

2013-01-10 Thread janus at gcc dot gnu.org


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



--- Comment #3 from janus at gcc dot gnu.org 2013-01-10 08:50:51 UTC ---

Further reducing the test case:





module m



  type, abstract :: t

  contains

procedure(inter), pass, deferred :: foo

  end type



contains



  subroutine inter(this)

class(t) :: this

call this%foo()

  end subroutine inter



end module m


[Bug middle-end/55921] [4.6/4.7/4.8 Regression] Crash in verify_ssa for asm to side-steps complex pessimization

2013-01-10 Thread jakub at gcc dot gnu.org


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



--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-10 
09:25:27 UTC ---

Author: jakub

Date: Thu Jan 10 09:25:12 2013

New Revision: 195080



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195080

Log:

PR tree-optimization/55921

* tree-complex.c (expand_complex_asm): New function.

(expand_complex_operations_1): Call it for GIMPLE_ASM.



* gcc.c-torture/compile/pr55921.c: New test.



Added:

trunk/gcc/testsuite/gcc.c-torture/compile/pr55921.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-complex.c


[Bug middle-end/55921] [4.6/4.7 Regression] Crash in verify_ssa for asm to side-steps complex pessimization

2013-01-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



Summary|[4.6/4.7/4.8 Regression]|[4.6/4.7 Regression] Crash

   |Crash in verify_ssa for asm |in verify_ssa for asm to

   |to side-steps complex   |side-steps complex

   |pessimization   |pessimization



--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-10 
09:31:53 UTC ---

Fixed for 4.8+ so far.


[Bug web/55933] New: Missing attachment download link

2013-01-10 Thread sch...@linux-m68k.org


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



 Bug #: 55933

   Summary: Missing attachment download link

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: major

  Priority: P3

 Component: web

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

ReportedBy: sch...@linux-m68k.org





There should be a download link for every attachment directly in the comment. 

The best option would be to disable the useless patch viewer.


[Bug middle-end/55882] [4.7/4.8 Regression] unaligned load/store : incorrect struct offset

2013-01-10 Thread jamborm at gcc dot gnu.org


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



--- Comment #13 from Martin Jambor jamborm at gcc dot gnu.org 2013-01-10 
09:48:41 UTC ---

I have bootstrapped and tested the patch from comment #11 on

sparc64-linux (gcc63 on compile farm) and there were no issues

(actually g++.old-deja/g++.law/operators23.C failed because ld

returned 2 but that is almost certainly noise).


[Bug inline-asm/55934] New: [4.8 Regression] LRA inline asm error recovery

2013-01-10 Thread jakub at gcc dot gnu.org


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



 Bug #: 55934

   Summary: [4.8 Regression] LRA inline asm error recovery

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: inline-asm

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

ReportedBy: ja...@gcc.gnu.org





_Complex float

foo (void)

{

  _Complex float x;

  __asm ( : =x (x)); /* { dg-error impossible register constraint } */

  return x;

}



on x86_64 used to ICE since the introduction of LRA (before that it has been

just issuing error on the asm).  Starting with

http://gcc.gnu.org/viewcvs?root=gccview=revrev=193871

this got fixed, but already (guess) starting with

http://gcc.gnu.org/viewcvs?root=gccview=revrev=193901

it issues both the expected error and also ICE after it.


[Bug inline-asm/55934] [4.8 Regression] LRA inline asm error recovery

2013-01-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||error-recovery, ra

   Priority|P3  |P2

 CC||vmakarov at gcc dot gnu.org

   Target Milestone|--- |4.8.0


[Bug fortran/55932] DDT's default structure constructor does not work with having allocatable member variables

2013-01-10 Thread dominiq at lps dot ens.fr


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



Dominique d'Humieres dominiq at lps dot ens.fr changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-01-10

 CC||bur...@net-b.de

 Ever Confirmed|0   |1



--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-01-10 
10:38:05 UTC ---

This is a bug with allocatable scalars (the code is rejected with -std=f95).

The code work as expected if I replace 'REAL, ALLOCATABLE :: a' with 'REAL,

ALLOCATABLE :: a(:)' and 'a=1.0' with 'a=[1.0]'.



AFAIK all the allocatable scalar bugs have not yet been fixed and this PR may

be a duplicate of an existing one. Workaround: don't use allocatable scalars if

you can.


[Bug web/55933] Missing attachment download link

2013-01-10 Thread redi at gcc dot gnu.org


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



--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2013-01-10 
10:47:46 UTC ---

(In reply to comment #0)

 The best option would be to disable the useless patch viewer.



This gets my vote.


[Bug tree-optimization/55923] tree passes pessimize complex load/store operations

2013-01-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-01-10

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
11:05:34 UTC ---

Confirmed.


[Bug middle-end/55929] lra-constraints-ICE while xg++ compile libitm with -Os

2013-01-10 Thread ubizjak at gmail dot com


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



Uros Bizjak ubizjak at gmail dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2013-01-10

 AssignedTo|unassigned at gcc dot   |ubizjak at gmail dot com

   |gnu.org |

   Target Milestone|--- |4.8.0

 Ever Confirmed|0   |1



--- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2013-01-10 11:10:39 
UTC ---

(In reply to comment #1)

 /sandbox/gcc-git/libitm/beginend.cc:346:1: error: unable to generate reloads

 

 Reload would not be able handle this either as it is jump_insn.



How annoying.



In this case, we have to expand with a hard-reg temporary (%eax). I will

prepare a patch for this.


[Bug tree-optimization/32306] [4.6/4.7/4.8 Regression] redundant || not eliminated

2013-01-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #23 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-10 
11:26:09 UTC ---

It generally depends on the branch cost, e.g. out of #c19 testcase on x86_64 we

generate:

  D.1729 = b1 != 0;

  D.1730 = b2 != 0;

  D.1731 = D.1729  D.1730;

  if (D.1731 != 0) goto D.1732; else goto D.1727;

  D.1732:

  D.1733 = b3 != 0;

  D.1734 = b4 != 0;

  D.1735 = D.1733  D.1734;

  if (D.1735 != 0) goto D.1736; else goto D.1727;

  D.1736:

etc., but on other targets it could have just one comparison per conditional

jump, or on the other side 4.  While the tests don't have side-effects, turning

too many s into s wouldn't result in very good code, though of course would

make it easier to perform some optimizations.  Anyway, you can write it in the

source as a series of ifs:

  array[0] = 1;

  if (!b1)

array[0] = 0;

  else if (!b2)

array[0] = 0;

  else if (!b3)

array[0] = 0;

...

and we wouldn't be able to optimize it anyway.


[Bug sanitizer/55561] TSAN: Fortran/OMP yields false positives

2013-01-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #34 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2013-01-10 11:26:23 UTC ---

(In reply to comment #33)



 Can you sent it to review? You can also mention that it fixes issue 40362.



I had a closer look at PR40362. Actually, I don't think this patch fixes

PR40362, as it only addresses the config/linux/ variant and not the

config/posix/ (which is what the --disable-linux-futex choice in PR40362

follows). I would be happy if you could sent the patch, I wouldn't be able to

explain the rationale for the changes, I just followed your instructions in

comment #26. You'll notice that the changelog I prepared also puts your name, I

think this is appropriate.


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread rguenth at gcc dot gnu.org


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



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 #24 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
11:29:16 UTC ---

Created attachment 29139

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

patch to verify locations as LTO expects them



This verifies that all stmts locations (missing expr locations) have a BLOCK

that is in the functions BLOCK tree (_not_ counting abstract origins, as LTO

does not stream the abstract part of the BLOCK tree!).  It fires on trivial

inlining testcases which means that LTO will end up with the issue you

are seeing.



Ugh.  Investigating.


[Bug sanitizer/55561] TSAN: Fortran/OMP yields false positives

2013-01-10 Thread jakub at gcc dot gnu.org


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



--- Comment #35 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-10 
11:37:08 UTC ---

For config/posix it is not that easy, because you can't assume that atomics are

available.  You'd need to guard it with #ifdef HAVE_SYNC_BUILTINS and do

something else (nothing?) otherwise.  Those targets don't support tsan

anyway...


[Bug fortran/46952] [OOP] Spurious recursive call error with type bound procedure

2013-01-10 Thread janus at gcc dot gnu.org


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



janus at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |



--- Comment #4 from janus at gcc dot gnu.org 2013-01-10 11:48:54 UTC ---

I think the following patch makes sense:



Index: gcc/fortran/resolve.c

===

--- gcc/fortran/resolve.c(revision 194927)

+++ gcc/fortran/resolve.c(working copy)

@@ -3803,7 +3803,7 @@ resolve_call (gfc_code *c)



   /* Subroutines without the RECURSIVE attribution are not allowed to

* call themselves.  */

-  if (csym  is_illegal_recursion (csym, gfc_current_ns))

+  if (!c-expr1  csym  is_illegal_recursion (csym, gfc_current_ns))

 {

   if (csym-attr.entry  csym-ns-entries)

 gfc_error (ENTRY '%s' at %L cannot be called recursively, as





This is the same workaround that we use in resolve_call for deferred TBPs with

abstract interfaces.


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



  Attachment #29139|0   |1

is obsolete||



--- Comment #25 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
12:15:41 UTC ---

Created attachment 29140

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

updated patch with fixes



Fix for virtual operands (shouldn't be relevant for LTO).  My guess would still

be IPA opts, so can you check if it triggers?  I'm doing regular bootstrap /

testing and will commit the virtuals fix independently.


[Bug web/32927] Online installation instructions only for mainline

2013-01-10 Thread glisse at gcc dot gnu.org


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



--- Comment #5 from Marc Glisse glisse at gcc dot gnu.org 2013-01-10 13:08:43 
UTC ---

This has caused quite a bit of confusion lately with people installing ISL

instead of PPL for gcc-4.7.


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #26 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
13:42:33 UTC ---

Author: rguenth

Date: Thu Jan 10 13:42:27 2013

New Revision: 195084



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195084

Log:

2013-01-10  Richard Biener  rguent...@suse.de



PR bootstrap/55792

* tree-into-ssa.c (rewrite_add_phi_arguments): Do not set

locations for virtual PHI arguments.

(rewrite_update_phi_arguments): Likewise.



Modified:

trunk/gcc/ChangeLog

trunk/gcc/tree-into-ssa.c


[Bug c/52381] asm goto output operands diagnostics

2013-01-10 Thread timo.kreuzer at reactos dot org


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



Timo Kreuzer timo.kreuzer at reactos dot org changed:



   What|Removed |Added



 CC||timo.kreuzer at reactos dot

   ||org



--- Comment #3 from Timo Kreuzer timo.kreuzer at reactos dot org 2013-01-10 
13:49:11 UTC ---

I support this feature request.

As an exmple I'd like to mention the x86 instruction cmpxchg.

While GCC has 2 CAS builtins (__sync_bool_compare_and_swap and

__sync_val_compare_and_swap) neither of these supports what the x86 cmpxchg

instruction does, namely returning both a boolean value indicating success AND

the previous value of the memory operand in case of failure.



So here's the code that would handle this, if output operand was usable.



try_again:



// do something



asm goto

(

lock cmpxchg %%ecx, %[Destination] \t\n

jnz %l[try_again] \t\n

: =c(Exchange) // = does not work

: [Destination]m(Destination), [Comparand]a(Comparand),

[Exchange]c(Exchange)

: memory

: try_again

);



Note that in this case the output is needed on the jump path.


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



  Attachment #29140|0   |1

is obsolete||



--- Comment #27 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
14:07:55 UTC ---

Created attachment 29141

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

updated checker



Also verify expressions.  Bootstrapped ok, target libs building now, testing

pending.



I'll give it a LTO profiledbootstrap try as well ... if that's not it then

the issue must be elsewhere :(


[Bug fortran/46952] [OOP] Spurious recursive call error with type bound procedure

2013-01-10 Thread janus at gcc dot gnu.org


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



--- Comment #5 from janus at gcc dot gnu.org 2013-01-10 14:09:54 UTC ---

The following patch is equivalent in functionality to the one in comment 4, but

includes some minor cleanup (and regtests cleanly):





Index: gcc/fortran/resolve.c

===

--- gcc/fortran/resolve.c(revision 194927)

+++ gcc/fortran/resolve.c(working copy)

@@ -3792,28 +3792,30 @@ resolve_call (gfc_code *c)

 }

 }



-  /* If this ia a deferred TBP with an abstract interface

- (which may of course be referenced), c-expr1 will be set.  */

-  if (csym  csym-attr.abstract  !c-expr1)

+  /* If this ia a deferred TBP, c-expr1 will be set.  */

+  if (!c-expr1  csym)

 {

-  gfc_error (ABSTRACT INTERFACE '%s' must not be referenced at %L,

- csym-name, c-loc);

-  return FAILURE;

-}

+  if (csym-attr.abstract)

+{

+  gfc_error (ABSTRACT INTERFACE '%s' must not be referenced at %L,

+csym-name, c-loc);

+  return FAILURE;

+}



-  /* Subroutines without the RECURSIVE attribution are not allowed to

-   * call themselves.  */

-  if (csym  is_illegal_recursion (csym, gfc_current_ns))

-{

-  if (csym-attr.entry  csym-ns-entries)

-gfc_error (ENTRY '%s' at %L cannot be called recursively, as

-subroutine '%s' is not RECURSIVE,

-   csym-name, c-loc, csym-ns-entries-sym-name);

-  else

-gfc_error (SUBROUTINE '%s' at %L cannot be called recursively, as it

-is not RECURSIVE, csym-name, c-loc);

+  /* Subroutines without the RECURSIVE attribution are not allowed to

+ call themselves.  */

+  if (is_illegal_recursion (csym, gfc_current_ns))

+{

+  if (csym-attr.entry  csym-ns-entries)

+gfc_error (ENTRY '%s' at %L cannot be called recursively, 

+   as subroutine '%s' is not RECURSIVE,

+   csym-name, c-loc, csym-ns-entries-sym-name);

+  else

+gfc_error (SUBROUTINE '%s' at %L cannot be called recursively, 

+   as it is not RECURSIVE, csym-name, c-loc);



-  t = FAILURE;

+  t = FAILURE;

+}

 }



   /* Switch off assumed size checking and do this again for certain kinds


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #28 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
14:11:43 UTC ---

Another possibility lies in DEBUG stmts which we do not consider at all ...

(in the checker, that is).


[Bug c/52381] asm goto output operands diagnostics

2013-01-10 Thread sch...@linux-m68k.org


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



--- Comment #4 from Andreas Schwab sch...@linux-m68k.org 2013-01-10 14:12:54 
UTC ---

Like __atomic_compare_exchange_n?


Re: [Bug tree-optimization/55927] New: FAIL: g++.dg/ipa/devirt-10.C -std=gnu++11 scan-ipa-dump-times inline Discovered a virtual call to a known target 1

2013-01-10 Thread Jan Hubicka
This will be usual difference of virtual call representation in ia64.  The .cp 
test is going fine?
Honza


[Bug tree-optimization/55927] FAIL: g++.dg/ipa/devirt-10.C -std=gnu++11 scan-ipa-dump-times inline Discovered a virtual call to a known target 1

2013-01-10 Thread hubicka at ucw dot cz


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



--- Comment #1 from Jan Hubicka hubicka at ucw dot cz 2013-01-10 14:33:48 UTC 
---

This will be usual difference of virtual call representation in ia64.  The .cp

test is going fine?

Honza


[Bug tree-optimization/55927] FAIL: g++.dg/ipa/devirt-10.C -std=gnu++11 scan-ipa-dump-times inline Discovered a virtual call to a known target 1

2013-01-10 Thread sch...@linux-m68k.org


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



--- Comment #2 from Andreas Schwab sch...@linux-m68k.org 2013-01-10 14:44:20 
UTC ---

Yes, it does.


[Bug fortran/47203] USE of module with same name as SUBROUTINE not reject, but also not working

2013-01-10 Thread mikael at gcc dot gnu.org


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



Mikael Morin mikael at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||mikael at gcc dot gnu.org

 Resolution||FIXED

   Target Milestone|--- |4.8.0



--- Comment #4 from Mikael Morin mikael at gcc dot gnu.org 2013-01-10 
14:58:43 UTC ---

Fixed for 4.8.0


[Bug rtl-optimization/55833] [4.6/4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582 (BB should be marked irreducible !)

2013-01-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
15:02:37 UTC ---

By unswitching on an exit test that exits to the enclosing loop we create

an unswitched loop that is now reached by what looks like an exit test

of the outer loop which is part of an irreducible region.



I'm not sure we can reliably detect all cases we need to manually mark

the entry edge for.  So ... re-mark_irreducible_loops () after each

transform?



And cheaper checking by



Index: loop-unswitch.c

===

--- loop-unswitch.c (revision 195085)

+++ loop-unswitch.c (working copy)

@@ -145,12 +145,7 @@ unswitch_loops (void)

   /* Go through inner loops (only original ones).  */



   FOR_EACH_LOOP (li, loop, LI_ONLY_INNERMOST)

-{

-  unswitch_single_loop (loop, NULL_RTX, 0);

-#ifdef ENABLE_CHECKING

-  verify_loop_structure ();

-#endif

-}

+unswitch_single_loop (loop, NULL_RTX, 0);



   iv_analysis_done ();

 }

@@ -370,6 +365,10 @@ unswitch_single_loop (struct loop *loop,

   nloop = unswitch_loop (loop, bbs[i], copy_rtx_if_shared (cond), cinsn);

   gcc_assert (nloop);



+#ifdef ENABLE_CHECKING

+  verify_loop_structure ();

+#endif

+

   /* Invoke itself on modified loops.  */

   unswitch_single_loop (nloop, rconds, num + 1);

   unswitch_single_loop (loop, conds, num + 1);


[Bug fortran/47136] local identifier shall not be the same as a global identifier

2013-01-10 Thread mikael at gcc dot gnu.org


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



Mikael Morin mikael at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||INVALID



--- Comment #11 from Mikael Morin mikael at gcc dot gnu.org 2013-01-10 
15:03:04 UTC ---

(In reply to comment #10)

 (In reply to comment #7)

  By this reasoning the PR is actually of the type accepts-invalid and not

  rejects-valid.

 

 It seems to me that all the cases presented here (comment #0, comment #2,

 the two cases in comment #3, comment #6) are invalid.

 Thus it's a rejects-invalid, in other words not a bug.



Closing as per the reason above.


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2013-01-10 Thread hubicka at gcc dot gnu.org


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



--- Comment #170 from Jan Hubicka hubicka at gcc dot gnu.org 2013-01-10 
15:04:10 UTC ---

OK, here is updated memory use:

cgraph.c:863 (cgraph_allocate_init_indirect_info5905200: 0.1%  0:

0.0%6020160: 0.1%  0: 0.0% 298134

tree.c:1237 (build_int_cst_wide)   15554272: 0.4%  0:

0.0% 782528: 0.0%  0: 0.0% 510525

tree.c:1559 (build_string) 10685931: 0.2%  0:

0.0%   16715642: 0.4%2193469: 1.7% 563828

stringpool.c:75 (alloc_node)  0: 0.0%  0:

0.0%   30574880: 0.7%  0: 0.0% 764372

lto/lto.c:2286 (create_subid_section_table) 1522184: 0.0%  0:

0.0%   39117064: 0.8%8051472: 6.4%   3978

stringpool.c:58 (stringpool_ggc_alloc)0: 0.0%  0:

0.0%   41092405: 0.9%2954893: 2.4% 764372

gimple.c:3167 (iterative_hash_canonical_type)  45040752: 1.0%  0:

0.0%  0: 0.0%  0: 0.0%2815047

lto/lto.c:1222 (iterative_hash_gimple_type)68276864: 1.6%  0:

0.0%  0: 0.0%  0: 0.0%4267304

ggc-common.c:249 (ggc_cleared_alloc_ptr_array_tw  91784: 0.0% 

487289424:48.8%   71432600: 1.5% 248976: 0.2%  10974

lto/lto.c:1266 (iterative_hash_gimple_type)75288576: 1.8%  0:

0.0%  0: 0.0%  0: 0.0%4705536

lto-section-in.c:362 (lto_new_in_decl_state) 694320: 0.0%  0:

0.0%   94861800: 2.0%  0: 0.0% 796301

tree.c:1263 (build_int_cst_wide)   76232736: 1.8%  0:

0.0%   19358880: 0.4%  0: 0.0%2987238

cgraph.c:794 (cgraph_create_edge_1)   0: 0.0%  0:

0.0%  125510632: 2.7%  0: 0.0%1206833

vec.h:565 ((null)) 66034564: 1.5%  98716:

0.0%   68500548: 1.5%3484420: 2.8% 597783

vec.h:695 ((null))124654648: 2.9% 

122044288:12.2%   63749232: 1.4%2614800: 2.1%1590429

tree-streamer-in.c:562 (streamer_alloc_tree)  125829312: 2.9%  0:

0.0%   74222904: 1.6%   7072: 0.0%2005091

lto/lto.c:267 (lto_read_in_decl_state)  1478720: 0.0%  0:

0.0%  216390688: 4.7%   38247784:30.5%5574107

vec.h:747 ((null))173791988: 4.0%   19565412:

2.0%   68225644: 1.5%2680332: 2.1%1396070

vec.h:707 ((null))133872480: 3.1%  0:

0.0%  285212728: 6.1% 800360: 0.6%1059913

cgraph.c:500 (cgraph_allocate_node)   0: 0.0%  0:

0.0%  472831880:10.2%  0: 0.0%1597405

tree.c:1223 (build_int_cst_wide)  607138944:14.1%  0:

0.0%   10427664: 0.2%4719336: 3.8% 315034

toplev.c:959 (realloc_for_line_map)   0: 0.0% 

358037664:35.8% 1073872920:23.1%184: 0.0% 16

tree-streamer-in.c:573 (streamer_alloc_tree) 2762184192:64.2%  0:

0.0% 1861017624:40.0%   59027616:47.1%   34649937

Total4302007795999178184   

   4651003487125411458 68828967

source location GarbageFreed   

 Leak OverheadTimes

---





Actually it is a bit of improvement over my past report.  Some obvious things

1) we still soak in too many trees (40%) of memory.  The per-tree stats are:

decls17310018 -1609736744

types8983387 1509209016

exprs2427302   80045744

constants4079292  135393547

binfos   2005091  200038072

random kinds 5691481  227659664



and counts:

tree_list5691475   

pointer_type 2337585

record_type  3702066   

function_decl1856282

field_decl   2812564

const_decl   2739702

parm_decl3549707

type_decl4780459

result_decl  1144482

tree_binfo   2005091



2) new linemaps are still a disaster

3) VEC rewrite did break stats.



Honza


[Bug fortran/55345] ICE with abstract interface type with use-renamed local names

2013-01-10 Thread mikael at gcc dot gnu.org


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



Mikael Morin mikael at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 CC||mikael at gcc dot gnu.org

 Resolution||FIXED



--- Comment #3 from Mikael Morin mikael at gcc dot gnu.org 2013-01-10 
15:06:07 UTC ---

Closing then.


[Bug rtl-optimization/55833] [4.6/4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582 (BB should be marked irreducible !)

2013-01-10 Thread mpolacek at gcc dot gnu.org


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



--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org 2013-01-10 
15:11:34 UTC ---

(In reply to comment #6)

 By unswitching on an exit test that exits to the enclosing loop we create

 an unswitched loop that is now reached by what looks like an exit test

 of the outer loop which is part of an irreducible region.

 

 I'm not sure we can reliably detect all cases we need to manually mark

 the entry edge for.  So ... re-mark_irreducible_loops () after each

 transform?



Yeah, I'm looking into this for quite some time now and this occurred me too. 

I'm going to prepare some patch (together with your version of cheaper

checking).


[Bug rtl-optimization/55833] [4.6/4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582 (BB should be marked irreducible !)

2013-01-10 Thread mpolacek at gcc dot gnu.org


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



Marek Polacek mpolacek at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |



--- Comment #8 from Marek Polacek mpolacek at gcc dot gnu.org 2013-01-10 
15:18:33 UTC ---

BTW, here is the CFG right before the verify_loops_structure (), which fails:

http://people.redhat.com/mpolacek/src/pr55833.png


[Bug rtl-optimization/55833] [4.6/4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582 (BB should be marked irreducible !)

2013-01-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 CC||rakdver at gcc dot gnu.org



--- Comment #9 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
15:22:46 UTC ---

Zdenek may also have an idea here.


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #29 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
15:28:38 UTC ---

(In reply to comment #27)

 Created attachment 29141 [details]

 updated checker

 

 Also verify expressions.  Bootstrapped ok, target libs building now, testing

 pending.

 

 I'll give it a LTO profiledbootstrap try as well ... if that's not it then

 the issue must be elsewhere :(



Besides a few fortran ICEs in the testsuite a regular bootstrap and regtest

went ok with this version.



The Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs which have a location

with bogus BLOCK.



FAIL: gfortran.dg/class_array_15.f03  -O0  (internal compiler error)

FAIL: gfortran.dg/class_array_15.f03  -O0  (test for excess errors)

WARNING: gfortran.dg/class_array_15.f03  -O0  compilation failed to produce

exec

utable

FAIL: gfortran.dg/typebound_operator_13.f03  -O0  (internal compiler error)

FAIL: gfortran.dg/typebound_operator_13.f03  -O0  (test for excess errors)

WARNING: gfortran.dg/typebound_operator_13.f03  -O0  compilation failed to

produ

ce executable

FAIL: gfortran.dg/typebound_operator_7.f03  -O0  (internal compiler error)

FAIL: gfortran.dg/typebound_operator_7.f03  -O0  (test for excess errors)

WARNING: gfortran.dg/typebound_operator_7.f03  -O0  compilation failed to

produc

e executable

FAIL: gfortran.dg/typebound_operator_8.f03  -O0  (internal compiler error)

FAIL: gfortran.dg/typebound_operator_8.f03  -O0  (test for excess errors)

WARNING: gfortran.dg/typebound_operator_8.f03  -O0  compilation failed to

produc

e executable


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #30 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
15:34:39 UTC ---

LTO profiled-bootstrap revals:



/space/rguenther/src/svn/trunk/gcc/reginfo.c: In function 'reg_scan':

/space/rguenther/src/svn/trunk/gcc/reginfo.c:1015:0: error: location references

block not in block tree

 reg_scan (rtx f, unsigned int nregs ATTRIBUTE_UNUSED)

 ^

ee

fmt_351 = ee;



/space/rguenther/src/svn/trunk/gcc/reginfo.c:1015:0: internal compiler error:

verify_gimple failed



this is a STRING_CST node.  Needs to be tracked down ... more IPA stuff needs

to use copy_tree_without_location.


[Bug tree-optimization/44061] [4.6/4.7/4.8 Regression] Warns about out-of-bounds array access inside __builtin_constant_p guarded section

2013-01-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org 2013-01-10 
15:35:40 UTC ---

I'm updating and testing the patch.


[Bug fortran/55935] New: [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs with bogus BLOCK

2013-01-10 Thread burnus at gcc dot gnu.org


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



 Bug #: 55935

   Summary: [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs

with bogus BLOCK

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Keywords: ice-on-valid-code

  Severity: normal

  Priority: P3

 Component: fortran

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

ReportedBy: bur...@gcc.gnu.org

CC: ja...@gcc.gnu.org, pa...@gcc.gnu.org





I assume that that relates to the __copy function.



From PR 55792 comment 29:

-



The Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs which have a location

with bogus BLOCK.



 Also verify expressions.  Bootstrapped ok, target libs building now, testing

 pending.



FAIL: gfortran.dg/class_array_15.f03  -O0  (internal compiler error)

FAIL: gfortran.dg/typebound_operator_13.f03  -O0  (internal compiler error)

FAIL: gfortran.dg/typebound_operator_7.f03  -O0  (internal compiler error)

FAIL: gfortran.dg/typebound_operator_8.f03  -O0  (internal compiler error)


[Bug fortran/49213] [OOP] gfortran rejects structure constructor expression

2013-01-10 Thread janus at gcc dot gnu.org


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



--- Comment #8 from janus at gcc dot gnu.org 2013-01-10 15:46:12 UTC ---

(In reply to comment #7)

 I want to emphasize again that the error I wanted to report was that gfortran

 is rejecting valid structure constructor expressions (see comment 3).



Here is a slightly reduced version of comment 3:



  type :: S

integer :: n

  end type

  type(S) :: Sobj



  type :: T

class(S), allocatable :: x

  end type



  Sobj = S(1)

  call pass_it (T(Sobj))



contains



  subroutine pass_it (foo)

type(T) :: foo

  end subroutine



end







One can get past the error message with the following patch:



Index: gcc/fortran/resolve.c

===

--- gcc/fortran/resolve.c(revision 194927)

+++ gcc/fortran/resolve.c(working copy)

@@ -1103,7 +1103,7 @@ resolve_structure_cons (gfc_expr *expr, int init)

   /* If we don't have the right type, try to convert it.  */



   if (!comp-attr.proc_pointer 

-  !gfc_compare_types (cons-expr-ts, comp-ts))

+  !gfc_compare_types (comp-ts, cons-expr-ts))

 {

   t = FAILURE;

   if (strcmp (comp-name, _extends) == 0)





but the one runs into an ICE:



internal compiler error: in fold_convert_loc, at fold-const.c:1986

   call pass_it (T(Sobj))

 ^

0x845634 fold_convert_loc(unsigned int, tree_node*, tree_node*)

/home/jweil/gcc48/trunk/gcc/fold-const.c:1986

0x671aa9 gfc_trans_subcomponent_assign

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:6001

0x671e10 gfc_trans_structure_assign

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:6068

0x671f46 gfc_conv_structure(gfc_se*, gfc_expr*, int)

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:6095


[Bug fortran/55935] [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs with bogus BLOCK

2013-01-10 Thread dominiq at lps dot ens.fr


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



Dominique d'Humieres dominiq at lps dot ens.fr changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-01-10

 Ever Confirmed|0   |1



--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-01-10 
16:00:46 UTC ---

 I assume that that relates to the __copy function.



It looks likely: with the patch at

http://gcc.gnu.org/ml/gcc-patches/2013-01/msg00547.html, I get



[macbook] f90/bug% gfc

/opt/gcc/work/gcc/testsuite/gfortran.dg/class_array_15.f03

/opt/gcc/work/gcc/testsuite/gfortran.dg/class_array_15.f03: In function

'pr54992':

/opt/gcc/work/gcc/testsuite/gfortran.dg/class_array_15.f03:97:0: error:

location references block not in block tree

 subroutine pr54992  ! This test remains as the original.

 ^

__copy_g_nodes_Ncbhstd

_22 = __copy_g_nodes_Ncbhstd;



/opt/gcc/work/gcc/testsuite/gfortran.dg/class_array_15.f03:97:0: internal

compiler error: verify_gimple failed



and so on for the other failing tests.


[Bug fortran/49213] [OOP] gfortran rejects structure constructor expression

2013-01-10 Thread janus at gcc dot gnu.org


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



--- Comment #9 from janus at gcc dot gnu.org 2013-01-10 16:06:51 UTC ---

In fact one also gets an ICE when replacing class(S) with type(S) in

comment 8 (already with an unpatched gfortran):





  type :: S

integer :: n

  end type

  type(S) :: Sobj



  type :: T

type(S), allocatable :: x

  end type



  Sobj = S(1)

  call pass_it (T(Sobj))



contains



  subroutine pass_it (foo)

type(T) :: foo

  end subroutine



end







internal compiler error: in fold_convert_loc, at fold-const.c:1864

   call pass_it (T(Sobj))

 ^

0x844efe fold_convert_loc(unsigned int, tree_node*, tree_node*)

/home/jweil/gcc48/trunk/gcc/fold-const.c:1863

0x671aa9 gfc_trans_subcomponent_assign

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:6001

0x671e10 gfc_trans_structure_assign

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:6068

0x671f46 gfc_conv_structure(gfc_se*, gfc_expr*, int)

/home/jweil/gcc48/trunk/gcc/fortran/trans-expr.c:6095





This is similar, but not identical, to the ICE in comment 8.


[Bug fortran/55935] [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs with bogus BLOCK

2013-01-10 Thread dominiq at lps dot ens.fr


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



--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-01-10 
16:25:05 UTC ---

For the test gfortran.dg/class_array_15.f03, the ICE is triggered by the

statement:



allocate(b%cBh(1),source=defaultBhC)



(note that the test compiles with  -fno-whole-file;-).


[Bug fortran/55935] [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs with bogus BLOCK

2013-01-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-10 
16:29:17 UTC ---

Supposedly ADDR_EXPR is shared between several functions or something similar.


[Bug tree-optimization/55927] FAIL: g++.dg/ipa/devirt-10.C -std=gnu++11 scan-ipa-dump-times inline Discovered a virtual call to a known target 1

2013-01-10 Thread hubicka at gcc dot gnu.org


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



Jan Hubicka hubicka at gcc dot gnu.org changed:



   What|Removed |Added



 CC||hubicka at gcc dot gnu.org



--- Comment #3 from Jan Hubicka hubicka at gcc dot gnu.org 2013-01-10 
16:42:46 UTC ---

Martin,

I guess it is yours then. Why we fail to analyze one call but suceed with the

another?


[Bug tree-optimization/52448] [4.6/4.7/4.8 Regression] cselim broken with calls

2013-01-10 Thread jakub at gcc dot gnu.org


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



--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2013-01-10 
16:49:26 UTC ---

Any progress with this?


[Bug tree-optimization/55936] New: Missed VRP optimization

2013-01-10 Thread law at redhat dot com


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



 Bug #: 55936

   Summary: Missed VRP optimization

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: tree-optimization

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

ReportedBy: l...@redhat.com





gcc.dg/tree-ssa/vrp06.c looks like:



foo (int i, int j, int a)

{

  if (i = 10)

if (i = 30)

  if (i == j)

{

  a--;



  /* This should fold to 'if (0)'.  */

  if (i  0)

i = baz ();



  /* This should fold to 'if (1)'.  */

  if (j  0)

a--;



  /* This should fold to 'if (0)'.  */

  if (i != j)

return 0;

}



  return i + a + j;

}





VRP is supposed to optimize away the 3 innermost conditions in a single pass;

the key being to realize that the test i  0 is always false and thus i does

not vary (nor does j vary).  Once i  j are determined to have non-varying

values, we should be able to optimize away the i != j test because we're in the

true clause if the i == j test.



Unfortunately, VRP drops i to varying and it's unable to optimize away the last

test during the first VRP pass.  It does get optimized later.


[Bug tree-optimization/55683] [4.8 Regression] ICE in inline_call, at ipa-inline-transform.c:270

2013-01-10 Thread jamborm at gcc dot gnu.org


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



--- Comment #15 from Martin Jambor jamborm at gcc dot gnu.org 2013-01-10 
16:58:35 UTC ---

(In reply to comment #13)

 The acutal ICE should be fixed.  Martinj, I will leave the PR open

 just to make you to double check that ipa-cp is doing properly the

 translation from constants to binfos, too.



At -O2, IPA-CP does not even consider cloning C::c1 because it is not

allowed to grow code by creating clones.



At -O3 (or with -fipa-cp-clone), IPA-CP discovers that cloning for c

would lead to devirtualization but because the target of the

devirtualized call is not analyzed, it gets only minimal bonus for

that.  Eventually the cloning opportunity gets score 437 (cloning

threshold is 500) and thus it is dropped.  This is as it should be.



 I would expect this testcase to be caught by ipa-cp prior inlining. Also I

 think that when merging values, we should go from constant to binfo when

 constants differs but their binfos match (so when method is called with

 multiple static instances of the same object we will get devirtualization).  I

 don't see ipa-cp doing that.



Well, the problem with that of course is that we do not merge stuff

now, we accumulate all possible constants.  So what we perhaps should

do instead is (if ipcp_param_lattices-virt_call is true) to try to

see if a number of ADDR_EXPR constants yield the same binfo and if so,

consider that new value first, before any real constants.


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread hjl.tools at gmail dot com

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

--- Comment #31 from H.J. Lu hjl.tools at gmail dot com 2013-01-10 17:03:13 
UTC ---
(In reply to comment #30)
 LTO profiled-bootstrap revals:
 
 /space/rguenther/src/svn/trunk/gcc/reginfo.c: In function 'reg_scan':
 /space/rguenther/src/svn/trunk/gcc/reginfo.c:1015:0: error: location 
 references
 block not in block tree
  reg_scan (rtx f, unsigned int nregs ATTRIBUTE_UNUSED)
  ^
 ee
 fmt_351 = ee;

This is the same problem in comment #13:

In file included from :4457:0:
/export/gnu/import/git/gcc/gcc/reginfo.c: In function ‘reg_scan’:
/export/gnu/import/git/gcc/gcc/reginfo.c:1015:0: error: location references
block not in block tree
 reg_scan (rtx f, unsigned int nregs ATTRIBUTE_UNUSED)
 ^
ee
fmt_388 = ee;

/export/gnu/import/git/gcc/gcc/reginfo.c:1015:0: internal compiler error:
verify_gimple failed
0x9c7dc8 verify_gimple_in_cfg(function*)
/export/gnu/import/git/gcc/gcc/tree-cfg.c:4726
0x8ad9e0 execute_function_todo
/export/gnu/import/git/gcc/gcc/passes.c:1968
0x8acd04 do_per_function
/export/gnu/import/git/gcc/gcc/passes.c:1703
0x8adb04 execute_todo
/export/gnu/import/git/gcc/gcc/passes.c:2001
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug other/55899] GCC should provide built-ins in stdint.h data types flavor/version/variation

2013-01-10 Thread hp at gcc dot gnu.org


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



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



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-01-10

 CC||hp at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org 2013-01-10 
17:29:48 UTC ---

Sounds fair.  Note the inconsistency between clz/ctz builtins and bswap

builtins.


[Bug middle-end/55929] lra-constraints-ICE while xg++ compile libitm with -Os

2013-01-10 Thread ubizjak at gmail dot com


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



--- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2013-01-10 17:30:36 
UTC ---

Patch in testing:



Index: i386.md

===

--- i386.md (revision 195063)

+++ i386.md (working copy)

@@ -18018,7 +18018,10 @@

 {

   rtx label = gen_label_rtx ();



-  operands[1] = force_reg (SImode, constm1_rtx);

+  /* xbegin is emitted as jump_insn, so reload won't be able

+ to reload its operand.  Force the value into AX hard register.  */

+  operands[1] = gen_rtx_REG (SImode, AX_REG);

+  emit_move_insn (operands[1], constm1_rtx);



   emit_jump_insn (gen_xbegin_1 (operands[1], label));


[Bug fortran/55935] [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs with bogus BLOCK

2013-01-10 Thread dominiq at lps dot ens.fr


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



--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-01-10 
17:35:13 UTC ---

 (note that the test compiles with  -fno-whole-file;-).



To be honest, this is not true for the other failing tests. Reduced

typebound_operator_8.f03



! { dg-do compile }

! PR48946 - complex expressions involving typebound operators of derived types.

!

module field_module

  implicit none

  type ,abstract :: field

  contains

procedure(field_op_real) ,deferred :: multiply_real

procedure(field_plus_field) ,deferred :: plus

generic :: operator(*) = multiply_real

generic :: operator(+) = plus

  end type

  abstract interface

function field_plus_field(lhs,rhs)

  import :: field

  class(field) ,intent(in)  :: lhs

  class(field) ,intent(in)  :: rhs

  class(field) ,allocatable :: field_plus_field

end function

  end interface

  abstract interface

function field_op_real(lhs,rhs)

  import :: field

  class(field) ,intent(in)  :: lhs

  real ,intent(in) :: rhs

  class(field) ,allocatable :: field_op_real

end function

  end interface

end module



module i_field_module

  use field_module

  implicit none

  type, extends (field)  :: i_field

integer :: i

  contains

procedure :: multiply_real = i_multiply_real

procedure :: plus = i_plus_i

  end type

contains

  function i_plus_i(lhs,rhs)

class(i_field) ,intent(in)  :: lhs

class(field) ,intent(in)  :: rhs

class(field) ,allocatable :: i_plus_i

integer :: m = 0

select type (lhs)

  type is (i_field); m = lhs%i

end select

select type (rhs)

  type is (i_field); m = rhs%i + m

end select

allocate (i_plus_i, source = i_field (m))

  end function

  function i_multiply_real(lhs,rhs)

class(i_field) ,intent(in)  :: lhs

real ,intent(in) :: rhs

class(field) ,allocatable :: i_multiply_real

integer :: m = 0

select type (lhs)

  type is (i_field); m = lhs%i * int (rhs)

end select

allocate (i_multiply_real, source = i_field (m))

  end function

end module



This test compiles if I comment one of the ALLOCATE.


[Bug target/55565] [4.8 regression] FAIL: gcc.target/powerpc/ppc-mov-1.c scan-assembler-not fmr [0-9]+,[0-9]+

2013-01-10 Thread aldyh at gcc dot gnu.org


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



--- Comment #4 from Aldy Hernandez aldyh at gcc dot gnu.org 2013-01-10 
17:46:39 UTC ---

I compared the code generated by trunk with the generated code in rev 190339

which broke the test.  The trunk code is more optimal than when the test

passed, so I suggest either removing the dg-final in the test, or modifying

the regex in the dg-final.



In the testcase we have something functionally equivalent to (where x is the

original function argument passed in f1):



  if (huge + x  0.0) {

if ((int)x  0)

  return 0.0;

...

  } else

return x;



When the test passed, we used to generate:



.L17:

ld %r8,.LC0@toc(%r2)

ld %r10,.LC2@toc(%r2)

lfd %f13,0(%r8)

lfd %f0,0(%r10)

fadd %f1,%f1,%f13

fcmpu %cr7,%f1,%f0

bng %cr7,.L4   /* if (!(huge + x  0.0)) return x; */

...

...



.L4:   /* return x; */

std %r9,-8(%r1)

ori 2,2,0

lfd %f1,-8(%r1)

blr



Notice that since we perform the fadd onto %f1, we need to reload %f1 from

memory.



On trunk though, we keep x/%f1 and 0.0/%f0 around so we can return them

directly.  We can return x/%f1 directly in one case, or copy 0.0/%f0 to the

return register (%f1) in the another case.



.L18:

ld %r8,.LC6@toc(%r2)

ld %r9,.LC1@toc(%r2)

lfd %f13,0(%r8)

lfd %f0,0(%r9)

fadd %f13,%f1,%f13

fcmpu %cr7,%f13,%f0

bnglr %cr7/* if (!(huge + x  0.0)) return x; */

cmpdi %cr7,%r10,0

fmr %f1,%f0

bgelr %cr7/* if (huge+x0.0  (int)x 0) return 0.0 */



Bottom line, on trunk we avoid a branch and memory load/stores.



Testing a patch.


[Bug tree-optimization/55927] FAIL: g++.dg/ipa/devirt-10.C -std=gnu++11 scan-ipa-dump-times inline Discovered a virtual call to a known target 1

2013-01-10 Thread jamborm at gcc dot gnu.org


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



Martin Jambor jamborm at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jamborm at gcc dot gnu.org



--- Comment #4 from Martin Jambor jamborm at gcc dot gnu.org 2013-01-10 
17:49:32 UTC ---

(In reply to comment #3)

 Martin,

 I guess it is yours then. Why we fail to analyze one call but suceed with 
 the

 another?



I have not looked at this ia64 bug specifically yet, but does my comment #1 in

PR 55913 answer your question?


[Bug target/55565] [4.8 regression] FAIL: gcc.target/powerpc/ppc-mov-1.c scan-assembler-not fmr [0-9]+,[0-9]+

2013-01-10 Thread pinskia at gcc dot gnu.org


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



--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org 2013-01-10 
17:53:24 UTC ---

(In reply to comment #4)

 Bottom line, on trunk we avoid a branch and memory load/stores.



I agree the code is much better now.  Only moving between the fpr and gpr where

needed instead of keeping x into the GPRs.


[Bug sanitizer/55488] Implement cold calls in tsan run-time

2013-01-10 Thread wmi at gcc dot gnu.org


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



--- Comment #1 from wmi at gcc dot gnu.org 2013-01-10 17:57:40 UTC ---

Author: wmi

Date: Thu Jan 10 17:57:34 2013

New Revision: 195092



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195092

Log:

2013-01-10  Wei Mi  w...@google.com



libsanitizer/

PR sanitizer/55488

* tsan/Makefile.am: Add tsan_rtl_amd64.S.

* tsan/Makefile.in: Regenerated.

* tsan/tsan_rtl.h: Enable HACKY_CALL.



Modified:

trunk/libsanitizer/ChangeLog

trunk/libsanitizer/tsan/Makefile.am

trunk/libsanitizer/tsan/Makefile.in

trunk/libsanitizer/tsan/tsan_rtl.h


[Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak

2013-01-10 Thread jamborm at gcc dot gnu.org


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



--- Comment #9 from Martin Jambor jamborm at gcc dot gnu.org 2013-01-10 
18:02:35 UTC ---

(In reply to comment #8)

  Let me look into those...

 

 Try the patch I attached to PR45375

 



I have updated to revision 195082 which I understand already has it

and tried again but it did not help.


[Bug tree-optimization/55264] [4.6/4.7/4.8 Regression] ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak

2013-01-10 Thread jamborm at gcc dot gnu.org


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



Martin Jambor jamborm at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |



--- Comment #10 from Martin Jambor jamborm at gcc dot gnu.org 2013-01-10 
18:14:44 UTC ---

And no wonder it did not because those failures are ICEs in

ipcp_verify_propagated_values.  So that's mine.


[Bug target/27338] Violation of mips o64 ABI

2013-01-10 Thread sje at gcc dot gnu.org


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



Steve Ellcey sje at gcc dot gnu.org changed:



   What|Removed |Added



 CC||sje at gcc dot gnu.org



--- Comment #2 from Steve Ellcey sje at gcc dot gnu.org 2013-01-10 18:34:11 
UTC ---

Richard, has the need for any documentation change been removed by the age of

this defect?  Perhaps it should just be closed now.


[Bug testsuite/54139] [4.8 regression] some ARM Thumb-2 tests appear to be run on ARMv5TE hardware causing unhandled exceptions

2013-01-10 Thread aldyh at gcc dot gnu.org


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



Aldy Hernandez aldyh at gcc dot gnu.org changed:



   What|Removed |Added



 CC||aldyh at gcc dot gnu.org

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

   |gnu.org |



--- Comment #1 from Aldy Hernandez aldyh at gcc dot gnu.org 2013-01-10 
19:31:42 UTC ---

I'll take a look.


[Bug bootstrap/55792] [4.8 Regression] Bad memory access with profiledbootstrap and LTO

2013-01-10 Thread hjl.tools at gmail dot com


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



--- Comment #32 from H.J. Lu hjl.tools at gmail dot com 2013-01-10 19:36:08 
UTC ---

(In reply to comment #30)

 LTO profiled-bootstrap revals:

 

 /space/rguenther/src/svn/trunk/gcc/reginfo.c: In function 'reg_scan':

 /space/rguenther/src/svn/trunk/gcc/reginfo.c:1015:0: error: location 
 references

 block not in block tree

  reg_scan (rtx f, unsigned int nregs ATTRIBUTE_UNUSED)

  ^

 ee

 fmt_351 = ee;

 

 /space/rguenther/src/svn/trunk/gcc/reginfo.c:1015:0: internal compiler error:

 verify_gimple failed

 

 this is a STRING_CST node.  Needs to be tracked down ... more IPA stuff needs

 to use copy_tree_without_location.



I think this BLOCK comes from LTO streamer.


[Bug middle-end/55929] lra-constraints-ICE while xg++ compile libitm with -Os

2013-01-10 Thread uros at gcc dot gnu.org


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



--- Comment #4 from uros at gcc dot gnu.org 2013-01-10 19:49:34 UTC ---

Author: uros

Date: Thu Jan 10 19:49:17 2013

New Revision: 195094



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195094

Log:

PR target/55929

* config/i386/i386.md (xbegin): Use %eax as a temporary register.





Modified:

trunk/gcc/ChangeLog

trunk/gcc/config/i386/i386.md


[Bug target/55929] lra-constraints-ICE while xg++ compile libitm with -Os

2013-01-10 Thread ubizjak at gmail dot com


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



Uros Bizjak ubizjak at gmail dot com changed:



   What|Removed |Added



 Target||x86

 Status|ASSIGNED|RESOLVED

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

   ||atches/2013-01/msg00568.htm

   ||l

  Component|middle-end  |target

 Resolution||FIXED

   Severity|major   |normal



--- Comment #5 from Uros Bizjak ubizjak at gmail dot com 2013-01-10 19:51:50 
UTC ---

Fixed.


[Bug rtl-optimization/55672] [4.8 Regression] -fstack-check=generic ICEs in print_reg, at config/i386/i386.c:13868

2013-01-10 Thread ubizjak at gmail dot com


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



--- Comment #10 from Uros Bizjak ubizjak at gmail dot com 2013-01-10 20:23:49 
UTC ---

Author: vmakarov

Date: Thu Jan 10 20:07:55 2013

New Revision: 195095



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195095

Log:

2013-01-10  Vladimir Makarov  vmaka...@redhat.com



PR rtl-optimization/pr55672

* lra-eliminations.c (mark_not_elimnable): Permit addition with

const to be elimnable.



2013-01-10  Vladimir Makarov  vmaka...@redhat.com



PR rtl-optimization/pr55672

* gcc.target/i386/pr55672.c: New.





Added:

trunk/gcc/testsuite/gcc.target/i386/pr55672.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/lra-eliminations.c

trunk/gcc/testsuite/ChangeLog


[Bug target/55565] [4.8 regression] FAIL: gcc.target/powerpc/ppc-mov-1.c scan-assembler-not fmr [0-9]+,[0-9]+

2013-01-10 Thread aldyh at gcc dot gnu.org


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



--- Comment #6 from Aldy Hernandez aldyh at gcc dot gnu.org 2013-01-10 
20:28:33 UTC ---

Author: aldyh

Date: Thu Jan 10 20:28:26 2013

New Revision: 195097



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195097

Log:

PR target/55565

* gcc.target/powerpc/ppc-mov-1.c: Update scan-assembler-not

regex.



Modified:

trunk/gcc/testsuite/ChangeLog

trunk/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c


[Bug target/55565] [4.8 regression] FAIL: gcc.target/powerpc/ppc-mov-1.c scan-assembler-not fmr [0-9]+,[0-9]+

2013-01-10 Thread aldyh at gcc dot gnu.org


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



Aldy Hernandez aldyh at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #7 from Aldy Hernandez aldyh at gcc dot gnu.org 2013-01-10 
20:29:41 UTC ---

Fixed in trunk.


[Bug fortran/49213] [OOP] gfortran rejects structure constructor expression

2013-01-10 Thread janus at gcc dot gnu.org


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



--- Comment #10 from janus at gcc dot gnu.org 2013-01-10 20:39:58 UTC ---

The following patch makes comment 8 and 9 compile, but I'm not sure if the

generated code is correct:



Index: gcc/fortran/trans-expr.c

===

--- gcc/fortran/trans-expr.c(revision 194927)

+++ gcc/fortran/trans-expr.c(working copy)

@@ -5990,23 +5990,11 @@ gfc_trans_subcomponent_assign (tree dest, gfc_comp

   gfc_add_expr_to_block (block, tmp);

 }

 }

-  else if (expr-ts.type == BT_DERIVED)

+  else if (expr-ts.type == BT_DERIVED  expr-expr_type == EXPR_STRUCTURE)

 {

-  if (expr-expr_type != EXPR_STRUCTURE)

-{

-  gfc_init_se (se, NULL);

-  gfc_conv_expr (se, expr);

-  gfc_add_block_to_block (block, se.pre);

-  gfc_add_modify (block, dest,

-   fold_convert (TREE_TYPE (dest), se.expr));

-  gfc_add_block_to_block (block, se.post);

-}

-  else

-{

-  /* Nested constructors.  */

-  tmp = gfc_trans_structure_assign (dest, expr);

-  gfc_add_expr_to_block (block, tmp);

-}

+  /* Nested constructors.  */

+  tmp = gfc_trans_structure_assign (dest, expr);

+  gfc_add_expr_to_block (block, tmp);

 }

   else

 {


[Bug inline-asm/55934] [4.8 Regression] LRA inline asm error recovery

2013-01-10 Thread pinskia at gcc dot gnu.org


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



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||ice-on-invalid-code

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-01-10

 CC||pinskia at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2013-01-10 
21:17:05 UTC ---

Confirmed.


[Bug target/55721] -mabi=64 compilation results in unknown UNSPEC note

2013-01-10 Thread rsandifo at gcc dot gnu.org


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



--- Comment #14 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 
2013-01-10 21:32:24 UTC ---

(In reply to comment #12)

 Here is another testcase that looks different then the others, it is cutdown

 from newlib/libm/math/k_rem_pio2.c.

 

 % cat bug3.c

 static const int init_jk[] = {2,3,4,6};

 double twon24  =  5.9604644775390625e-08;

 int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec) 

 {

 int jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;

 double z,fw,f[20],fq[20],q[20];

 jk = init_jk[prec];

 jz = jk;

 for(i=0,j=jz,z=q[jz];j0;i++,j--) {

 fw = (double)((int)(twon24* z));

 }

 switch(prec) {

 case 0:

 y[0] =  fq[0]; y[1] =  fq[1]; y[2] =  fw;

 }

 }

 

 % gcc -mips64r2 -mabi=64 -c -O2 -g bug3.c

 

 bug3.c: In function '__kernel_rem_pio2':

 bug3.c:3:5: note: non-delegitimized UNSPEC unknown (230) found in variable

 location

  int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec) 

  ^

 bug3.c:3:5: note: non-delegitimized UNSPEC unknown (230) found in variable

 location



I've extended the patch to cope with the case in comment 10/comment 11

by adding an optional negation to each piece of the address.

But I'm not sure what to do about the case in comment 12.  The problem

there is that vartracking is creating notes for the temporary (incomplete)

results in an lea64 expansion,  I wondered at first whether that was

because we were reusing the register rtx that holds the final (full)

address to store intermediate results, but changing that didn't seem

to make any difference.



I suppose we could get rid of the unspecs by turning things like

SYMBOL_64_HIGH into ((x + 0x800080008000)  48)  0x.  But although

that's possible, is it actually _useful_?  I think in practice only

the complete address will be of interest for debugging, and any attempt

to output partial addresses will bloat the output for no benefit.

And it doesn't really seem worth adding a target hook to test for

these cases because AIUI the lack of delegitimisation already causes

us to drop the values (albeit noisily for --enable-checking).


[Bug lto/55937] New: lto hides possible link issues

2013-01-10 Thread boris at fau dot re


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



 Bug #: 55937

   Summary: lto hides possible link issues

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: minor

  Priority: P3

 Component: lto

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

ReportedBy: bo...@fau.re





When compiling the following on linux where gethrtime is not defined, it links

with -O1 but not with -O0:



char gethrtime ();

char (*f) () = gethrtime;

int main () {

return f != gethrtime;

}



'gcc-4.7.2 -O1 -flto -o conftest conftest.c' works, while 'gcc-4.7.2 -O0 -flto

-o conftest conftest.c' outputs:

/tmp/ccT5O10r.ltrans0.ltrans.o: In function `main':

ccT5O10r.ltrans0.o:(.text+0xd): undefined reference to `gethrtime'

/tmp/ccT5O10r.ltrans0.ltrans.o:(.data+0x0): undefined reference to `gethrtime'

collect2: error: ld returned 1 exit status



Compiling with -fwhole-program, it would fail as expected:

'gcc-4.7.2 -O1 -fwhole-program -o conftest conftest.c' outputs:

/tmp/ccaHfhb0.o:(.rodata+0x0): undefined reference to `gethrtime'

collect2: error: ld returned 1 exit status



That code is actually produced by the following autoconf macro while

configuring erlang-R15B02:

AC_CHECK_FUNC(gethrtime)

The macro would include limits.h but since it's not defined, the same

behaviour is shown without that include.


[Bug lto/55937] lto hides possible link issues

2013-01-10 Thread pinskia at gcc dot gnu.org


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



--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2013-01-10 
21:47:29 UTC ---

I think this is really invalid and the check (autoconf) should be changed

instead.  What is happening is f is known to be used outside of the program. 

If f is marked as externally_visible then it would not remove the variable f.


[Bug c++/55742] __attribute__ in class function declaration cause prototype does not match errors.

2013-01-10 Thread tmsriram at google dot com


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



Sriraman Tallam tmsriram at google dot com changed:



   What|Removed |Added



 CC||richard.guenther at gmail

   ||dot com



--- Comment #7 from Sriraman Tallam tmsriram at google dot com 2013-01-10 
22:10:14 UTC ---

Jason/Richard, Would like to hear your thoughts on this.


[Bug target/54300] [4.7 Regression] Erroneous optimization causes wrong Neon data management

2013-01-10 Thread pinskia at gcc dot gnu.org


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



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



  Known to work||4.8.0

Summary|[4.7/4.8 Regression]|[4.7 Regression] Erroneous

   |Erroneous optimization  |optimization causes wrong

   |causes wrong Neon data  |Neon data management

   |management  |

  Known to fail|4.8.0   |



--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org 2013-01-10 
22:19:25 UTC ---

I could not reproduce this in a modified 4.7.0 which has patches from the

trunk.

I think it was fixed by http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01732.html

.


[Bug fortran/55935] [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs with bogus BLOCK

2013-01-10 Thread dominiq at lps dot ens.fr


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



--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-01-10 
22:35:06 UTC ---

Shorter test case for gfortran.dg/typebound_operator_*:



module i_field_module

  implicit none

  type :: i_field

integer :: i

  end type

contains

  function i_plus_i(lhs)

class(i_field) ,intent(in)  :: lhs

class(i_field) ,allocatable :: i_plus_i

allocate (i_plus_i, source = i_field (0))

  end function

  function i_multiply_real(lhs)

class(i_field) ,intent(in)  :: lhs

class(i_field) ,allocatable :: i_multiply_real

allocate (i_multiply_real, source = i_field (0))

  end function

end module



Note that if the 'class's are replaced with 'type's, the program compiles.


[Bug fortran/55935] [OOP] Fortran fronted has ADDR_EXPRs of FUNCTION_DECLs with bogus BLOCK

2013-01-10 Thread dominiq at lps dot ens.fr


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



--- Comment #6 from Dominique d'Humieres dominiq at lps dot ens.fr 2013-01-10 
23:10:39 UTC ---

 Note that if the 'class's are replaced with 'type's, the program compiles.



The assert also triggers if



class(i_field) ,intent(in)  :: lhs



is replaced with



type(i_field) ,intent(in)  :: lhs


[Bug sanitizer/55938] New: g++.dg/asan/deep-stack-uaf-1.C fails at r195092 on darwin

2013-01-10 Thread howarth at nitro dot med.uc.edu


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



 Bug #: 55938

   Summary: g++.dg/asan/deep-stack-uaf-1.C fails at r195092 on

darwin

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: sanitizer

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

ReportedBy: howa...@nitro.med.uc.edu

CC: do...@gcc.gnu.org, dvyu...@gcc.gnu.org,

ja...@gcc.gnu.org, k...@gcc.gnu.org





After the commit of r195092, x86_64-apple-darwin12 exhibits new failures. These

are of the form...



FAIL: g++.dg/asan/deep-stack-uaf-1.C  -O0  output pattern test, is

=

==47472== ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs

free) on 0x00010bb0ae00

#0 0x108cb6cc5

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/x86_64-apple-darwin12.2.0/./libsanitizer/asan/.libs/libasan.0.dylib+0x8cc5)

#1 0x108cb6e4a

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/x86_64-apple-darwin12.2.0/./libsanitizer/asan/.libs/libasan.0.dylib+0x8e4a)

#2 0x108c9da27

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x10a27)

#3 0x108c9ee77

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11e77)

#4 0x108c9ee5d

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11e5d)

#5 0x108c9ee43

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11e43)

#6 0x108c9ee29

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11e29)

#7 0x108c9ee0f

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11e0f)

#8 0x108c9edf5

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11df5)

#9 0x108c9eddb

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11ddb)

#10 0x108c9edc1

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11dc1)

#11 0x108c9eda7

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11da7)

#12 0x108c9ed8d

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11d8d)

#13 0x108c9ed73

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11d73)

#14 0x108c9ed59

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11d59)

#15 0x108c9ed3f

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11d3f)

#16 0x108c9ed25

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11d25)

#17 0x108c9ed0b

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11d0b)

#18 0x108c9ecf1

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11cf1)

#19 0x108c9ecd7

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11cd7)

#20 0x108c9ecbd

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11cbd)

#21 0x108c9eca3

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11ca3)

#22 0x108c9ec89

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11c89)

#23 0x108c9ec6f

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11c6f)

#24 0x108c9ec55

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11c55)

#25 0x108c9ec3b

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11c3b)

#26 0x108c9ec21

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11c21)

#27 0x108c9ec07

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11c07)

#28 0x108c9ebed

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11bed)

#29 0x108c9ebd3

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11bd3)

#30 0x108c9ebb9

(/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/testsuite/g++/./deep-stack-uaf-1.exe+0x11bb9)

#31 0x108c9eb9f


[Bug sanitizer/55938] g++.dg/asan/deep-stack-uaf-1.C fails at r195092 on darwin

2013-01-10 Thread kcc at gcc dot gnu.org


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



Kostya Serebryany kcc at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-01-11

 Ever Confirmed|0   |1



--- Comment #1 from Kostya Serebryany kcc at gcc dot gnu.org 2013-01-11 
06:36:44 UTC ---

The tests have bugs: 

gcc/testsuite/g++.dg/asan/deep-stack-uaf-1.C



  char *x = new char[10];

...

  ::free(x);



The new asan run-time detects the new/free mismatch

and crashes before it detects the expected use-after-free bug. 

These tests in gcc/testsuite were forked from the upstream variant,

which is already fixed. 



What is surprising is why I don't see these failures on Linux.