[Bug middle-end/61335] New: [4.10 Regression] wrong code with -O2 -fbounds-check

2014-05-28 Thread Joost.VandeVondele at mat dot ethz.ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61335

Bug ID: 61335
   Summary: [4.10 Regression] wrong code with -O2 -fbounds-check
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: Joost.VandeVondele at mat dot ethz.ch

Created attachment 32868
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32868action=edit
reduced testcase

The attached testcase is miscompiled with current trunk. A recent regression
caused in the day between good: r210955 and bad: r210994

To reproduce compile and run the attached testcase as :

 gfortran -O2 -fbounds-check cp_units.f90 ; ./a.out
 BUG : XXXfs^-1XXX integer expected
STOP 1

while e.g. '-O2' alone or '-fbound-check -O1' work fine.


[Bug middle-end/61335] [4.10 Regression] wrong code with -O2 -fbounds-check

2014-05-28 Thread Joost.VandeVondele at mat dot ethz.ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61335

Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch changed:

   What|Removed |Added

 CC||Joost.VandeVondele at mat dot 
ethz
   ||.ch

--- Comment #1 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
---
might not mean much, but -fno-tree-vrp fixes the testcase, so possibly caused
by r210966 ?


[Bug bootstrap/61315] wide-int.cc cannot be built by darwin system compiler

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61315

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

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #11 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Francois-Xavier Coudert from comment #4)
 This sounds a lot like believing you can build the better product by
 assigning blame to others, not by building something that works for users.
 I'm sorry if that's become the GCC philosophy.

To be a GCC dev you don't have to adhere to some kind of apple^Mgnu-fandom, and
each of them may have a different opinion on a particular subject, so do not
mistake the opinion of one developer for a general GCC philosophy. There is
no such thing.

[Bug c/61336] New: ICE on alpha: in print_operand_address, at config/alpha/alpha.c:5454

2014-05-28 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61336

Bug ID: 61336
   Summary: ICE on alpha: in print_operand_address, at
config/alpha/alpha.c:5454
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
Target: alpha

Created attachment 32869
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32869action=edit
Failing preprocessed source being malloc/malloc.c from glibc

ICE noted with Debian gcc-4.8.3 and now verified with trunk when compiling
malloc.c from glibc on alpha.  Preprocessed source attached.

/home/mjc/toolchain/gcc-build/./gcc/xgcc -B/home/mjc/toolchain/gcc-build/./gcc/
ccjDEL1Z.c -c -std=gnu99 -fgnu89-inline  -O2 -Wall -Winline -Wwrite-strings
-fmerge-all-constants -frounding-math -g -pipe -Wstrict-prototypes
-mlong-double-128 -mieee -mfp-rounding-mode=d  -fpic
In file included from malloc.c:1878:0:
arena.c: In function ‘ptmalloc_unlock_all2’:
arena.c:303:33: warning: right-hand operand of comma expression has no effect
[-Wunused-value]
arena.c:313:25: warning: right-hand operand of comma expression has no effect
[-Wunused-value]
In file included from malloc.c:1878:0:
arena.c: In function ‘_int_new_arena’:
arena.c:768:24: warning: right-hand operand of comma expression has no effect
[-Wunused-value]
malloc.c: In function ‘__libc_mallopt’:
malloc.c:4833:1: internal compiler error: in print_operand_address, at
config/alpha/alpha.c:5468
0x120a110cf print_operand_address(_IO_FILE*, rtx_def*)
../../gcc.git/gcc/config/alpha/alpha.c:5468
0x1206b3aa7 default_print_operand_address(_IO_FILE*, rtx_def*)
../../gcc.git/gcc/targhooks.c:344
0x12039cc87 output_address(rtx_def*)
../../gcc.git/gcc/final.c:3838
0x120a10e83 print_operand(_IO_FILE*, rtx_def*, int)
../../gcc.git/gcc/config/alpha/alpha.c:5345
0x1206b3a77 default_print_operand(_IO_FILE*, rtx_def*, int)
../../gcc.git/gcc/targhooks.c:330
0x12039cb87 output_operand(rtx_def*, int)
../../gcc.git/gcc/final.c:3822
0x12039d267 output_asm_insn
../../gcc.git/gcc/final.c:3720
0x12039ec2f output_asm_insn
../../gcc.git/gcc/final.c:2643
0x12039ec2f final_scan_insn(rtx_def*, _IO_FILE*, int, int, int*)
../../gcc.git/gcc/final.c:2594
0x12039ef23 final(rtx_def*, _IO_FILE*, int)
../../gcc.git/gcc/final.c:2025
0x12039f533 rest_of_handle_final
../../gcc.git/gcc/final.c:
0x12039f533 execute
../../gcc.git/gcc/final.c:4518
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.
{standard input}: Assembler messages:
{standard input}:14226: Warning: end of file in string; '' inserted
{standard input}: Warning: .ent directive without matching .end
{standard input}: Error: open CFI at the end of file; missing .cfi_endproc
directive

[Bug bootstrap/61315] wide-int.cc cannot be built by darwin system compiler

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61315

--- Comment #12 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Jack Howarth from comment #6)
 I would also add that you are playing with fire here. Currently no company
 has a motivation to expend money or resources for fortran development on
 llvm as long as FSF gcc is buildable. If you start removing competing
 compilers from bootstrapping FSF gcc, it is much more likely that someone
 will fund such a llvm-based fortran compiler project. You may get some
 short-term satisfaction from walling off FSF-gcc from clang, the long-term
 outcome for the FSF gcc project might not be so happy.

Is any company spending money on GCC Fortran development? That would be awesome
if it were true!

I also doubt that somebody will decide to fund a whole llvm-fortran compiler
instead of simply installing GCC 4.2, which should still be able to bootstrap
GCC trunk. It would be a strange business decision, unless the goal was to
build a proprietary compiler by leeching off volunteer unpaid developers. That
would make sense then.

Since you are offering advice, let me humbly offer some back to you: Why not
instead of starting a confrontation with Andrew and invoking some
strange-sounding threats, you propose a patch to fix the problem? That seems to
me much more constructive. Moreover, you don't even need to convince Andrew (or
me), you just need your patch to be approved by one of the Global Reviewers (or
the maintainers responsible for that part of the compiler). See
gcc/MAINTAINERS. I don't see your name in that list, perhaps it would be a good
time to start the steps to add it: https://gcc.gnu.org/contribute.html

BTW, having a user-base without developers coming out of that user-base is
useless. If no one from apple-darwin is interested in developing GCC, then it
doesn't matter how big the user base is: GCC for apple-darwin will not get
developed by magic gnomes (or by people that don't even own Apple hardware). So
perhaps it would be in your own interest to do a bit of recruiting in the
apple-darwin camp.

[Bug lto/61123] With LTO, -fno-short-enums is ignored, resulting in ABI mis-matching in linking.

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61123

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
It seems that Tag_ABI_PCS_wchar_t is emitted from the C-family frontends only
via config/arm/arm-c.c (as opposed to any other Tags).  Probably because
the option is c-family specific.  This code needs to move to generic handling
(the option enum is shared across all frontends, so that's not a reason to
keep it in a C specific file).


[Bug fortran/61337] New: Wrong indexing and runtime crash with unlimited polymorphic array.

2014-05-28 Thread vladimir.fuka at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61337

Bug ID: 61337
   Summary: Wrong indexing and runtime crash with unlimited
polymorphic array.
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vladimir.fuka at gmail dot com

module array_list

  type container
class(*), allocatable :: items(:)
  end type


contains

  subroutine add_item(a, e)
type(container),allocatable,intent(inout) :: a(:)
class(*),intent(in) :: e(:)
type(container),allocatable :: tmp(:)

  if (.not.allocated(a)) then
allocate(a(1))
allocate(a(1)%items(size(e)), source = e)
  else
call move_alloc(a,tmp)
allocate(a(size(tmp)+1))
a(1:size(tmp)) = tmp
allocate(a(size(tmp)+1)%items(size(e)), source = e)
  end if
   end subroutine

end module



  use array_list

  type(container), allocatable :: a_list(:)

  call add_item(a_list, [1, 2])

  call print(a_list(1))

contains

  subroutine print(c)
type(container), intent(in) :: c

if (allocated(c%items)) then
  select type (x=c%items)
type is (integer)
  print *, x
  end select
end if
  end subroutine

end




 gfortran-4.9 alist-bug.f90 -fcheck=all -g -fbacktrace

 ./a.out 
   2   0


Expected:  1   2



With 

  call add_item(a_list, [1, 2])
  call add_item(a_list, [1, 2])

  do i = 1, size(a_list)
call print(a_list(i))
  end do


it crashes SIGSEGVs on line:
  allocate(a(size(tmp)+1)%items(size(e)), source = e)


Tested and works on Solaris Studio 12.4.

 sunf90 alist-bug.f90 
 ./a.out 
 1 2
 1 2


[Bug lto/61334] [4.10 Regression] lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61334

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
easiest is to avoid using strnlen


[Bug lto/61334] [4.10 Regression] lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61334

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.10.0


[Bug tree-optimization/61335] [4.10 Regression] wrong code with -O2 -fbounds-check

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61335

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-05-28
  Component|middle-end  |tree-optimization
   Target Milestone|--- |4.10.0
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed, investigating.


[Bug target/61044] Computed goto on AVR fails to use word-addressing

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044

--- Comment #4 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Author: gjl
Date: Wed May 28 08:42:25 2014
New Revision: 210999

URL: http://gcc.gnu.org/viewcvs?rev=210999root=gccview=rev
Log:
PR target/61044
* doc/extend.texi (Local Labels): Note that label differences are
not supported for AVR.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/extend.texi


[Bug target/61044] Computed goto on AVR fails to use word-addressing

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044

--- Comment #5 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Author: gjl
Date: Wed May 28 08:44:23 2014
New Revision: 211000

URL: http://gcc.gnu.org/viewcvs?rev=211000root=gccview=rev
Log:
PR target/61044
* doc/extend.texi (Local Labels): Note that label differences are
not supported for AVR.


Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/doc/extend.texi


[Bug tree-optimization/61335] [4.10 Regression] wrong code with -O2 -fbounds-check

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61335

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Wow, really old serious bug in VRP.


[Bug target/61044] Computed goto on AVR fails to use word-addressing

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044

--- Comment #6 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Author: gjl
Date: Wed May 28 08:48:03 2014
New Revision: 211001

URL: http://gcc.gnu.org/viewcvs?rev=211001root=gccview=rev
Log:
PR target/61044
* doc/extend.texi (Local Labels): Note that label differences are
not supported for AVR.


Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/doc/extend.texi


[Bug target/61044] Computed goto on AVR fails to use word-addressing

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044

--- Comment #7 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Author: gjl
Date: Wed May 28 08:50:18 2014
New Revision: 211002

URL: http://gcc.gnu.org/viewcvs?rev=211002root=gccview=rev
Log:
PR target/61044
* doc/extend.texi (Local Labels): Note that label differences are
not supported for AVR.


Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/doc/extend.texi


[Bug tree-optimization/61335] [4.10 Regression] wrong code with -O2 -fbounds-check

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61335

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Created attachment 32870
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32870action=edit
patch


[Bug target/61044] Computed goto on AVR fails to use word-addressing

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044

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

   What|Removed |Added

   Priority|P3  |P4
 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID
   Target Milestone|--- |4.9.1

--- Comment #8 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Closed as INVALID after adding a note to the manual that label differences are
not supported for AVR.


[Bug tree-optimization/61338] New: too many permutation in a vectorized reverse loop

2014-05-28 Thread vincenzo.innocente at cern dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61338

Bug ID: 61338
   Summary: too many permutation in a vectorized reverse loop
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vincenzo.innocente at cern dot ch

in this example gcc generates 4 permutations for foo (while none is required)
On the positive side the code for bar (which is a more realistic use case)
seems optimal.

float x[1024];
float y[1024];
float z[1024];

void foo() {
  for (int i=0; i512; ++i)
x[1023-i] += y[1023-i]*z[512-i];
}


void bar() {
  for (int i=0; i512; ++i)
x[1023-i] += y[i]*z[i+512];
}

c++ -Ofast -march=haswell -S revloop.cc; cat revloop.s

__Z3foov:
LFB0:
vmovdqaLC0(%rip), %ymm2
xorl%eax, %eax
leaq4064+_x(%rip), %rdx
leaq4064+_y(%rip), %rsi
leaq2020+_z(%rip), %rcx
.align 4,0x90
L2:
vpermd(%rdx,%rax), %ymm2, %ymm0
vpermd(%rcx,%rax), %ymm2, %ymm1
vpermd(%rsi,%rax), %ymm2, %ymm3
vfmadd231ps%ymm1, %ymm3, %ymm0
vpermd%ymm0, %ymm2, %ymm0
vmovaps%ymm0, (%rdx,%rax)
subq$32, %rax
cmpq$-2048, %rax
jneL2
vzeroupper
ret
LFE0:
.section __TEXT,__text_cold,regular,pure_instructions
LCOLDE1:
.text
LHOTE1:
.section __TEXT,__text_cold,regular,pure_instructions
LCOLDB2:
.text
LHOTB2:
.align 4,0x90
.globl __Z3barv
__Z3barv:
LFB1:
vmovdqaLC0(%rip), %ymm1
leaq2048+_z(%rip), %rdx
leaq_y(%rip), %rcx
leaq4064+_x(%rip), %rax
leaq4096+_z(%rip), %rsi
.align 4,0x90
L6:
vmovaps(%rdx), %ymm2
addq$32, %rdx
vpermd(%rax), %ymm1, %ymm0
addq$32, %rcx
vfmadd231ps-32(%rcx), %ymm2, %ymm0
subq$32, %rax
vpermd%ymm0, %ymm1, %ymm0
vmovaps%ymm0, 32(%rax)
cmpq%rsi, %rdx
jneL6
vzeroupper
ret
LFE1:


[Bug lto/61334] [4.10 Regression] lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope

2014-05-28 Thread tschwinge at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61334

Thomas Schwinge tschwinge at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-05-28
 CC||tschwinge at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |tschwinge at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Thomas Schwinge tschwinge at gcc dot gnu.org ---
Patch posted at https://gcc.gnu.org/ml/gcc-patches/2014-05/msg02396.html;
please test.


[Bug tree-optimization/61338] too many permutation in a vectorized reverse loop

2014-05-28 Thread vincenzo.innocente at cern dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61338

--- Comment #1 from vincenzo Innocente vincenzo.innocente at cern dot ch ---
if I write it reverse
void foo2() {
  for (int i=511; i=0; --i)
x[1023-i] += y[1023-i]*z[512-i];
}

its ok
__Z4foo2v:
LFB1:
leaq2048+_x(%rip), %rdx
xorl%eax, %eax
leaq4+_z(%rip), %rsi
leaq2048+_y(%rip), %rcx
.align 4,0x90
L6:
vmovaps(%rdx,%rax), %ymm1
vmovups(%rsi,%rax), %ymm0
vfmadd132ps(%rcx,%rax), %ymm1, %ymm0
vmovaps%ymm0, (%rdx,%rax)
addq$32, %rax
cmpq$2048, %rax
jneL6
vzeroupper
ret


[Bug c/61339] New: wide-int.h: 3 * mismatched tags

2014-05-28 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61339

Bug ID: 61339
   Summary: wide-int.h: 3 * mismatched tags
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com

1.

../../src/trunk/gcc/wide-int.h:987:1: warning: 'wide_int_storage' defined as a
class here but previously declared as a struct [-Wmismatched-tags]

$ fgrep -n wide_int_storage *.h | egrep class|struct
wide-int.h:287:struct wide_int_storage;
wide-int.h:987:class GTY(()) wide_int_storage

2.

../../src/trunk/gcc/wide-int.h:639:1: warning: 'generic_wide_int' defined as a
class template here but previously declared as a struct template
[-Wmismatched-tags]

$ fgrep -n generic_wide_int *.h *.c | egrep class|struct
wide-int.h:285:template typename T struct generic_wide_int;
wide-int.h:639:class GTY(()) generic_wide_int : public storage

3.
../../src/trunk/gcc/wide-int.h:1127:1: warning: 'fixed_wide_int_storage'
defined as a class template here but previously declared as a struct template
[-Wmismatched-tags]

$ fgrep -n fixed_wide_int_storage *.h *.c | egrep class|struct
wide-int.h:286:template int N struct fixed_wide_int_storage;
wide-int.h:1127:class GTY(()) fixed_wide_int_storage


[Bug c/61340] New: ipa-pure-const.c, ipa-reference.c: possible missing switch cases ?

2014-05-28 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61340

Bug ID: 61340
   Summary: ipa-pure-const.c, ipa-reference.c: possible missing
switch cases ?
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com

1.

trunk/gcc/ipa-pure-const.c:1270:16: warning: enumeration value 'IPA_REF_ALIAS'
not handled in switch [-Wswitch]

Source code is

  switch (ref-use)

Some code to deal with the IPA_REF_ALIAS might be a good idea.

2.

trunk/gcc/ipa-reference.c:474:15: warning: enumeration value 'IPA_REF_ALIAS'
not handled in switch [-Wswitch]

Source code is

  switch (ref-use)


[Bug libgcc/61152] Missing GCC Runtime Library Exception in some files that are included in libgcc

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61152

--- Comment #5 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Author: gjl
Date: Wed May 28 09:33:04 2014
New Revision: 211004

URL: http://gcc.gnu.org/viewcvs?rev=211004root=gccview=rev
Log:
gcc/
PR libgcc/61152
* config/dbx.h (License): Add Runtime Library Exception.
* config/newlib-stdint.h (License): Same.
* config/rtems.h (License): Same
* config/initfini-array.h (License): Same
* config/v850/v850.h (License): Same.
* config/v850/v850-opts.h (License): Same
* config/v850/rtems.h (License): Same.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/dbx.h
trunk/gcc/config/initfini-array.h
trunk/gcc/config/newlib-stdint.h
trunk/gcc/config/rtems.h
trunk/gcc/config/v850/rtems.h
trunk/gcc/config/v850/v850-opts.h
trunk/gcc/config/v850/v850.h


[Bug libgcc/61152] Missing GCC Runtime Library Exception in some files that are included in libgcc

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61152

--- Comment #6 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Author: gjl
Date: Wed May 28 09:35:19 2014
New Revision: 211005

URL: http://gcc.gnu.org/viewcvs?rev=211005root=gccview=rev
Log:
gcc/
PR libgcc/61152
* config/dbx.h (License): Add Runtime Library Exception.
* config/newlib-stdint.h (License): Same.
* config/rtems.h (License): Same
* config/initfini-array.h (License): Same
* config/v850/v850.h (License): Same.
* config/v850/v850-opts.h (License): Same
* config/v850/rtems.h (License): Same.


Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/config/dbx.h
branches/gcc-4_9-branch/gcc/config/initfini-array.h
branches/gcc-4_9-branch/gcc/config/newlib-stdint.h
branches/gcc-4_9-branch/gcc/config/rtems.h
branches/gcc-4_9-branch/gcc/config/v850/rtems.h
branches/gcc-4_9-branch/gcc/config/v850/v850-opts.h
branches/gcc-4_9-branch/gcc/config/v850/v850.h


[Bug libgomp/61333] potential target specific performance issue with libgomp

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61333

--- Comment #8 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Some comments:

original shell: 1:1.86:2.9
+ -Ofast  : 1:1.37:1.8

(gcc 4.10.0 r210749). Does this mean that there is a problem with -Ofast and
-fopenmp?

The Wallclock time are:

original shell: 46.49s:25.83s:16.02s
+ -Ofast  : 7.82s:5.72s:4.21s

Estimating an Amdahl's law: s+p/n (s serial time, p parallel time, n number of
threads), based on n=1 and 2, gives

original shell: s= 5.17s, p=41.32s, time for n=4: 15.50s,
+ -Ofast  : s=3.63s, p=4.19s, time for n=4: 4.68s.

This crude estimate shows that the serial time is only slightly improved with
-Ofast while the parallel one is an order of magnitude faster with it.

Could you give the Wallclock time for the different cases in comment 0?


[Bug libgomp/61333] potential target specific performance issue with libgomp

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61333

--- Comment #9 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 ... (gcc 4.10.0 r210749) ...

Forgot to say: Target: x86_64-apple-darwin13, Corei7, 4 cores, 8 threads,
2.8Ghz
(turbo 3.8Ghz), cache 8Mb. Note that the turbo mode may make the serial test
faster.


[Bug c++/60245] function with using defined parameter not accepted as constexpr parameter

2014-05-28 Thread florent.hivert at lri dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60245

Florent Hivert florent.hivert at lri dot fr changed:

   What|Removed |Added

Version|4.8.1   |4.9.0

--- Comment #3 from Florent Hivert florent.hivert at lri dot fr ---
The problem remains with the newly released gcc 4.9.0. I upgraded the version
tag.


[Bug c/61339] wide-int.h: 3 * mismatched tags

2014-05-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61339

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
This is a really stupid warning that only exists because the MS compiler has
(or had) a bug that treats 'struct' and 'class' differently. GCC (and Clang)
correctly implement the C++ standard which says it doesn't matter.


[Bug c++/60430] static_assert and reference to const/constexpr

2014-05-28 Thread florent.hivert at lri dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60430

Florent Hivert florent.hivert at lri dot fr changed:

   What|Removed |Added

Version|4.8.1   |4.9.0

--- Comment #1 from Florent Hivert florent.hivert at lri dot fr ---
The problem remains with the newly released GCC 4.9.0. I've upgraded the tag.


[Bug c++/60967] ICE with range for in template function with C++11 and cilkplus

2014-05-28 Thread florent.hivert at lri dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60967

--- Comment #1 from Florent Hivert florent.hivert at lri dot fr ---
The problem doesn't occur anymore with the released version (I was using the
cilkplus branch development version). Should this be closed as invalid or
should someone find if there is a duplicate ?


[Bug libgomp/61333] potential target specific performance issue with libgomp

2014-05-28 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61333

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org ---
Note, libgomp is optimized for Linux futexes, it has bare support for other
targets, so unless somebody steps up and submits and maintains a port for other
OSes, those will keep using pthread_* APIs with no particular performance work.

So, if you want to do any benchmarking, do it on Linux, not on darwin.

Also, benchmarking -O0 code is weird.

The benchmark looks prehistoric too, even OpenMP 3.1 has min/max reductions.


[Bug bootstrap/61315] wide-int.cc cannot be built by darwin system compiler

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61315

--- Comment #13 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 BTW, having a user-base without developers coming out of that user-base is
 useless. If no one from apple-darwin is interested in developing GCC, then
 it doesn't matter how big the user base is: GCC for apple-darwin will not get
 developed by magic gnomes (or by people that don't even own Apple hardware).
 So perhaps it would be in your own interest to do a bit of recruiting in the 
 apple-darwin camp.

In my paranoid days I have the feeling that I don't exist on the gcc
lists!-(although I am only interested by gfortran and optimization, I do what I
can to keep the test suite as clean as possible for darwin: bug reports,
debugging when I can, ...). Iain Sandoe may have a similar feeling too, even if
he has a significant contribution in fixing darwin problem.

I also acknowledge that most of the GCC developers are quite helpful and that
some of them consider their duty to fix their bugs even on darwin. However I
consider that comments such that darwin is broken by design, darwin sucks,
... are unprofessional.

Last thing I want to say, I have seen several bugs blamed to drawing that were
gcc bugs and also several unfixable on darwin features that got fixed by gcc
improvements.


[Bug c++/61341] New: internal compiler error: in tsubst, at cp/pt.c:11313

2014-05-28 Thread vanyacpp at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61341

Bug ID: 61341
   Summary: internal compiler error: in tsubst, at cp/pt.c:11313
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vanyacpp at gmail dot com

GCC 4.8.2

templatetypename ...T  /* 1 */
struct X
{
};

templatetypename T
struct XXT, XT/* 2 */
{
 T i;
};

templatetypename ...T
struct XXT, T..   /* 3 */
{
 const int static value = sizeof...(T);
};

templateint
struct Y
{
};

template
struct Y2
{
 const static int value;
};

int main(int ARGC, char *ARGV[])
{
 //Xint, int xii; // 1
 //xii.i; // error

 //XXint, Xint  xxixi; // 2 
 //xxixi.i; // ok

  YXXint, int, double, Xdouble, int, double ::value::value;  
}


[Bug tree-optimization/61338] too many permutation in a vectorized reverse loop

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61338

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 Blocks||53947
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.  We fail to detect that all DRs are accessed reverse which is the
case where we can drop the permutes.  We also fail to reverse the
positive vectors if they happen to be lower in number:

float x[1024];
float y[1024];
float z[1024];

void foo() {
for (int i=0; i512; ++i)
  x[i] += y[1023-i]*z[512-i];
}

produces

.L2:
vpermd  (%rdx), %ymm1, %ymm0
subq$32, %rdx
vpermd  (%rcx), %ymm1, %ymm2
addq$32, %rax
vfmadd213ps -32(%rax), %ymm2, %ymm0
subq$32, %rcx
vmovaps %ymm0, -32(%rax)
cmpq$z-28, %rdx
jne .L2

instead of permuting the result before storing it.


[Bug c++/61341] internal compiler error: in tsubst, at cp/pt.c:11313

2014-05-28 Thread vanyacpp at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61341

--- Comment #1 from Ivan Sorokin vanyacpp at gmail dot com ---
Reduced case:

templateclass ...T
struct X
{};

templateclass ...T
void foo(XT, T.. a);

void test()
{
foo(Xint, int, double(), Xdouble, int, double());
}


[Bug c/61339] add mismatch between struct and class to non-bugs

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61339

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 CC||manu at gcc dot gnu.org
Summary|wide-int.h: 3 * mismatched  |add mismatch between struct
   |tags|and class to non-bugs
 Ever confirmed|0   |1
   Severity|minor   |enhancement

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Jonathan Wakely from comment #1)
 This is a really stupid warning that only exists because the MS compiler has
 (or had) a bug that treats 'struct' and 'class' differently. GCC (and Clang)
 correctly implement the C++ standard which says it doesn't matter.

I don't think patches that fix the mismatch will be rejected, but also don't
expect someone else to care enough to write them and submit them.

On the other hand, it would be handy to keep this around as a reminder to add
this to the list of non-bugs for future reference:

https://gcc.gnu.org/bugs/#nonbugs

And also in case someone is actually interested in adding this warning (perhaps
it could be enabled by -fms-extensions).

[Bug c/61340] ipa-pure-const.c, ipa-reference.c: possible missing switch cases ?

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61340

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

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to David Binderman from comment #0)
 1.
 
 trunk/gcc/ipa-pure-const.c:1270:16: warning: enumeration value
 'IPA_REF_ALIAS' not handled in switch [-Wswitch]
 
 Source code is
 
   switch (ref-use)
 
 Some code to deal with the IPA_REF_ALIAS might be a good idea.
 
 2.
 
 trunk/gcc/ipa-reference.c:474:15: warning: enumeration value 'IPA_REF_ALIAS'
 not handled in switch [-Wswitch]
 
 Source code is
 
   switch (ref-use)


GCC's -Wswitch does not catch this?

[Bug tree-optimization/61335] [4.10 Regression] wrong code with -O2 -fbounds-check

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61335

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed May 28 11:07:06 2014
New Revision: 211012

URL: http://gcc.gnu.org/viewcvs?rev=211012root=gccview=rev
Log:
2014-05-28  Richard Biener  rguent...@suse.de

PR tree-optimization/61335
* tree-vrp.c (vrp_visit_phi_node): If the compare of old and
new range fails, drop to varying.

* gfortran.dg/pr61335.f90: New testcase.

Added:
trunk/gcc/testsuite/gfortran.dg/pr61335.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c


[Bug middle-end/61045] [4.7/4.8/4.9/4.10 Regression] Wrong constant folding

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61045

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
  /* Put the constant on the side where it doesn't overflow and is
 of lower absolute value than before.  */
  cst = int_const_binop (TREE_CODE (arg0) == TREE_CODE (arg1)
 ? MINUS_EXPR : PLUS_EXPR,
 const2, const1);
  if (!TREE_OVERFLOW (cst)
   tree_int_cst_compare (const2, cst) == tree_int_cst_sgn (const2))

const2 is -1 here and cst is 1.  So that means just checking for
lower absolute value is wrong.  A sign-change is obviously not ok either.


[Bug c/61342] New: Segfault when using default clause and VLA in OpenMP task

2014-05-28 Thread philippe.virouleau at imag dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61342

Bug ID: 61342
   Summary: Segfault when using default clause and VLA in OpenMP
task
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: philippe.virouleau at imag dot fr

Created attachment 32871
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32871action=edit
produced output

I got a segmentation fault from gcc when compiling a code using variable length
array inside an open mp task, with default(none) specified.
The minimal example that triggers the segfault with my gcc is the following : 

int main()
{
int x = 2;
int y = 2;
double f_[2][2];
double (*f)[x][y] = (double (*)[x][y])f_;
#pragma omp parallel
#pragma omp master
{
for (int i = 0; i  x; i++)
for (int j = 0; j  y; j++)
#pragma omp task default(none) shared(f) firstprivate(i, j)
{
(*f)[i][j] = 1;
}
}
}

Attached is the is the produced stacktrace (with command line and gcc version),
and my operating system is Debian (Linux daisy 3.14-1-amd64 #1 SMP Debian
3.14.4-1 (2014-05-13) x86_64 GNU/Linux).
Note that removing the default(none) makes the code compile normally


[Bug tree-optimization/61335] [4.10 Regression] wrong code with -O2 -fbounds-check

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61335

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug bootstrap/61315] wide-int.cc cannot be built by darwin system compiler

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61315

--- Comment #14 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #13)
 In my paranoid days I have the feeling that I don't exist on the gcc
 lists!-(although I am only interested by gfortran and optimization, I do
 what I can to keep the test suite as clean as possible for darwin: bug
 reports, debugging when I can, ...). Iain Sandoe may have a similar feeling
 too, even if he has a significant contribution in fixing darwin problem.

Why is that so? Do you mean your patches aren't reviewed fast enough?

There are three darwin maintainers. If you are unsatisfied with their work, I
would suggest to try to approach them in private. Perhaps they will be happy to
delegate some maintainership duties or suggest some way to improve
communication.

Patches going unreviewed is a general problem in GCC not restricted to Darwin.
Nobody has found a good solution to this problem yet.

 I also acknowledge that most of the GCC developers are quite helpful and
 that some of them consider their duty to fix their bugs even on darwin.
 However I consider that comments such that darwin is broken by design,
 darwin sucks, ... are unprofessional.

So ignore those comments. Even smart people say stupid things from time to
time. Many people that write in the GCC lists (or bug reports) don't even
contribute to GCC. When I started working on GCC diagnostics, many GCC devs
told me that there will never be native color diagnostics. Now we have colors
and the Apocalypse hasn't arrived. See also points 1 and 9 at
https://gcc.gnu.org/wiki/GCC_Research about negative feedback.

I think the approach of FX was exactly right: Expose your case and send a
patch. If you cannot convince someone, then convince others.

 Last thing I want to say, I have seen several bugs blamed to drawing that
 were gcc bugs and also several unfixable on darwin features that got fixed
 by gcc improvements.

Sure. I personally think that GCC is better off supporting Darwin than not, but
I wouldn't personally work on Darwin since I only care about Linux. It is only
logical that people using Darwin are the ones working on it. The quality of
Darwin support in GCC is only a function of the number of people working on it,
not a hidden agenda, design or philosophy. 

(The same is true for every other language or port or part of the compiler. The
only reason why Clang has better diagnostics than GCC is that there were 191
contributors to Clang last year, while I would be surprised if more than 20
people contributed to the C/C++ FEs during the same time.)

[Bug other/61300] powerpc64le miscompile with KR-style function definition at -O0

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61300

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Alan Modra from comment #1)
 So, the writes way past this is writing into the parameter save area.  
 
 compare_kr is assuming that it was called with a parameter save area because
 it isn't prototyped, but that is quite wrong because when compiling the
 function body we don't know how the function was called.  A call may well
 have a prototype in scope, and thus not set up a parameter save area.
 
 It's a bug in rs6000_function_parms_need_stack.  This function can't blindly
 test !prototype_p (fun).

So you can simply drop that check instead as it seems to be an optimization
only?  Thus

Index: gcc/config/rs6000/rs6000.c
===
--- gcc/config/rs6000/rs6000.c  (revision 211011)
+++ gcc/config/rs6000/rs6000.c  (working copy)
@@ -10492,7 +10492,7 @@ rs6000_function_parms_need_stack (tree f
 fun = TREE_TYPE (fun);

   /* Varargs functions need the parameter save area.  */
-  if (!prototype_p (fun) || stdarg_p (fun))
+  if (stdarg_p (fun))
 return true;

   INIT_CUMULATIVE_INCOMING_ARGS (args_so_far_v, fun, NULL_RTX);

?


[Bug lto/61256] [4.10 regression] Building spec2000/252.eon with LTO got a compfail after r210522

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61256

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/61306] [4.10 Regression] wrong code at -Os and above on x86_64-linux-gnu

2014-05-28 Thread thomas.preudhomme at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61306

--- Comment #4 from Thomas Preud'homme thomas.preudhomme at arm dot com ---
I finally managed to find the root cause for the bootstrap failure with my
current fix. I shall be able to improve my fix and should hopefully be ready
tomorrow.


[Bug tree-optimization/58483] missing optimization opportunity for const std::vector compared to std::array

2014-05-28 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58483

Marc Glisse glisse at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 Ever confirmed|0   |1

--- Comment #6 from Marc Glisse glisse at gcc dot gnu.org ---
With current trunk, for the vector version, the most obvious optimization
failure is the following:

  _57 = (unsigned long) MEM[(void *)._79 + 12B];
  _36 = (unsigned long) MEM[(void *)._79 + 4B];
  _51 = _57 - _36;
  _3 = _51 /[ex] 4;
  _26 = _3;
  _27 = _26 + 1;
  _31 = _27 * 4;
etc.

_51 should be folded to 8 (then we have the usual useless /4*4, but with a
constant it would be ok). This part is a 4.9/4.10 regression, gcc-4.8 managed
to get the constant 12:
  __builtin_memcpy (_33, ._80, 12);


[Bug other/61300] powerpc64le miscompile with KR-style function definition at -O0

2014-05-28 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61300

--- Comment #4 from Alan Modra amodra at gmail dot com ---
You could do that, but smaller stack frames is one of the nice features of the
ELFv2 ABI!  What I called the quick and dirty fix seems to be the way to go,
as the scheme I had in mind to avoid a new INCOMING_REG_PARM_STACK_SPACE target
macro only works with very old versions of gcc..  See
https://gcc.gnu.org/ml/gcc/2014-05/msg00302.html


[Bug c/61340] ipa-pure-const.c, ipa-reference.c: possible missing switch cases ?

2014-05-28 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61340

--- Comment #2 from David Binderman dcb314 at hotmail dot com ---
(In reply to Manuel López-Ibáñez from comment #1)
 GCC's -Wswitch does not catch this?

On checking the gcc trunk build logs, yes. 

Only clang can find the problem, not trunk gcc.

I had a look in gcc/testsuite/ for a file that clang
can find the problem in, but trunk gcc can't.
The first one is

gcc.c-torture/compile/pr39845.c

This might be worth a deeper look.

[Bug sanitizer/61314] Building GCC 4.9.0 breaks in libbacktrace on Ubuntu Lucid and Precise using libfaketime

2014-05-28 Thread gk at torproject dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61314

Georg Koppen gk at torproject dot org changed:

   What|Removed |Added

Summary|Building GCC 4.9.0 breaks   |Building GCC 4.9.0 breaks
   |in libbacktrace on Ubuntu   |in libbacktrace on Ubuntu
   |Lucid Lynx  |Lucid and Precise using
   ||libfaketime

--- Comment #3 from Georg Koppen gk at torproject dot org ---
I made some more tests. Building on UbuntuPrecise is breaking as well with a
similar error while compiling 4.9.0 and not faking timestamps with libfaketime
works both on Lucid and Precise. This seems to support my analysis in comment
2.


[Bug middle-end/61045] [4.7/4.8/4.9/4.10 Regression] Wrong constant folding

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61045

--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed May 28 12:44:11 2014
New Revision: 211018

URL: http://gcc.gnu.org/viewcvs?rev=211018root=gccview=rev
Log:
2014-05-28  Richard Biener  rguent...@suse.de

PR middle-end/61045
* fold-const.c (fold_comparison): When folding
X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
the sign of the remaining constant operand stays the same.

* gcc.dg/pr61045.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/pr61045.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/61045] [4.7/4.8/4.9/4.10 Regression] Wrong constant folding

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61045

--- Comment #8 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed May 28 12:46:39 2014
New Revision: 211019

URL: http://gcc.gnu.org/viewcvs?rev=211019root=gccview=rev
Log:
2014-05-28  Richard Biener  rguent...@suse.de

Backport from mainline
2014-05-28  Richard Biener  rguent...@suse.de

PR middle-end/61045
* fold-const.c (fold_comparison): When folding
X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
the sign of the remaining constant operand stays the same.

* gcc.dg/pr61045.c: New testcase.

2014-05-05  Richard Biener  rguent...@suse.de

PR middle-end/61010
* fold-const.c (fold_binary_loc): Consistently avoid
canonicalizing X  CST away from a CST that is the mask
of a mode.

* gcc.dg/torture/pr61010.c: New testcase.

2014-04-28  Richard Biener  rguent...@suse.de

PR tree-optimization/60979
* graphite-scop-detection.c (scopdet_basic_block_info): Reject
SCOPs that end in a block with a successor with abnormal
predecessors.

* gcc.dg/graphite/pr60979.c: New testcase.

Added:
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/graphite/pr60979.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr61045.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr61010.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/fold-const.c
branches/gcc-4_9-branch/gcc/graphite-scop-detection.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug tree-optimization/60979] [4.9 Regression] ICE: in gimple_redirect_edge_and_branch_force, at tree-cfg.c:5544, w/ -O -ftree-loop-linear or -fgraphite-identity

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60979

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/60979] [4.9 Regression] ICE: in gimple_redirect_edge_and_branch_force, at tree-cfg.c:5544, w/ -O -ftree-loop-linear or -fgraphite-identity

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60979

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed May 28 12:46:39 2014
New Revision: 211019

URL: http://gcc.gnu.org/viewcvs?rev=211019root=gccview=rev
Log:
2014-05-28  Richard Biener  rguent...@suse.de

Backport from mainline
2014-05-28  Richard Biener  rguent...@suse.de

PR middle-end/61045
* fold-const.c (fold_comparison): When folding
X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
the sign of the remaining constant operand stays the same.

* gcc.dg/pr61045.c: New testcase.

2014-05-05  Richard Biener  rguent...@suse.de

PR middle-end/61010
* fold-const.c (fold_binary_loc): Consistently avoid
canonicalizing X  CST away from a CST that is the mask
of a mode.

* gcc.dg/torture/pr61010.c: New testcase.

2014-04-28  Richard Biener  rguent...@suse.de

PR tree-optimization/60979
* graphite-scop-detection.c (scopdet_basic_block_info): Reject
SCOPs that end in a block with a successor with abnormal
predecessors.

* gcc.dg/graphite/pr60979.c: New testcase.

Added:
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/graphite/pr60979.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr61045.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr61010.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/fold-const.c
branches/gcc-4_9-branch/gcc/graphite-scop-detection.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug middle-end/61010] [4.8 Regression] Infinite recursion in fold

2014-05-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61010

--- Comment #12 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed May 28 12:46:39 2014
New Revision: 211019

URL: http://gcc.gnu.org/viewcvs?rev=211019root=gccview=rev
Log:
2014-05-28  Richard Biener  rguent...@suse.de

Backport from mainline
2014-05-28  Richard Biener  rguent...@suse.de

PR middle-end/61045
* fold-const.c (fold_comparison): When folding
X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
the sign of the remaining constant operand stays the same.

* gcc.dg/pr61045.c: New testcase.

2014-05-05  Richard Biener  rguent...@suse.de

PR middle-end/61010
* fold-const.c (fold_binary_loc): Consistently avoid
canonicalizing X  CST away from a CST that is the mask
of a mode.

* gcc.dg/torture/pr61010.c: New testcase.

2014-04-28  Richard Biener  rguent...@suse.de

PR tree-optimization/60979
* graphite-scop-detection.c (scopdet_basic_block_info): Reject
SCOPs that end in a block with a successor with abnormal
predecessors.

* gcc.dg/graphite/pr60979.c: New testcase.

Added:
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/graphite/pr60979.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr61045.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr61010.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/fold-const.c
branches/gcc-4_9-branch/gcc/graphite-scop-detection.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug other/61300] powerpc64le miscompile with KR-style function definition at -O0

2014-05-28 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61300

--- Comment #5 from Alan Modra amodra at gmail dot com ---
Actually, to work the patch in comment #3 would need to be

-  if (!prototype_p (fun) || stdarg_p (fun))
+  if (1)
 return true;


[Bug libgomp/61333] potential target specific performance issue with libgomp

2014-05-28 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61333

--- Comment #11 from Jack Howarth howarth.at.gcc at gmail dot com ---
(In reply to Jakub Jelinek from comment #10)

 Also, benchmarking -O0 code is weird.

Is gcc really optimizing that low by default? Certainly it is at least doing
-O1 when not passed a -O* optimization flag? In any case, shouldn't the
optimization be somewhat orthogonal to this problem since, by normalizing to
the one process timing, we are just looking at the effect of the overhead in
the processes?


[Bug c++/61343] New: [C++11] Missing default initialization for class with default constructor

2014-05-28 Thread tejohnson at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61343

Bug ID: 61343
   Summary: [C++11] Missing default initialization for class with
default constructor
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tejohnson at google dot com

The following test case does not call the default constructor when expected:

/
#include iostream

struct Foo {
  int value;

  Foo() noexcept {
std::cout  this   constructed. Setting value to twelve.\n;
value = 12;
  }
};

static thread_local Foo a{};
static thread_local Foo b;

static __attribute__((noinline)) void UseA() {
  const int value = a.value;
  std::cout  Value of A:   value  \n;
}

static __attribute__((noinline)) void UseB() {
  const int value = b.value;
  std::cout  Value of B:   value  \n;
}

int main(int argc, char** argv) {
  // std::cout  Address of A:   a  \n;
  // std::cout  Address of B:   b  \n;

  UseA();
  UseA();

  UseB();
  UseB();

  UseA();
  UseA();

  return 0;
}
//

When compiled with the current trunk compiler it gives the output:

Value of A: 0
Value of A: 0
0x7f2bc9150728 constructed. Setting value to twelve.
0x7f2bc9150724 constructed. Setting value to twelve.
Value of B: 12
Value of B: 12
Value of A: 12
Value of A: 12

I would expect something like:

0x7ffa4bc63720 constructed. Setting value to twelve.
0x7ffa4bc63724 constructed. Setting value to twelve.
Value of A: 12
Value of A: 12
Value of B: 12
Value of B: 12
Value of A: 12
Value of A: 12

It appears as though the empty brace initialization for 'a', which should
result in the user-defined default constructor being invoked, does not actually
do so. Instead the object is zero-initialized until accessing 'b', which
finally causes the default constructor for 'a' to be run as well.

Google ref: b/15250505


[Bug libgomp/61333] potential target specific performance issue with libgomp

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61333

--- Comment #12 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 Is gcc really optimizing that low by default? ...

AFAIK the default optimization in gcc is -O0. Now before drawing conclusions
you should answer my question in comment 8.


[Bug pch/60982] Very long compilation of precompiled headers

2014-05-28 Thread georgthegreat at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60982

Yuriy Chernyshov georgthegreat at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #6 from Yuriy Chernyshov georgthegreat at gmail dot com ---
Hi!

According to my what my system administrator told to be, it is impossible to
build GCC-4.6 and higher due to kernel incompatibility.

I'll close this as invalid.


[Bug c++/60430] static_assert and reference to const/constexpr

2014-05-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60430

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

Version|4.9.0   |4.8.1

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
THere's no need to update the version - if the bug is still open t hat means
it's still a bug in later versions, and by changing it you've lost the
information that the bug is present in 4.8


[Bug c/61328] valgrind finds problem in find_bswap_or_nop_1

2014-05-28 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61328

--- Comment #3 from David Binderman dcb314 at hotmail dot com ---
(In reply to David Binderman from comment #0)
 Maybe
  
   if (!source_expr2)
 return NULL_TREE;
  
   if (n1.size != n2.size)
 return NULL_TREE;
  
 would be better code.

I tried out my proposed solution and it didn't seem to help.

Current working assumption is that something somewhere isn't
setting the size field. Maybe blindly zeroing out the entire 
struct might be a way forward.


[Bug libgomp/61333] potential target specific performance issue with libgomp

2014-05-28 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61333

--- Comment #13 from Jack Howarth howarth.at.gcc at gmail dot com ---
(In reply to Dominique d'Humieres from comment #12)
  Is gcc really optimizing that low by default? ...
 
 AFAIK the default optimization in gcc is -O0. Now before drawing conclusions
 you should answer my question in comment 8.

Without optimization flags on a 16-core MacPro under darwin13, the timings for
one, two and four OMP processes are…

clang-3.4.1 (clang-omp/openmp) 82.913658 sec: 41.704652 sec: 22.256563 sec
gcc 4.8.3  96.409755 sec: 50.521193 sec: 28.822280 sec
gcc 4.9.0  96.341129 sec: 50.563898 sec: 28.850048 sec

at -O1
clang-3.4.1 (clang-omp/openmp) 19.371284 sec:  9.743520 sec:  5.938325 sec
gcc 4.8.3  38.253825 sec: 21.149855 sec: 13.426259 sec 
gcc 4.9.0  38.170274 sec: 21.022076 sec: 13.402209 sec

at -O2
clang-3.4.1 (clang-omp/openmp) 15.621070 sec:  7.890557 sec:  5.384909 sec
gcc 4.8.3  18.473835 sec: 11.278842 sec:  8.954324 sec
gcc 4.9.0  18.468089 sec: 11.208950 sec:  8.949956 sec

at -O3
clang-3.4.1 (clang-omp/openmp) 15.627173 sec:  8.073639 sec:  5.870642 sec
gcc 4.8.3  18.535541 sec: 11.258917 sec:  8.951850 sec
gcc 4.9.0  17.088016 sec: 10.685973 sec:  8.884664 sec

at -Os
clang-3.4.1 (clang-omp/openmp) 19.365366 sec:  9.732779 sec:  5.360228 sec
gcc 4.8.3  19.523171 sec: 11.657896 sec:  8.993581 sec
gcc 4.9.0  18.472308 sec: 11.224615 sec:  8.959600 sec

at -Ofast
clang-3.4.1 (clang-omp/openmp) 12.533942 sec:  6.371977 sec:  5.358282 sec
gcc 4.8.3  15.593206 sec:  9.804462 sec:  8.581757 sec
gcc 4.9.0  14.145020 sec:  9.089317 sec:  8.449206 sec

[Bug ipa/61160] [4.9/4.10 Regression] wrong code with -O3 (or ICE: verify_cgraph_node failed: edge points to wrong declaration)

2014-05-28 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61160

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jamborm at gcc dot 
gnu.org

--- Comment #3 from Martin Jambor jamborm at gcc dot gnu.org ---
This seems to be IPA-CP related, so I will have a look.


[Bug rtl-optimization/61325] [4.10 regression] aarch64_be build fails

2014-05-28 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61325

Vladimir Makarov vmakarov at gcc dot gnu.org changed:

   What|Removed |Added

 CC||vmakarov at gcc dot gnu.org

--- Comment #2 from Vladimir Makarov vmakarov at gcc dot gnu.org ---
The patch for PR60969 just triggered a bug.  Process_address in
lea-constraints.c just did one transformation ind * scale + base + dips =
base2 = base + dips, ind * scale + base2.  The new address is still illegal as
we changed memory mode from DI to QI and scale is still 4.  So we need to do
more one transformation.

I hope to make a patch and commit it tomorrow.


[Bug c++/61242] [4.9/4.10 Regression] Bogus no matching function for call to ‘Foo::Create(brace-enclosed initializer list)

2014-05-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61242

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed May 28 15:55:03 2014
New Revision: 211024

URL: http://gcc.gnu.org/viewcvs?rev=211024root=gccview=rev
Log:
PR c++/61242
* call.c (build_aggr_conv): Ignore passed in flags.
(build_array_conv, build_complex_conv): Likewise.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/initlist84.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c


[Bug c++/57543] decltype needs explicit 'this' pointer in member function declaration of template class with trailing return type

2014-05-28 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57543

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org


[Bug c++/61343] [C++11] Missing default initialization for class with default constructor

2014-05-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61343

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 Ever confirmed|0   |1


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread fxcoudert at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

Francois-Xavier Coudert fxcoudert at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #8 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org ---
Alternative patch committed to trunk. Fixed.


[Bug c++/47202] Endless recursion during mangling

2014-05-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47202

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed May 28 16:38:23 2014
New Revision: 211026

URL: http://gcc.gnu.org/viewcvs?rev=211026root=gccview=rev
Log:
PR c++/47202
gcc/cp/
* decl.c (cxx_comdat_group): Return a decl.
* optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
gcc/
* cgraph.h (symtab_node::get_comdat_group_id): New.
* cgraphunit.c (analyze_functions): Call it.
* symtab.c (dump_symtab_node): Likewise.
* tree.c (decl_comdat_group_id): New.
* tree.h: Declare it.
* lto-streamer-out.c (write_symbol): Use it.
* trans-mem.c (ipa_tm_create_version_alias): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraph.h
trunk/gcc/cgraphunit.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/mangle.c
trunk/gcc/cp/optimize.c
trunk/gcc/lto-streamer-out.c
trunk/gcc/symtab.c
trunk/gcc/trans-mem.c
trunk/gcc/tree.c
trunk/gcc/tree.h


[Bug c++/47202] Endless recursion during mangling

2014-05-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47202

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.10.0

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Fixed on trunk; we now complain about excessive recursion.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread mrs at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

mrs at gcc dot gnu.org mrs at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|ASSIGNED
 Resolution|FIXED   |---

--- Comment #9 from mrs at gcc dot gnu.org mrs at gcc dot gnu.org ---
Thanks.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

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

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #10 from Dominique d'Humieres dominiq at lps dot ens.fr ---
It is fixed, isn't it?


[Bug target/61336] ICE on alpha: in print_operand_address, at config/alpha/alpha.c:5454

2014-05-28 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61336

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||rth at gcc dot gnu.org,
   ||ubizjak at gmail dot com

--- Comment #1 from Uroš Bizjak ubizjak at gmail dot com ---
The problem here is, that some inline asm tries to print the symbol name using
offsetable memory constraint. This generates:

(gdb) p debug_rtx (insn)
(insn:TI 58 57 59 (asm_operands/v (990: nop
.pushsection .note.stapsdt,?,note
.balign 4
.4byte 992f-991f,994f-993f,3
991: .asciz stapsdt
992: .balign 4
993: .8byte 990b
.8byte _.stapsdt.base
.8byte 0
.asciz libc
.asciz memory_mallopt_mxfast
.asciz %n0@%1 %n2@%3
994: .balign 4
.popsection
) () 0 [
(const_int 4 [0x4])
(reg:SI 11 $11 [orig:103 value ] [103])
(const_int -8 [0xfff8])
(mem/c:DI (symbol_ref:DI (global_max_fast) [flags 0x6] var_decl
0x2eaf430 global_max_fast) [5 global_max_fast+0 S8 A64])
]
 [
(asm_input:SI (n) malloc.c:4764)
(asm_input:SI (nor) malloc.c:4764)
(asm_input:SI (n) malloc.c:4764)
(asm_input:DI (nor) malloc.c:4764)
]
 [] malloc.c:4764) malloc.c:4764 -1
 (nil))
$15 = void

which in fact contains invalid unsplit symbol reference to global_max_fast.

So, we can either allow unsplit symbol references using following patch:

--cut here--
Index: alpha.c
===
--- alpha.c (revision 210950)
+++ alpha.c (working copy)
@@ -5450,7 +5450,6 @@ print_operand_address (FILE *file, rtx addr)
   offset = INTVAL (addr);
   break;

-#if TARGET_ABI_OPEN_VMS
 case SYMBOL_REF:
   fprintf (file, %s, XSTR (addr, 0));
   return;
@@ -5463,7 +5462,6 @@ print_operand_address (FILE *file, rtx addr)
   INTVAL (XEXP (XEXP (addr, 0), 1)));
   return;

-#endif
 default:
   gcc_unreachable ();
 }
--cut here--

or your souce should be fixed to avoid memory operands in inline asm.

[Bug c++/57543] decltype needs explicit 'this' pointer in member function declaration of template class with trailing return type

2014-05-28 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57543

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Looking a bit more into it.


[Bug fortran/61337] Wrong indexing and runtime crash with unlimited polymorphic array.

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61337

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed on 4.8 up to trunk. If the first test is compiled with
-fsanitize=address, execution fails with

==63209==ERROR: AddressSanitizer: global-buffer-overflow on address
0x000105f54d28 at pc 0x105f5433c bp 0x7fff59cb0150 sp 0x7fff59cb0148
READ of size 4 at 0x000105f54d28 thread T0
#0 0x105f5433b
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x1533b)
#1 0x105f51a56
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x12a56)
#2 0x105f544dc
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x154dc)
#3 0x105f54883
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x15883)
#4 0x7fff8edb75fc (/usr/lib/system/libdyld.dylib+0x35fc)

0x000105f54d28 is located 0 bytes to the right of global variable 'A.21' from
'pr61337.f90' (0x105f54d20) of size 8
0x000105f54d28 is located 56 bytes to the left of global variable 'options.23'
from 'pr61337.f90' (0x105f54d60) of size 36
...

The modified case (call add_item twice) fails with

==63217==ERROR: AddressSanitizer: global-buffer-overflow on address
0x0001084c0ce8 at pc 0x1084c0112 bp 0x7fff57744130 sp 0x7fff57744128
READ of size 4 at 0x0001084c0ce8 thread T0
#0 0x1084c0111
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x15111)
#1 0x1084bd82c
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x1282c)
#2 0x1084c02b4
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x152b4)
#3 0x1084c07c3
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out+0x157c3)
#4 0x7fff8edb75fc (/usr/lib/system/libdyld.dylib+0x35fc)

0x0001084c0ce8 is located 0 bytes to the right of global variable 'A.21' from
'pr61337_1.f90' (0x1084c0ce0) of size 8
0x0001084c0ce8 is located 56 bytes to the left of global variable 'A.24' from
'pr61337_1.f90' (0x1084c0d20) of size 8


[Bug fortran/60853] Failure to disambiguate generic with unlimited polymorphic

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60853

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed. The code compiles if I use

   subroutine copyFromScalar(this, scalar)
  class (Vector), intent(inout) :: this
  type  (Vector), intent(in) :: scalar
   end subroutine copyFromScalar

   subroutine copyFromArray(this, array)
  class (Vector), intent(inout) :: this
  class (Vector), intent(in) :: array(:)
   end subroutine copyFromArray


[Bug fortran/59344] warning for needless pointer attribute

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59344

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

   What|Removed |Added

   Keywords||diagnostic
   Priority|P3  |P5
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Please provide the man power otherwise you'll never get it.


[Bug target/61044] Computed goto on AVR fails to use word-addressing

2014-05-28 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044

--- Comment #9 from Georg-Johann Lay gjl at gcc dot gnu.org ---
(In reply to Senthil Kumar Selvaraj from comment #3)
 The primary reason I added the diff relocs was to prevent linker relaxation
 messing up DWARF line number information - as you know, relaxation can
 shorten instruction sequences, and the addresses in DWARF then go out of
 sync.
 
 I guess I must add some user documentation about this, but ideally, this is
 supposed to be transparent to the user - just passing -mrelax to the
 compiler should work.
 
 I turned diff reloc generation on only if -mlink-relax is passed because
 this is what other ports (xtensa) do, and I wasn't sure of the consequences
 of resolving every subtraction expression at link time.

Resolving label differences at assemble time serves a faster linking process,
but that argument does not apply to avr:  We don't have magabytes of code that
have to be fixed at load time by a dynamic linker.

And you don't know at assemble time how the linker is called.  One example is
debugging through code that comes from a library and has been linked against
the application.  It's not very common but possible and yet another plus
(besides simplicity with less options and less GCC/Binutils dependency) for
always emitting label differences as relocs.


[Bug libgomp/61333] potential target specific performance issue with libgomp

2014-05-28 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61333

--- Comment #14 from Jack Howarth howarth.at.gcc at gmail dot com ---
Without optimization flags on a 24-core x86_64 Fedora 15 box, the timings for
one, two and four OMP processes are…

clang-3.4.0 (clang-omp/openmp)  69.988439 sec:  34.962212 sec:  17.641935 sec
gcc 4.6.3   81.324524 sec:  40.878640 sec:  20.741782 sec
gcc 4.8 branch svn  80.953598 sec:  40.650732 sec:  20.635248 sec

at -O1
clang-3.4.0 (clang-omp/openmp)  16.187348 sec:   8.189783 sec:   4.293277 sec
gcc 4.6.3   32.315830 sec:  16.233432 sec:   8.257077 sec
gcc 4.8 branch svn  32.292952 sec:  16.270113 sec:   8.258137 sec

at -O2
clang-3.4.0 (clang-omp/openmp)  13.463402 sec:   6.690053 sec:   3.570961 sec
gcc 4.6.3   15.671699 sec:   7.895216 sec:   4.133647 sec
gcc 4.8 branch svn  15.639710 sec:   7.878182 sec:   4.120302 sec

at -O3
clang-3.4.0 (clang-omp/openmp)  13.260507 sec:   6.698891 sec:   3.559403 sec
gcc 4.6.3   15.947264 sec:   7.991567 sec:   4.158251 sec
gcc 4.8 branch svn  15.607232 sec:   7.861177 sec:   4.150581 sec

at -Os
clang-3.4.0 (clang-omp/openmp)  16.266355 sec:   8.229083 sec:   4.236148 sec
gcc 4.6.3   16.921628 sec:   8.539645 sec:   4.447783 sec
gcc 4.8 branch svn  15.914723 sec:   8.658947 sec:   4.719782 sec

at -Ofast
clang-3.4.0 (clang-omp/openmp)  10.822510 sec:   5.500982 sec:   3.484604 sec
gcc 4.6.3   13.752500 sec:   6.764537 sec:   3.601730 sec
gcc 4.8 branch svn  13.224638 sec:   6.658421 sec:   3.556949 sec

[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread mrs at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #11 from mrs at gcc dot gnu.org mrs at gcc dot gnu.org ---
Yes, weird, thanks.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

Jack Howarth howarth.at.gcc at gmail dot com changed:

   What|Removed |Added

 CC||howarth.at.gcc at gmail dot com

--- Comment #12 from Jack Howarth howarth.at.gcc at gmail dot com ---
(In reply to m...@gcc.gnu.org from comment #11)
 Yes, weird, thanks.

A find that gcc trunk at r211023 bootstrap fines against the clang 3.4svn-based
compilers from Xcode 5.1.1. However I am still puzzled why, considering that it
is agreed that the casts are useless and ignored by gcc, why they weren't just
removed? I did find that freebsd has been doing this…

http://svnweb.freebsd.org/base/head/contrib/gcc/longlong.h?view=patchr1=211505r2=211504pathrev=211505

[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org ---
Because they are not ignored and are not useless.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #14 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 Because they are not ignored and are not useless.

See https://gcc.gnu.org/ml/gcc/2014-05/msg00332.html.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread mikestump at comcast dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #15 from Mike Stump mikestump at comcast dot net ---
Short answer, error checking.  Remove them and one removes some error checking.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #16 from Jack Howarth howarth.at.gcc at gmail dot com ---
(In reply to Mike Stump from comment #15)
 Short answer, error checking.  Remove them and one removes some error
 checking.

Will the current fix have any impact on our having the complete wide-int
functionality on darwin?


[Bug c++/61344] New: Wswitch does not work with enum bitfields

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61344

Bug ID: 61344
   Summary: Wswitch  does not work with enum bitfields
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: manu at gcc dot gnu.org

For this testcase:

typedef union tree_node *tree;
enum built_in_function { BUILT_IN_ACOS, BUILT_IN_FPCLASSIFY, BUILT_IN_ISFINITE
};
struct tree_function_decl {
__extension__ enum built_in_function function_code : 11;
};
union tree_node {
struct tree_function_decl function_decl;
};
static tree
convert_arguments (tree fundecl)
{
  switch (((fundecl)-function_decl.function_code))
{
  case BUILT_IN_ISFINITE:
  case BUILT_IN_FPCLASSIFY:
return (tree) 0;
}
  return fundecl;
}


clang prints:

test.c:12:11: warning: enumeration value 'BUILT_IN_ACOS' not handled in switch
[-Wswitch]
  switch (((fundecl)-function_decl.function_code))
  ^

but gcc does not print anything with -Wswitch.

This is because it is an enum bitfield.

Related to PR53874.


[Bug c/53874] -Wswitch-enum not properly working with bitfields

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53874

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 CC||manu at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
Confirmed. Related to PR61344. Clang does print a warning:

test2.c:17:10: warning: enumeration values 'A', 'B', and 'C' not explicitly
handled in switch [-Wswitch-enum]
  switch(bla-my_enum)
 ^

(and a better warning than gcc, printing three times the same warning is not
very nice).

[Bug target/61202] gcc generates invalid sqdmulh instruction

2014-05-28 Thread carrot at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61202

Carrot carrot at google dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Carrot carrot at google dot com ---
(In reply to java4ada from comment #5)
 Will this bug cover 4.8.x as well? (or file separate bug for 4.8.x)

Yes. I have committed the patch to 4.8 branch.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #17 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
The changelog was wrong. This is why bugzilla didn't catch the commit. It
should have said:

PR bootstrap/61146

instead of

PR bootstrap/PR61146

It would be nice to have a commit hook that catches this kind of thing.

[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #18 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Revision 211023

Author:fxcoudert
Date:Wed May 28 15:17:29 2014 UTC (4 hours, 39 minutes ago)
Log Message:
PR bootstrap/PR61146
* wide-int.cc: Do not include longlong.h when compiling with clang.


[Bug other/61146] wide-int error when building GCC with clang

2014-05-28 Thread mikestump at comcast dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61146

--- Comment #19 from Mike Stump mikestump at comcast dot net ---
Nope.


[Bug rtl-optimization/61345] New: [4.10 Regression] ICE (segfault) in combine while compiling the linux kernel

2014-05-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61345

Bug ID: 61345
   Summary: [4.10 Regression] ICE (segfault) in combine while
compiling the linux kernel
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: pinskia at gcc dot gnu.org
Target: aarch64*-linux-gnu

Simple Testcase (compiled with -O2):
unsigned grab_cache_page_write_begin(unsigned flags, unsigned capabilities)
{
  unsigned gfp_mask;
  unsigned gfp_notmask = 0;
  gfp_mask = flags  ((1  25) - 1);
  if (!(capabilities  0x0001))
gfp_mask |= 0x100u;
  return (gfp_mask  ~gfp_notmask);
}


[Bug rtl-optimization/61345] [4.10 Regression] ICE (segfault) in combine while compiling the linux kernel

2014-05-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61345

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
   Assignee|unassigned at gcc dot gnu.org  |pinskia at gcc dot 
gnu.org
   Target Milestone|--- |4.10.0
 Ever confirmed|0   |1

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
I am going to fix this.


[Bug target/61345] [4.10 Regression] ICE (segfault) in combine while compiling the linux kernel

2014-05-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61345

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|rtl-optimization|target

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org ---
Turns out it is a target issue:
t.c: In function ‘grab_cache_page_write_begin’:
t.c:9:1: internal compiler error: Segmentation fault
 }
 ^
0xb87e72 crash_signal
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/toplev.c:337
0xeca46f aarch64_rtx_costs
   
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/config/aarch64/aarch64.c:5627
0xecabdf aarch64_rtx_costs_wrapper
   
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/config/aarch64/aarch64.c:5792
0xb1674a rtx_cost(rtx_def*, rtx_code, int, bool)
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/rtlanal.c:3878
0xec9adb aarch64_rtx_costs
   
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/config/aarch64/aarch64.c:5367
0xecabdf aarch64_rtx_costs_wrapper
   
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/config/aarch64/aarch64.c:5792
0xb1674a rtx_cost(rtx_def*, rtx_code, int, bool)
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/rtlanal.c:3878
0xec99b5 aarch64_rtx_costs
   
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/config/aarch64/aarch64.c:5331
0xecabdf aarch64_rtx_costs_wrapper
   
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/config/aarch64/aarch64.c:5792
0xb1674a rtx_cost(rtx_def*, rtx_code, int, bool)
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/rtlanal.c:3878
0x10d0103 set_src_cost
/data1/src/gcc-cavium/toolchain-ilp32/scripts/../src/gcc/rtl.h:1565

[Bug target/61345] [4.10 Regression] ICE (segfault) in combine while compiling the linux kernel

2014-05-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61345

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org ---
Caused by:
https://gcc.gnu.org/ml/gcc-patches/2014-03/msg01543.html


[Bug debug/55585] compile time hog at -O1 -fboundscheck -g

2014-05-28 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55585

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-05-28
 Ever confirmed|0   |1

--- Comment #7 from Dominique d'Humieres dominiq at lps dot ens.fr ---
On trunk (4.10) r211028, I get

[Book15] f90/bug% time gfc pr55585.f90 -fbounds-check -O1 -g -fstrict-aliasing
12.597u 0.169s 0:13.02 97.9%0+0k 89+40io 2600pf+0w
[Book15] f90/bug% time gfc pr55585.f90 -fbounds-check -O1 -g
91.778u 0.739s 1:32.54 99.9%0+0k 20+29io 402pf+0w
[Book15] f90/bug% time gfc pr55585.f90 -fbounds-check -O1
31.269u 0.320s 0:31.60 99.9%0+0k 3+10io 400pf+0w
[Book15] f90/bug% time gfc pr55585.f90 -fbounds-check -O2
13.154u 0.117s 0:13.28 99.8%0+0k 2+14io 250pf+0w
[Book15] f90/bug% time gfc pr55585.f90 -fbounds-check
15.805u 0.329s 0:16.14 99.8%0+0k 3+14io 597pf+0w
[Book15] f90/bug% time gfc pr55585.f90
3.030u 0.063s 0:03.10 99.6%0+0k 0+5io 110pf+0w


[Bug tree-optimization/61346] New: VRP chooses bad bounds for variable

2014-05-28 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61346

Bug ID: 61346
   Summary: VRP chooses bad bounds for variable
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ian at airs dot com
CC: cmang at google dot com

The attached file, which is a Go test case converted to C code, should compile
and run without error.  It works with GCC 4.6.3 and GCC 4.9 branch with and
without optimization.  It works with mainline with -O0 and -O1.  It fails with
mainline with -O2.

I think the problem is in the VRP pass.  I see this in 067.vrp1:

i_3: [data$len_58, 9223372036854775806]  EQUIVALENCES: { i_65 } (1 elements)

This is flat out wrong, as inspection of 066.mergephi2 shows that the ideally
correct range of i_3 should be something like [0, data$len_58].  What's
particularly odd is that i_3 is even set to i_1, and the range of i_1 is
VARYING.


[Bug tree-optimization/61346] VRP chooses bad bounds for variable

2014-05-28 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61346

--- Comment #1 from Ian Lance Taylor ian at airs dot com ---
Created attachment 32872
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32872action=edit
test case


[Bug tree-optimization/61346] VRP chooses bad bounds for variable

2014-05-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61346

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org ---
Was this before or after revision 211012?  There was a bug in VRP which was
also exposed by Fortran bounds checking: bug 61335.


[Bug tree-optimization/61346] VRP chooses bad bounds for variable

2014-05-28 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61346

--- Comment #4 from Ian Lance Taylor ian at airs dot com ---
This was before 211012.  It may be fixed.  I will check.


  1   2   >