[Bug rtl-optimization/57479] [ARM][NEON] internal compiler error: Segmentation fault in add_dependence_list

2013-06-03 Thread bccheng at android dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57479

--- Comment #3 from bccheng at android dot com ---
Here is my configuration:

--target=arm-linux-androideabi --host=x86_64-linux-gnu --build=x86_64-linux-gnu

Please let me know if you need additional information.

Thanks!


[Bug libstdc++/53477] pretty printer fails with: Python Exception type 'exceptions.IndexError' list index out of range

2013-06-03 Thread asmwarrior at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53477

--- Comment #6 from asmwarrior asmwarrior at gmail dot com ---
Hi, all, I create a simple c++ program to reproduce this bug:

#include set
#include map
typedef std::setint  IntSet;
typedef std::mapint, IntSet IntToSetMap;

int main()
{
IntToSetMap m;
IntSet s;
s.insert(5);
m[3] = s;
IntSet refSet = m[3];
refSet.insert(6);
return 0;
}

Now, you can set a BP in the line refSet.insert(6);, and run the command p
refSet, you will get the error message.

Python Exception type 'exceptions.IndexError' list index out of range: 
$1 = std::set with 1 elements

If you run n, and then type p refSet again, you get:
Python Exception type 'exceptions.IndexError' list index out of range: 
$2 = std::set with 2 elements

It looks like the elements number(from 1 to 2) is correct.
Thanks

Yuanhui Zhang


[Bug libstdc++/53477] pretty printer fails with: Python Exception type 'exceptions.IndexError' list index out of range

2013-06-03 Thread asmwarrior at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53477

--- Comment #7 from asmwarrior asmwarrior at gmail dot com ---
Ok, I found another issue on the line return 0, see the GDB log:

[debug] p m
[debug]$2 = std::map with 1 elements = {[3] = std::set with 2 elements = {[0] =
5, [1] = 6}}
[debug]cb_gdb:
[debug] p m[3]
[debug]Attempt to take address of value not located in memory.
[debug]cb_gdb:

p m shows the correct value, but I'm not sure why p m[3] failed? Is it a
GDB bug?


[Bug sanitizer/56393] SIGSEGV when -fsanitize=address and dynamic lib with global objects

2013-06-03 Thread kcc at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56393

--- Comment #26 from Kostya Serebryany kcc at gcc dot gnu.org ---
(In reply to David Abdurachmanov from comment #25)
 I downloaded GCC 4.8.1 (final) and binutils 2.23.1 (default ld.gold). The
 problem is that boost and a lot other C/C++ packages are not compiled w/
 ASan. One way would be to guarantee every single C/C++ RPM package correctly
 compiling w/ ASan (quite some effort). 

This will be indeed quite some effort. But I still want this to happen! 

 I prefer to instrument the main
 software (+ some critical C/C++ packages in future) for now.
 
 I assume I cannot use -static-libasan for shared objects (-shared) as
 PREINIT_ARRAY section would be a duplicate. Then -static-libasan should be
 only used for the final executable binary? 
 
 I tried something like that:
 
 c++ -fsanitize=address -shared -Wl,-E -Wl,-z,defs -Wl,-v ./test.o -o
 libtest.so -static-libasan
 
 I see it doesn't pass to linker:
 
 long_path/lib64/libasan_preinit.o -Bstatic --whole-archive -lasan
 --no-whole-archive -Bdynamic
 
 And linker dies w/ undefined references of ASan.

The linker complains because you have -Wl,-z,defs
Just remove it. 

 
 Do I need to make sure that **only** executable binaries gets ASan linked
 statically (-static-libasan)? (Thus they always have PREINIT_ARRAY section
 initializing ASan).
 
 david


[Bug target/12081] Gcc can't be compiled with -mregparm=3

2013-06-03 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12081

--- Comment #22 from Mikael Pettersson mikpe at it dot uu.se ---
FWIW, the updated patch for gcc 4.9 bootstraps and regtests cleanly on several
hosts (x86_64, sparc64, powerpc64, armv5tel, m68k).


[Bug regression/57473] FAIL: gcc.dg/tls/emutls-2.c (internal compiler error)

2013-06-03 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57473

--- Comment #5 from ktkachov at gcc dot gnu.org ---
(In reply to Hans-Peter Nilsson from comment #4)
 Seems to have been fixed with the Symtab cleanups 2/17 - merge alias code
 fix (r199577) or possibly with the same fix as for PR57467 (r199582).

Fixed on arm-none-eabi it seems.
Dominique, can you confirm that x86_64-apple-darwin10 is fixed as well?


[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)

2013-06-03 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030

Mikael Pettersson mikpe at it dot uu.se changed:

   What|Removed |Added

 CC||mikpe at it dot uu.se

--- Comment #16 from Mikael Pettersson mikpe at it dot uu.se ---
FWIW, I've bootstrapped and regtested gcc 4.9 with r192676 reapplied and the
dse.c and cselib.c hunks of r193802 reverted on several hosts (x86_64, sparc64,
powerpc64, armv5tel, m68k) without regressions.


[Bug tree-optimization/57488] [4.9 regression] loop terminates early at -O3

2013-06-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57488

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Target Milestone|--- |4.9.0

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
I will have a look later this week unless somebody beats me here.


[Bug bootstrap/57486] bootstrap fails on 4.8 and google/4.8 branch on RHEL6.1 platform

2013-06-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57486

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2013-06-03
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Err...

In file included from ../../gcc/dbgcnt.h:28:0,
 from ../../gcc/graphite.c:57:
../../gcc/dbgcnt.def:149:1: error: \u2018clone\u2019 redeclared as different
kind of symbol

this is weird - dbgcnt.def does not include a 'clone' debug-counter, line 149
reads

DEBUG_COUNTER (dce)

for me.

Please provide preprocessed source with -dD for graphite.c.


[Bug middle-end/57503] [4.7/4.8 Regression] Expand uses wrong multiply routine

2013-06-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57503

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.4


[Bug middle-end/57500] [4.9 Regression] Segfault in ipa_record_reference

2013-06-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57500

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug middle-end/57499] [4.7/4.8/4.9 Regression] ICE when noreturn destructor returns after throw with -O

2013-06-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57499

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Known to work||4.4.7
   Keywords||ice-on-invalid-code
   Last reconfirmed||2013-06-03
  Component|c++ |middle-end
 Ever confirmed|0   |1
Summary|ICE when noreturn   |[4.7/4.8/4.9 Regression]
   |destructor returns after|ICE when noreturn
   |throw with -O   |destructor returns after
   ||throw with -O
   Target Milestone|--- |4.7.4
  Known to fail||4.5.4, 4.6.4, 4.7.2, 4.8.1,
   ||4.9.0

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.

0xd197c5 crash_signal
/space/rguenther/src/svn/trunk/gcc/toplev.c:333
0xd745a5 infinite_empty_loop_p
/space/rguenther/src/svn/trunk/gcc/tree-eh.c:4187
0xd74908 cleanup_empty_eh
/space/rguenther/src/svn/trunk/gcc/tree-eh.c:4263
0xd74d7e cleanup_all_empty_eh
/space/rguenther/src/svn/trunk/gcc/tree-eh.c:4376
0xd74e0a execute_cleanup_eh_1
/space/rguenther/src/svn/trunk/gcc/tree-eh.c:4405
0xd74e5b execute_cleanup_eh
/space/rguenther/src/svn/trunk/gcc/tree-eh.c:4430


[Bug rtl-optimization/57497] [4.9 Regression] ICE in lra_create_new_reg_with_unique_value, at lra.c:155

2013-06-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57497

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Target||x86_64-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-03
  Known to work||4.8.1
   Target Milestone|--- |4.9.0
Summary|ICE in  |[4.9 Regression] ICE in
   |lra_create_new_reg_with_uni |lra_create_new_reg_with_uni
   |que_value, at  lra.c:155|que_value, at  lra.c:155
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.


[Bug bootstrap/57494] [4.9 regression] bootstrap comparison failure

2013-06-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57494

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
patch was reverted.


[Bug c++/56014] [C++1y] ICE using return type deduction for member functions with -g enabled

2013-06-03 Thread jogojapan at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56014

--- Comment #1 from Johannes Goller jogojapan at gmail dot com ---
I've just confirmed that the problem also exists in GCC 4.9 20130602 snapshot.


[Bug c++/56014] [C++1y] ICE using return type deduction for member functions with -g enabled

2013-06-03 Thread jogojapan at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56014

--- Comment #2 from Johannes Goller jogojapan at gmail dot com ---
It also exists in 4.8.1.


[Bug sanitizer/57507] New: gcc 4.8: thread sanitizer: std::thread false(?) positive

2013-06-03 Thread alxchk at alxchk dot me
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57507

Bug ID: 57507
   Summary: gcc 4.8: thread sanitizer: std::thread false(?)
positive
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: sanitizer
  Assignee: unassigned at gcc dot gnu.org
  Reporter: alxchk at alxchk dot me
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org

$ cat test.cpp
#include thread

int main(int argc, char *argv[])
{
std::thread t([](){});
t.join();

return 0;
}

$ LC_ALL=C g++ --version
g++ (Gentoo Hardened 4.8.0 p1.2, pie-0.5.5) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.

$ g++ -o test test.cpp --std=gnu++11 -pthread -fsanitize=thread -ggdb3 -O0
$ ./test
==
WARNING: ThreadSanitizer: data race (pid=14129)
  Write of size 8 at 0x7d08bfc8 by thread T1:
#0 null null:0 (libtsan.so.0+0x00020dc0)
#1 deallocate
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/ext/new_allocator.h:110
(exe+0x2b42)
#2 deallocate
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/alloc_traits.h:377
(exe+0x2972)
#3 _M_destroy
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr_base.h:417
(exe+0x3336)
#4 null null:0 (libstdc++.so.6+0x000c8cea)

  Previous atomic write of size 4 at 0x7d08bfc8 by main thread:
#0 null null:0 (libtsan.so.0+0xdfc5)
#1 __exchange_and_add
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/ext/atomicity.h:47
(exe+0x1898)
#2 __exchange_and_add_dispatch
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/ext/atomicity.h:80
(exe+0x1995)
#3 std::_Sp_counted_base(__gnu_cxx::_Lock_policy)2::_M_release()
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr_base.h:141
(exe+0x3c86)
#4 std::__shared_count(__gnu_cxx::_Lock_policy)2::~__shared_count()
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr_base.h:553
(exe+0x3c2d)
#5 std::__shared_ptrstd::thread::_Impl_base,
(__gnu_cxx::_Lock_policy)2::~__shared_ptr()
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr_base.h:810
(exe+0x3aae)
#6 std::shared_ptrstd::thread::_Impl_base::~shared_ptr()
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr.h:93
(exe+0x3afc)
#7 threadmain(int, char**)::__lambda0
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/thread:135
(exe+0x1c10)
#8 main /tmp/test.cpp:5 (exe+0x1a3e)

  Location is heap block of size 56 at 0x7d08bfc0 allocated by main thread:
#0 null null:0 (libtsan.so.0+0x00020ad2)
#1 allocate
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/ext/new_allocator.h:104
(exe+0x2a5b)
#2 allocate
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/alloc_traits.h:351
(exe+0x2881)
#3 __shared_countstd::thread::_Implstd::_Bind_simplemain(int,
char**)::__lambda0() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::__lambda0()  , std::_Bind_simplemain(int, char**)::__lambda0() 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr_base.h:519
(exe+0x26e5)
#4
__shared_ptrstd::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::__lambda0()  , std::_Bind_simplemain(int, char**)::__lambda0() 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr_base.h:986
(exe+0x25a1)
#5 shared_ptrstd::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::__lambda0()  , std::_Bind_simplemain(int, char**)::__lambda0() 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr.h:316
(exe+0x2511)
#6 allocate_sharedstd::thread::_Implstd::_Bind_simplemain(int,
char**)::__lambda0() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::__lambda0()  , std::_Bind_simplemain(int, char**)::__lambda0() 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr.h:598
(exe+0x2422)
#7 make_sharedstd::thread::_Implstd::_Bind_simplemain(int,
char**)::__lambda0() , std::_Bind_simplemain(int, char**)::__lambda0() 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/bits/shared_ptr.h:614
(exe+0x225a)
#8 _M_make_routinestd::_Bind_simplemain(int, char**)::__lambda0() 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/thread:193
(exe+0x1fa2)
#9 threadmain(int, char**)::__lambda0
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4/thread:135
(exe+0x1bde)
#10 main /tmp/test.cpp:5 (exe+0x1a3e)

  Thread T1 (tid=14130, running) created by main thread at:
#0 null null:0 (libtsan.so.0+0x00022cdb)
#1 null null:0 (libstdc++.so.6+0x000c8ef6)
#2 main /tmp/test.cpp:5 

[Bug sanitizer/57507] gcc 4.8: thread sanitizer: std::thread false(?) positive

2013-06-03 Thread kcc at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57507

--- Comment #1 from Kostya Serebryany kcc at gcc dot gnu.org ---
FTR: we don't yet officially support C++11 treads, so this is quite expected.
Patches and tests (to the upstream repo) are welcome


[Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute

2013-06-03 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

Bug ID: 57508
   Summary: [OOP] Intrinsic assignment+defined-assignment for
comps: ROCEDURE attribute of '_F.DA0' conflicts with
VARIABLE attribute
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: burnus at gcc dot gnu.org
CC: pault at gcc dot gnu.org

The following code fails with the error message:

end module 
   1
Error: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute at (1)


That's due to the support of calling defined assignment for the components in
an intrinsic assignment, which was added in GCC 4.8.

The _F.DA0 variable is generated in resolve.c's get_temp_from_expr.


module ForTrilinos_ref_counter
  type ref_counter
  contains
  procedure :: assign
  generic   :: assignment(=) = assign
  end type
contains
  subroutine assign (lhs, rhs)
class (ref_counter), intent(inout) :: lhs
class (ref_counter), intent(in) :: rhs
  end subroutine
end module
module FEpetra_BlockMap
  use ForTrilinos_ref_counter, only : ref_counter
  type :: Epetra_BlockMap 
type(ref_counter) :: counter
  end type
contains
  function from_struct() result(new_Epetra_BlockMap)
type(Epetra_BlockMap) :: new_Epetra_BlockMap
  end function
  type(Epetra_BlockMap) function create_arbitrary()
create_arbitrary = from_struct()
  end function
end module


[Bug middle-end/57366] gcc.dg/lto/attr-weakref-1 FAILs

2013-06-03 Thread ro at CeBiTec dot Uni-Bielefeld.DE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57366

--- Comment #16 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot 
Uni-Bielefeld.DE ---
Works fine on i386-pc-solaris2.10 with Sun as.

Thanks.
Rainer


[Bug c++/57484] 'std::numeric_limits T ::signaling_NaN()' signaling-bit is incorrect for x86 32-bit.

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Just to clarify that this is neither a library neither a C++ front-end issue:
limits just uses the various __builtin_nans*


[Bug fortran/57496] I/O: WRITE(*,*) HUGE(0_16) [REAL(10)+REAL(16)]: Gives SIGFPE with -ffpe-trap=overflow

2013-06-03 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57496

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org ---
Author: burnus
Date: Mon Jun  3 09:20:46 2013
New Revision: 199598

URL: http://gcc.gnu.org/viewcvs?rev=199598root=gccview=rev
Log:
2013-06-01  Tobias Burnus  bur...@net-b.de

PR fortran/57496
* io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L,
* ISFINITE,
SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2,
ISNAN2L, ISNAN): New macros.
(output_float_FMT_G_,WRITE_FLOAT): Use them.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/write_float.def


[Bug fortran/57496] I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow

2013-06-03 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57496

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

Summary|I/O: WRITE(*,*) HUGE(0_16)  |I/O: WRITE(*,*) HUGE(0._10)
   |[REAL(10)+REAL(16)]: Gives  |gives SIGFPE with
   |SIGFPE with |-ffpe-trap=overflow
   |-ffpe-trap=overflow |

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org ---
The commit in comment 3 solved the problem for REAL(16).

For REAL(10)  (= long double), there is still a problem:
  print *, HUGE(0.0_10)
  end
gives a SIGFPE with  -ffpe-trap=overflow. See comment 2 for details.


[Bug target/57329] ICE with -O2 and -mthumb

2013-06-03 Thread terry.guo at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57329

Terry Guo terry.guo at arm dot com changed:

   What|Removed |Added

 CC||terry.guo at arm dot com

--- Comment #2 from Terry Guo terry.guo at arm dot com ---
The case has operations on vector for Thumb-1 targets. Thus subreg is generated
for example:

(insn 65 64 66 2 (set (subreg:SI (reg:TI 137 [ D.4126 ]) 4)
(reg:SI 211)) 187 {*thumb1_movsi_insn}
 (nil))

The subreg:SI is supposed to be turned into normal reg:SI in subreg1 pass.
However current 4.8 branch incorrectly calculates the rtx cost of such
transformation.

Speed costs
===
SI move: from zero cost 4, from reg cost 4
DI move: original cost 4, split cost 4 * 2
TI move: original cost 4, split cost 4 * 4
EI move: original cost 4, split cost 4 * 6

The subreg will be kept until IRA stage and causes ICE there.

With Bin's patch at http://gcc.gnu.org/ml/gcc-cvs/2013-03/msg00784.html, we
will get correct rtx cost:

Speed costs
===
SI move: from zero cost 4, from reg cost 4
DI move: original cost 8, split cost 4 * 2
TI move: original cost 16, split cost 4 * 4
EI move: original cost 24, split cost 4 * 6

Then the split happens, we will get:

(insn 65 64 66 2 (set (reg:SI 393 [ D.4126+4 ])
(reg:SI 211)) 187 {*thumb1_movsi_insn}
 (nil))

and then everything works well.

I believe this is the cause of the issue and am doing back port to 4.8 branch.


[Bug sanitizer/57507] gcc 4.8: thread sanitizer: std::thread false(?) positive

2013-06-03 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57507

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
Would supporting std::shared_ptr solve the problem?  The problem seems to be
due to not understanding that the atomic ops used by shared_ptr are atomic.


[Bug middle-end/57393] [4.9 Regression] error: definition in block 4 follows the use / internal compiler error: verify_ssa failed

2013-06-03 Thread Joost.VandeVondele at mat dot ethz.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57393

--- Comment #6 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
---
Simplified testcase that fails with 'gfortran -c -g -O2 -ffast-math bug.f90'

 cat bug.f90
  SUBROUTINE xb88_lr_adiabatic_lda_calc(npoints,e,g,sx)
IMPLICIT REAL*8 (t)
INTEGER, PARAMETER :: dp=8
REAL(kind=dp) :: e(npoints)
DO ii=1,npoints
   t804 = 0.19e2_dp * t7 * t766 + 
  0.60e1_dp * t405 * t2873 * t237
   t3026 = 0.162000e3_dp * t1143 * t474 * t2169 + 
   0.108000e3_dp * t1143 * t3030 * t237 - 
   0.60e1_dp * t478 * t27 * t379 * t14 - 
   0.24e2_dp * t478 * t123 * t2843 - 
   0.12e2_dp * t473 * t1157 * t2368
   t3070 = t3026 + t3069
   t3093 = (3 * t496 * t865 * t65) + 
   (t187 * t2285 * t65) + (t3070 * t65) - 
   0.36e0_dp * t1137 * t1134
   t3268 = 0.16e1_dp * t2937 * t446 * t2843 + 
  (t3093 + t3141 + t3181 + t3232) *  
   0.312500e0_dp * t3262 * t45 * t166 * t3264
   t3288 = -0.11e1_dp * t165 * t2636 * t237 - 
(t2724 + t2783 + t2935 + t3268) - 
0.833340e-1_dp * t906 * t384 * t2160
   t3291 = -0.11e1_dp * t2147 * t84 * t754 - 
t8 * (t2635 + t3288)
   IF( g= 3 .OR. g== -3 ) THEN
 e(ii) = e(ii) +  t3291 * sx
   END IF
END DO
  END SUBROUTINE xb88_lr_adiabatic_lda_calc


[Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute

2013-06-03 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-03
 CC||janus at gcc dot gnu.org
Summary|[OOP] Intrinsic |[4.8/4.9 Regression] [OOP]
   |assignment+defined-assignme |Intrinsic
   |nt for comps: ROCEDURE  |assignment+defined-assignme
   |attribute of '_F.DA0'   |nt for comps: PROCEDURE
   |conflicts with VARIABLE |attribute of '_F.DA0'
   |attribute   |conflicts with VARIABLE
   ||attribute
 Ever confirmed|0   |1

--- Comment #1 from janus at gcc dot gnu.org ---
4.7 shows no error, 4.8 gives an additional ICE (in
gfc_enforce_clean_symbol_state) which might be PR 57364


[Bug c++/57509] New: Segmentation fault when using __builtin_shuffle in templated class.

2013-06-03 Thread beholder0x100 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57509

Bug ID: 57509
   Summary: Segmentation fault when using __builtin_shuffle in
templated class.
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: beholder0x100 at gmail dot com

Ubuntu 12.10 64-bit


GCC 4.8.1 which I built from source:
COLLECT_GCC=/opt/custom/gcc-4.8.1/bin/gcc
COLLECT_LTO_WRAPPER=/opt/custom/gcc-4.8.1/libexec/gcc/x86_64-unknown-linux-gnu/4.8.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.1/configure --prefix=/opt/custom/gcc-4.8.1
--enable-languages=c,c++
Thread model: posix
gcc version 4.8.1 (GCC) 


/opt/custom/gcc-4.8.1/bin/gcc test.cpp
test.cpp: In static member function ‘static int_v4Tp::Tpv
int_v4Tp::shuffle(const int_v4Tp, const int_v4Tp, const int_v4Tp)’:
test.cpp:8:49: internal compiler error: Segmentation fault
 return __builtin_shuffle(u1.v, u2.v, s.v);
 ^
0x8d7dff crash_signal
../../gcc-4.8.1/gcc/toplev.c:332
0x632761 c_build_vec_perm_expr(unsigned int, tree_node*, tree_node*,
tree_node*)
../../gcc-4.8.1/gcc/c-family/c-common.c:2280
0x5965f3 cp_parser_postfix_expression
../../gcc-4.8.1/gcc/cp/parser.c:5558
0x5983bd cp_parser_unary_expression
../../gcc-4.8.1/gcc/cp/parser.c:6729
0x598eef cp_parser_binary_expression
../../gcc-4.8.1/gcc/cp/parser.c:7421
0x59939f cp_parser_assignment_expression
../../gcc-4.8.1/gcc/cp/parser.c:7657
0x59af93 cp_parser_expression
../../gcc-4.8.1/gcc/cp/parser.c:7819
0x5932ce cp_parser_expression
../../gcc-4.8.1/gcc/cp/parser.c:7858
0x5932ce cp_parser_jump_statement
../../gcc-4.8.1/gcc/cp/parser.c:10144
0x5932ce cp_parser_statement
../../gcc-4.8.1/gcc/cp/parser.c:8874
0x593a8e cp_parser_statement_seq_opt
../../gcc-4.8.1/gcc/cp/parser.c:9238
0x593bae cp_parser_compound_statement
../../gcc-4.8.1/gcc/cp/parser.c:9192
0x5a1d28 cp_parser_function_body
../../gcc-4.8.1/gcc/cp/parser.c:17827
0x5a1d28 cp_parser_ctor_initializer_opt_and_function_body
../../gcc-4.8.1/gcc/cp/parser.c:17863
0x5a2a5f cp_parser_function_definition_after_declarator
../../gcc-4.8.1/gcc/cp/parser.c:21843
0x58de44 cp_parser_late_parsing_for_member
../../gcc-4.8.1/gcc/cp/parser.c:22484
0x58de44 cp_parser_class_specifier_1
../../gcc-4.8.1/gcc/cp/parser.c:18586
0x58de44 cp_parser_class_specifier
../../gcc-4.8.1/gcc/cp/parser.c:18610
0x58de44 cp_parser_type_specifier
../../gcc-4.8.1/gcc/cp/parser.c:13677
0x5a0711 cp_parser_decl_specifier_seq
../../gcc-4.8.1/gcc/cp/parser.c:11003
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.


- test.cpp -
template typename Tp
class int_v4
{
typedef Tp Tpv __attribute__((vector_size(4 * sizeof(Tp;
Tpv v;

static Tpv shuffle(const int_v4 u1, const int_v4 u2, const int_v4 s) {
return __builtin_shuffle(u1.v, u2.v, s.v); //segfault
}

Tpv shuffle2(const int_v4 u1, const int_v4 u2, const int_v4 s) {
return __builtin_shuffle(v, v, v); //error if shuffle() is removed
}
};

int main()
{
int_v4int iv4;
int_v4unsigned int uv4;
return 0;
}

---

If: 

typedef int Tp;

is added at the top and the lines with template stuff are removed then it
compiles just fine but with the use of templates there is a segfault in
shuffle() and if shuffle() is removed then there is: 

error: __builtin_shuffle last argument must be an integer vector 

in shuffle2(). When compiling with GCC 4.7.2 (which is shipping with Ubuntu
12.10) then everything compiles, even if the line:

int_v4float fv4; 

is added to main() (meaning that it was possible to pass non-integer vector as
the last argument of __builtin_shuffle in GCC 4.7.2).

I'm guessing that the bug is somehow related to the presence/addition of error
handling code. It looks like (I am not a GCC developer) GCC is trying to
determine the type of the last argument before any variables using the template
are even defined (they can be removed and the error message will still be
there).

[Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute

2013-06-03 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org ---
I believe that it is not a true regression.

In GCC 4.7, the intrinsic assignment
  create_arbitrary = from_struct()
did also an intrinsic assignment of the counter component.

Since Paul's GCC 4.8 patch for PR 46897 (r194016), one now invokes subroutine
assign for the counter component. - That patch introduced the '@DA0'
temporary, which I changed GCC 4.9's r199215 to be _F.DA0 to avoid assembler
errors.


[Bug c++/57510] New: initializer_list memory leak

2013-06-03 Thread matt at ookypooky dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57510

Bug ID: 57510
   Summary: initializer_list memory leak
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: matt at ookypooky dot com

Created attachment 30247
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30247action=edit
Code demonstrating the problem

It looks as though initializer_list can suffer from memory leaks - if during
construction of the initializer_list members an exception is thrown then the
previously allocated members are not correctly destroyed. Unfortunately I do
not have access to a newer g++ version than 4.7.2, however I could not see any
mention of this issue in the closed bugs.

Code (also attached):
--
#include memory
#include random

struct X
{
X () : m_n (std::unique_ptrint (new int)) { if (random ()  1) throw 1; }
std::unique_ptrint m_n;
};

void foo (std::initializer_listX)
{
}

int main ()
{
  for (int i = 0; i  10; ++i)
  {
try
{
  foo ({ X{}, X{} });
}
catch (...) {}
  }
}
--

$ g++ -v
Using built-in specs.
COLLECT_GCC=/software/thirdparty/gcc/4.7.2-0.el6_64/bin/g++
COLLECT_LTO_WRAPPER=/software/thirdparty/gcc/4.7.2-0.el6_64/libexec/gcc/x86_64-unknown-linux-gnu/4.7.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/software/thirdparty/gcc/4.7.2-0.el6_64
--with-system-zlib --enable-shared --enable-threads=posix --enable-laguages=all
Thread model: posix
gcc version 4.7.2 (GCC)

$ g++ -std=c++11 memory_leak.cpp

$ valgrind ./a.out
==13775== Memcheck, a memory error detector
==13775== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==13775== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==13775== Command: ./a.out
==13775==
==13775==
==13775== HEAP SUMMARY:
==13775== in use at exit: 12 bytes in 3 blocks
==13775==   total heap usage: 23 allocs, 20 frees, 1,244 bytes allocated
==13775==
==13775== LEAK SUMMARY:
==13775==definitely lost: 12 bytes in 3 blocks
==13775==indirectly lost: 0 bytes in 0 blocks
==13775==  possibly lost: 0 bytes in 0 blocks
==13775==still reachable: 0 bytes in 0 blocks
==13775== suppressed: 0 bytes in 0 blocks
==13775== Rerun with --leak-check=full to see details of leaked memory
==13775==
==13775== For counts of detected and suppressed errors, rerun with: -v
==13775== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 6)


[Bug regression/57473] FAIL: gcc.dg/tls/emutls-2.c (internal compiler error)

2013-06-03 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57473

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Target|arm-none-eabi   |arm-none-eabi
   |x86_64-apple-darwin10   |x86_64-apple-darwin10
   |cris-elf|cris-elf *-*-solaris2.9
 CC||ro at gcc dot gnu.org
   Target Milestone|--- |4.9.0

--- Comment #6 from Rainer Orth ro at gcc dot gnu.org ---
Also fails on Solaris 9 with Sun as, will check if current mainline works
again.

  Rainer


[Bug rtl-optimization/57497] [4.9 Regression] ICE in lra_create_new_reg_with_unique_value, at lra.c:155

2013-06-03 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57497

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org,
   ||vmakarov at gcc dot gnu.org

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Started with http://gcc.gnu.org/r199298


[Bug tree-optimization/57511] New: [4.8/4.9 Regression] Missing SCEV final value replacement

2013-06-03 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57511

Bug ID: 57511
   Summary: [4.8/4.9 Regression] Missing SCEV final value
replacement
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: amonakov at gcc dot gnu.org

The following simple loop is no longer optimized out with 4.8 and 4.9:


int main(int argc, char* argv[])
{
int i, a = 0;
for (i=0; i  1; i++)
a += i + 0xff00ff;
return a;
}


$ gcc-4.7.2 -O2 -S main.c -o-
main:
.LFB0:
.cfi_startproc
movl$-334379544, %eax
ret


$ gcc-4.8.0 -O2 -S main.c -o-
main:
.LFB0:
.cfi_startproc
movl$16711935, %edx
xorl%eax, %eax
.p2align 4,,10
.p2align 3
.L3:
addl%edx, %eax
addl$1, %edx
cmpl$16721935, %edx
jne.L3
rep ret


[Bug middle-end/56341] GCC produces unaligned data access

2013-06-03 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56341

--- Comment #11 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
Created attachment 30248
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30248action=edit
another example of the alignment faults

Hello Sandra,

good that you continue to work on that bug again.

I agree that there may be two completely different aspects of this bug.
Attached you'll find a new test program that came in my mind when I
looked at PR 41809, the structure s is aligned 2 and packed.
If you make it an array of size 10, each second call of f is given
an odd pointer. But the compiler should know that because of the
aligned(2) attribute.

What is the difference to PR 41809 is this:
1. PR 41809 is not a correct C-program at all, and has never been.
   While this attached new test program is correct C program.
   previous GCC versions did compile that correctly, current GCC does not even
   emit a warning.

2. PR 41809 is not about volatile at all.
   However if you remove the volatile in the test program(s),
   the code is correct and does no longer use unaligned addresses.

On the other hand, volatile might mean that the compiler
should try not to optimize the read instructions, for instance in loops.
But of course not to an extent that the generated code is no longer valid.


[Bug c++/57510] initializer_list memory leak

2013-06-03 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57510

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-03
 Ever confirmed|0   |1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Testcase without memory and random and not requiring valgrind:

#include initializer_list

struct counter
{
  static int n;

  counter() { ++n; }
  counter(const counter) { ++n; }
  ~counter() { --n; }
};

int counter::n = 0;

struct X
{
X () { if (counter::n  1) throw 1; }

counter c;
};

int main ()
{
  try
  {
auto x = { X{}, X{} };
  }
  catch (...)
  {
if ( counter::n != 0 )
  throw;
  }
}


[Bug sanitizer/57507] gcc 4.8: thread sanitizer: std::thread false(?) positive

2013-06-03 Thread dvyukov at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57507

Dmitry Vyukov dvyukov at google dot com changed:

   What|Removed |Added

 CC||dvyukov at google dot com

--- Comment #3 from Dmitry Vyukov dvyukov at google dot com ---
The problem is that libstdc++ is not instrumented. It makes atomic accesses to
the shared_ptr that tsan does not see.

Here are the only events related to address that tsan sees (the first number is
thread id):

#0: alloc(48) = 0x7d0cefd0
#0: MemoryAccess: @0x7f5094bb5021 0x7d0cefd0 size=8 is_write=0
shadow_mem=0x0433bf40 {402418, 0, 0, 0}
#0: __tsan_atomic32_fetch_add(0x7d0cefd8, 4)
#0: MemoryAccess: @0x7f5094bcd8d4 0x7d0cefd8 size=4 is_write=1
shadow_mem=0x0433bf60 {402418, 0, 0, 0}
#1: free(0x7d0cefd0)
#1: MemoryAccessRange: @0x7f5094bb6c27 0x7d0cefd0 size=48 is_write=1
  Write of size 8 at 0x7d0cefd8 by thread T1:
  Previous atomic write of size 4 at 0x7d0cefd8 by main thread:
  Location is heap block of size 48 at 0x7d0cefd0 allocated by main thread:

And here the stack where we detect the race:

#0  __tsan::ReportRace (thr=0x7f8a1c35e800) at tsan_rtl_report.cc:596
#1  0x7f8a1c520565 in __tsan::__tsan_report_race () at tsan_rtl.cc:351
#2  0x7f8a1c5205b8 in __tsan::HandleRace (thr=0x7f8a1c35e800,
shadow_mem=0x433bf60, cur=..., old=...) at tsan_rtl.cc:378
#3  0x7f8a1c5381a3 in __tsan::MemoryAccessImpl (thr=0x7f8a1c35e800,
addr=137490493140952, kAccessSizeLog=3, kAccessIsWrite=true, kIsAtomic=false,
shadow_mem=0x433bf60, cur=...)
at tsan_rtl.cc:462
#4  0x7f8a1c5438ca in __tsan::MemoryAccessRange (thr=0x7f8a1c35e800,
pc=140231157189671, addr=137490493140952, size=40, is_write=true) at
tsan_rtl_thread.cc:363
#5  0x7f8a1c522952 in __tsan::MemoryRangeFreed (thr=0x7f8a1c35e800,
pc=140231157189671, addr=137490493140944, size=48) at tsan_rtl.cc:607
#6  0x7f8a1c5187e6 in __tsan::user_free (thr=0x7f8a1c35e800,
pc=140231157189671, p=0x7d0cefd0) at tsan_mman.cc:138
#7  0x7f8a1c4f8c4b in operator delete (ptr=0x7d0cefd0) at
tsan_interceptors.cc:519
#8  0x7f8a1c4f61ee in
__gnu_cxx::new_allocatorstd::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u
::deallocate(__gnu_cxx::new_allocatorstd::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u ::pointer,
__gnu_cxx::new_allocatorstd::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u ::size_type)
(this=0x7f8a1c35de4f, __p=0x7d0cefd0) at
gccinstall/include/c++/4.9.0/ext/new_allocator.h:110
#9  0x7f8a1c4f60dd in
std::allocator_traitsstd::allocatorstd::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u 
::deallocate(std::allocatorstd::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u  ,
std::allocator_traitsstd::allocatorstd::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u  ::pointer,
std::allocator_traitsstd::allocatorstd::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u  ::size_type)
(__a=..., __p=0x7d0cefd0, __n=1)
at gccinstall/include/c++/4.9.0/bits/alloc_traits.h:377
#10 0x7f8a1c4f6855 in
std::_Sp_counted_ptr_inplacestd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()() ,
std::allocatorstd::thread::_Implstd::_Bind_simplemain(int,
char**)::lambda()()  , (__gnu_cxx::_Lock_policy)2u::_M_destroy(void)
(this=0x7d0cefd0) at
gccinstall/include/c++/4.9.0/bits/shared_ptr_base.h:454
#11 0x7f8a1bc56e7b in _M_release (this=0x7d0cefd0) at
gccbuild/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/shared_ptr_base.h:163
#12 ~__shared_count (this=synthetic pointer, __in_chrg=optimized out)
at
gccbuild/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/shared_ptr_base.h:589
#13 ~__shared_ptr (this=synthetic pointer, __in_chrg=optimized out)
at
gccbuild/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/shared_ptr_base.h:846
#14 ~shared_ptr 

[Bug sanitizer/55561] TSAN: provide a TSAN instrumented libgomp

2013-06-03 Thread dvyukov at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55561

--- Comment #41 from Dmitry Vyukov dvyukov at google dot com ---
Similar problem with libstdc++
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57507


[Bug tree-optimization/57511] [4.8/4.9 Regression] Missing SCEV final value replacement

2013-06-03 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57511

--- Comment #1 from Alexander Monakov amonakov at gcc dot gnu.org ---
The loop invokes signed integer overflow, but changing 1 to 10 still keeps
the missed optimization there.


[Bug tree-optimization/57512] New: Vectorizer: cannot handle accumulation loop of signed char type

2013-06-03 Thread bmei at broadcom dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57512

Bug ID: 57512
   Summary: Vectorizer: cannot handle accumulation loop of signed
char type
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bmei at broadcom dot com

Created attachment 30249
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30249action=edit
Unvectorized with signed char type.

GCC (I used 4.7.2 x86-64 target) cannot vectorize this accumulation loop.
gcc tst.c -O2 -S -ftree-vectorize -fdump-tree-vect-details

signed short mac_char (signed char * __restrict__ in1, signed char *
__restrict__ in2)
{
  unsigned i;
  signed short sum = 0;
  for (i = 0; i  256; i++)
  {
signed char d1 = in1[i];
signed char d2 = in2[i];

sum += ((signed short)d1 * (signed short)d2);
  }
  return sum;
}

If I change signed char to unsigned char, vectorization does work.

unsigned short mac_uchar (unsigned char * __restrict__ in1, unsigned char *
__restrict__ in2)
{
  unsigned i;
  unsigned short sum = 0;
  for (i = 0; i  256; i++)
  {
unsigned char d1 = in1[i];
unsigned char d2 = in2[i];

sum += ((unsigned short)d1 * d2);
  }
  return sum;
}


Looking into .vect file, I think the problem is with handling following gimple
stmts. GCC converts short additions to unsigned short additions and then
converts result back to short because of integer promotion. This confuses
vectorizer so it cannot find correct vector reduction patterns. 

  D.3015_14 = (short unsigned int) D.3014_13;
  sum.0_15 = (short unsigned int) sum_25;
  D.3017_16 = D.3015_14 + sum.0_15;
  sum_17 = (short int) D.3017_16;


[Bug tree-optimization/57512] Vectorizer: cannot handle accumulation loop of signed char type

2013-06-03 Thread bmei at broadcom dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57512

--- Comment #1 from Bingfeng Mei bmei at broadcom dot com ---
Created attachment 30250
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30250action=edit
Vectorized assembly code with unsigned char type


[Bug libstdc++/57513] New: std::regex_token_iterator fails to link

2013-06-03 Thread andy at aligature dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57513

Bug ID: 57513
   Summary: std::regex_token_iterator fails to link
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: andy at aligature dot com

Created attachment 30251
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30251action=edit
test code file

Any code using std::regex_token_iterator fails to link with gcc-4.8.1.  See the
attached code sample.

 ./gcc-4.8.1/bin/g++ -std=c++11 -Wl,-rpath ./gcc-4.8.1/lib64 regex.cpp -o regex
/tmp/ccmknhZw.o: In function `main':
regex.cpp:(.text+0x10): undefined reference to
`std::regex_token_iterator__gnu_cxx::__normal_iteratorchar const*,
std::string, char, std::regex_traitschar ::regex_token_iterator()'
collect2: error: ld returned 1 exit status


[Bug c++/57484] 'std::numeric_limits T ::signaling_NaN()' signaling-bit is incorrect for x86 32-bit.

2013-06-03 Thread zxClhzAApX1EdJwQANqrjLERmFeURQVy at cynd dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484

--- Comment #6 from Charles L. Wilcox zxClhzAApX1EdJwQANqrjLERmFeURQVy at cynd 
dot net ---
(In reply to Paolo Carlini from comment #5)
 Just to clarify that this is neither a library neither a C++ front-end
 issue: limits just uses the various __builtin_nans*

Paolo,

I guessed this was the case from what I could tell using the debugger, but I
wanted some confirmation that I was correct.  Should the Component be changed
from C++ to something else?


[Bug c++/57510] initializer_list memory leak

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57510

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

   Keywords||wrong-code
   Priority|P3  |P2
 CC||jason at gcc dot gnu.org

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Thus I would say wrong code and P2.


[Bug c++/52377] C++11 non-static initializers in unions are not used

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52377

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Thanks!


[Bug libstdc++/57513] std::regex_token_iterator fails to link

2013-06-03 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57513

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Even if it linked it probably wouldn't work because most of regex is
unimplemented.

*** This bug has been marked as a duplicate of bug 53631 ***


[Bug libstdc++/53631] [C++11] regex is unimplemented

2013-06-03 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||andy at aligature dot com

--- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org ---
*** Bug 57513 has been marked as a duplicate of this bug. ***


[Bug c++/57208] Latest chromium compilation fails with enabled LTO

2013-06-03 Thread marxin.liska at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208

--- Comment #3 from Martin Liška marxin.liska at gmail dot com ---
I had a problem with linker, looks like chrome build system uses both linkers.
I hacked build system to use just ld.bfd.

gcc revision: 197652. I know it's about 2 months old, same error is given by
gcc from about 15th May 2013. Latest gcc suffers from a different failure that
will be added in following comment.

ld --version:
GNU ld (GNU Binutils) 2.23.52.20130526

Failure:
g++ -Wl,-z,now -Wl,-z,relro -pthread -Wl,-z,noexecstack -fPIC -Wl,-O1
-Wl,--as-needed -flto -fno-fat-lto-objects -o mksnapshot.x64 -Wl,--start-group
obj/v8/src/mksnapshot.x64.mksnapshot.o obj/v8/tools/gyp/libv8_nosnapshot.x64.a
obj/v8/tools/gyp/libv8_base.x64.a  -Wl,--end-group -fdump-ipa-all --save-temps
lto1: internal compiler error: in inline_call, at ipa-inline-transform.c:267
0x709296 inline_call(cgraph_edge*, bool, veccgraph_edge*, va_heap, vl_ptr*,
int*, bool)
../../gcc/ipa-inline-transform.c:263
0x6fb118 inline_small_functions
../../gcc/ipa-inline.c:1613
0x6fb118 ipa_inline
../../gcc/ipa-inline.c:1794
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.
lto-wrapper: g++ returned 1 exit status
[Leaving LTRANS mksnapshot.x64.ltrans.out]
[Leaving LTRANS /tmp/ccIviE1Z.args]
/home/marxin/gcc-mirror/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/ld:
lto-wrapper failed
collect2: error: ld returned 1 exit status

Dump:
https://docs.google.com/file/d/0B0pisUJ80pO1ck5sUmF5Q0k1Mmc/edit?usp=sharing

Thanks,
Martin

[Bug middle-end/57503] [4.7/4.8 Regression] Expand uses wrong multiply routine

2013-06-03 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57503

--- Comment #6 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Created attachment 30252
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30252action=edit
.165r.expand: dump file with -Os -mmcu=atmega168 -fno-expensive-optimizations

The tree-ssa part for widening_mul can be disabled by
-fno-expensive-optimizations, but the code is still wrong.  Cf. the attached
.expand dump of

long
func1 (unsigned char a, unsigned char b, int c)
{
unsigned ab = a * b;
return (long) ab * c;
}

ab is computed in insn 10 with zero-extended inputs:

(insn 8 5 9 2 (set (reg:HI 53 [ D.1447 ])
(zero_extend:HI (reg/v:QI 49 [ a ]))) cecky.c:4 -1
 (nil))
(insn 9 8 10 2 (set (reg:HI 54 [ D.1447 ])
(zero_extend:HI (reg/v:QI 50 [ b ]))) cecky.c:4 -1
 (nil))
(insn 10 9 11 2 (set (reg:HI 55 [ D.1447 ])
(mult:HI (reg:HI 53 [ D.1447 ])
(reg:HI 54 [ D.1447 ]))) cecky.c:4 -1

This is correct, but then in insn 11 ab gets sign-extended even though it is
unsigned:

(insn 11 10 12 2 (set (reg:SI 56 [ D.1448 ])
(sign_extend:SI (reg:HI 55 [ D.1447 ]))) cecky.c:5 -1
 (nil))

Insn combine combines this wrong extension into a widening multiplication.


[Bug c++/57208] Latest chromium compilation fails with enabled LTO

2013-06-03 Thread marxin.liska at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208

--- Comment #4 from Martin Liška marxin.liska at gmail dot com ---
gcc --version: HEAD (June 3rd, 2013)

Failure:
g++ -Wl,-z,now -Wl,-z,relro -pthread -Wl,-z,noexecstack -fPIC -Wl,-O1
-Wl,--as-needed -flto -fno-fat-lto-objects -o protoc -Wl,--start-group
obj/third_party/protobuf/src/google/protobuf/compiler/protoc.code_generator.o
obj/third_party/protobuf/src/google/protobuf/compiler/protoc.command_line_interface.o
obj/third_party/protobuf/src/google/protobuf/compiler/protoc.plugin.o
obj/third_party/protobuf/src/google/protobuf/compiler/protoc.plugin.pb.o
obj/third_party/protobuf/src/google/protobuf/compiler/protoc.subprocess.o
obj/third_party/protobuf/src/google/protobuf/compiler/protoc.zip_writer.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_enum.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_enum_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_extension.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_file.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_generator.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_helpers.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_message.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_message_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_primitive_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_service.o
obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_string_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_enum.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_enum_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_extension.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_file.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_generator.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_helpers.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_message.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_message_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_primitive_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_service.o
obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_string_field.o
obj/third_party/protobuf/src/google/protobuf/compiler/python/protoc.python_generator.o
obj/third_party/protobuf/src/google/protobuf/compiler/protoc.main.o
obj/third_party/protobuf/libprotobuf_full_do_not_use.a  -Wl,--end-group 
lto1: internal compiler error: in get_alias_symbol, at lto-cgraph.c:921
0x77d283 get_alias_symbol
../../gcc/lto-cgraph.c:921
0x77ff45 input_node
../../gcc/lto-cgraph.c:1012
0x77ff45 input_cgraph_1
../../gcc/lto-cgraph.c:1176
0x77ff45 input_symtab()
../../gcc/lto-cgraph.c:1449
0x507cda read_cgraph_and_symbols
../../gcc/lto/lto.c:2967
0x507cda lto_main()
../../gcc/lto/lto.c:3327
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.
lto-wrapper: g++ returned 1 exit status
/home/marxin/gcc-mirror/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/ld:
lto-wrapper failed
collect2: error: ld returned 1 exit status

Dump:
https://docs.google.com/file/d/0B0pisUJ80pO1MWZRMU5MZ3BYWE0/edit?usp=sharing

Thank you,
Martin

[Bug middle-end/57484] 'std::numeric_limits T ::signaling_NaN()' signaling-bit is incorrect for x86 32-bit.

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org
  Component|c++ |middle-end

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com ---
middle-end seems more appropriate. Richard, can you help me triaging this?
Thanks in advance.


[Bug target/57357] Error with '-mno-sse' and include wchar.h

2013-06-03 Thread thutt at vmware dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57357

--- Comment #5 from thutt at vmware dot com ---
(In reply to Andrew Pinski from comment #3)
 (In reply to thutt from comment #2)
  Can you please explain why it's invalid to return a double if SSE is
  disabled?
  SSE is an x86-specific hardware implementation and has nothing to do with
  language validity from my standpoint.
 
 On x86_64 the ABI says doubles are returned (and passed) via the SSE
 registers.

Compiling the same program with

gcc-4.8 -m64 -mno-sse -c -o /tmp/gungla.o /tmp/gungla.c

does not exhibit the issue.  

Is there simple explanation for the difference in behavior?


[Bug target/57357] Error with '-mno-sse' and include wchar.h

2013-06-03 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57357

--- Comment #6 from Andrew Pinski pinskia at gcc dot gnu.org ---
(In reply to thutt from comment #5) 
 Is there simple explanation for the difference in behavior?

Is the preprocessed source the same?  I bet glibc enables some inline function
at -O1.


[Bug middle-end/57500] [4.9 Regression] Segfault in ipa_record_reference

2013-06-03 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57500

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Jan Hubicka hubicka at gcc dot gnu.org ---
Mine. Seems alias target got lost somehow.


[Bug c++/57514] New: -fno-align-functions doesn't work on member functions

2013-06-03 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57514

Bug ID: 57514
   Summary: -fno-align-functions doesn't work on member functions
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com

[hjl@gnu-6 tmp]$ cat a.cc
class Foo
{
public:
  void yyy ();
};

void
Foo::yyy ()
{
}
[hjl@gnu-6 tmp]$ gcc -S a.cc -fno-align-functions -O3 
[hjl@gnu-6 tmp]$ cat a.s
.filea.cc
.text
.align 2
.globl_ZN3Foo3yyyEv
.type_ZN3Foo3yyyEv, @function
_ZN3Foo3yyyEv:
.LFB0:
.cfi_startproc
rep
ret
.cfi_endproc
.LFE0:
.size_ZN3Foo3yyyEv, .-_ZN3Foo3yyyEv
[hjl@gnu-6 tmp]$ gcc -S a.cc -O3 
[hjl@gnu-6 tmp]$ cat a.s
.filea.cc
.text
.align 2
.p2align 4,,15
.globl_ZN3Foo3yyyEv
.type_ZN3Foo3yyyEv, @function
_ZN3Foo3yyyEv:
.LFB0:
.cfi_startproc
rep
ret
.cfi_endproc
.LFE0:
.size_ZN3Foo3yyyEv, .-_ZN3Foo3yyyEv

C++ front end has

  /* If pointers to member functions use the least significant bit to
 indicate whether a function is virtual, ensure a pointer
 to this function will have that bit clear.  */
  if (TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_pfn
   TREE_CODE (type) == METHOD_TYPE
   DECL_ALIGN (decl)  2 * BITS_PER_UNIT)
DECL_ALIGN (decl) = 2 * BITS_PER_UNIT;

But the function alignment is controlled by -falign-functions and
backends.  All member functions may be aligned to 16 byte on x86.
How does C++ run-tim use the least significant bit to indicate
whether a member function is virtual?


[Bug libstdc++/57515] New: implement begin() and end() for fixed size arrays

2013-06-03 Thread jos at vandenoever dot info
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57515

Bug ID: 57515
   Summary: implement begin() and end() for fixed size arrays
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jos at vandenoever dot info

Currently this code does not compile:


int total = 0;
std::for_each(begin(some_list), end(some_list), [total](int x) {
  total += x;
});

because begin() and end() are not defined for simple arrays. Implementing this
functionality is simple:

template class T
constexpr inline T* begin(T t[]) {
return t;
}
template class T, size_t N
constexpr inline T* end(T (t)[N]) {
return t + sizeof(t) / sizeof(T);
}


[Bug libstdc++/57515] implement begin() and end() for fixed size arrays

2013-06-03 Thread jos at vandenoever dot info
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57515

--- Comment #1 from jos at vandenoever dot info ---
The first line of the code snippet was missing:

int some_list[]={ 1, 2, 3, 4, 5 };
int total = 0;
std::for_each(begin(some_list), end(some_list), [total](int x) {
  total += x;
});


[Bug c++/57514] -fno-align-functions doesn't work on member functions

2013-06-03 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57514

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
 How does C++ run-tim use the least significant bit to indicate
 whether a member function is virtual?

Why not read the ABI?

Basically pointer to member function need to indicate if they are either a
virtual function (then an indirect call via the vtable) or a direct call (just
use the pointer to member function ptr).


[Bug c++/57514] -fno-align-functions doesn't work on member functions

2013-06-03 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57514

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
   Last reconfirmed||2013-06-03
 Resolution|INVALID |---
 Ever confirmed|0   |1

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Andrew Pinski from comment #1)
  How does C++ run-tim use the least significant bit to indicate
  whether a member function is virtual?
 
 Why not read the ABI?
 
 Basically pointer to member function need to indicate if they are either a
 virtual function (then an indirect call via the vtable) or a direct call
 (just use the pointer to member function ptr).

Why does alignment of pointer to member function have anything to do
with function alignment?


[Bug target/57516] New: [avr] Incorrect fixed-point rounding result in the overflow case

2013-06-03 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57516

Bug ID: 57516
   Summary: [avr] Incorrect fixed-point rounding result in the
overflow case
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gjl at gcc dot gnu.org
CC: eric.weddington at atmel dot com
Target: avr

ISO/IEC TR 18037 writes on the roundfx rounding functions:

2.1.7.2 The fixed-point rounding functions

[...] The rounding applied is to-nearest, with unspecified rounding direction
in the halfway case. Fractional bits beyond the rounding point are set to zero
in the result. If the exact result value cannot be represented, the saturated
result value is returned.

Currently, bits beyond the rounding point are always cleared, no matter whether
or not the intermediate result is representable or not.


[Bug target/57516] [avr] Incorrect fixed-point rounding result in the overflow case

2013-06-03 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57516

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

   What|Removed |Added

   Priority|P3  |P5
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-03
   Target Milestone|--- |4.8.2
 Ever confirmed|0   |1


[Bug c++/57514] -fno-align-functions doesn't work on member functions

2013-06-03 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57514

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |INVALID

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org ---
(In reply to H.J. Lu from comment #2)
 Why does alignment of pointer to member function have anything to do
 with function alignment?

Simple a pointer to a member function is a pointer to a function in the non
virtual case.  In the virtual case with the lower bit set, it is some offset
for the vtable.


[Bug libstdc++/57515] implement begin() and end() for fixed size arrays

2013-06-03 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57515

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
The code doesn't compile because it isn't valid, you need to use std::begin and
std::end, and please don't file bug reports that contain only a snippet of code
without includes etc. the bug reporting guidelines clearly say we do not want:

* A source file that #includes header files that are left out of the bug report
(see above)

* A code snippet that won't cause the compiler to produce the exact output
mentioned in the bug report (e.g., a snippet with just a few lines around the
one that apparently triggers the bug, with some pieces replaced with ellipses
or comments for extra obfuscation :-)


[Bug middle-end/57500] [4.9 Regression] Segfault in ipa_record_reference

2013-06-03 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57500

--- Comment #6 from Jan Hubicka hubicka at gcc dot gnu.org ---
OK, the problem here is that the symbol is not created yet, but decl exists.
Why it happens with -g only is bit strange. The following should fix it however
Index: cgraphunit.c
===
--- cgraphunit.c(revision 199591)
+++ cgraphunit.c(working copy)
@@ -656,8 +656,11 @@ cgraph_process_same_body_aliases (void)
   symtab_node node;
   FOR_EACH_SYMBOL (node)
 if (node-symbol.cpp_implicit_alias  !node-symbol.analyzed)
-  symtab_resolve_alias (node,
-   symtab_get_node (node-symbol.alias_target));
+  symtab_resolve_alias
+(node,
+ TREE_CODE (node-symbol.alias_target) == VAR_DECL
+ ? (symtab_node)varpool_node_for_decl (node-symbol.alias_target)
+ : (symtab_node)cgraph_get_create_node (node-symbol.alias_target));
   cpp_implicit_aliases_done = true;
 }


[Bug tree-optimization/57517] New: internal compiler error: in eliminate_temp_copies, at tree-predcom.c:1913

2013-06-03 Thread decker at envsci dot rutgers.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57517

Bug ID: 57517
   Summary: internal compiler error: in eliminate_temp_copies, at
tree-predcom.c:1913
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: decker at envsci dot rutgers.edu

The following code compiles at O2, but not O3.

~/test  gfortran481 -O3 -c module_diffusion_em.f90
module_diffusion_em.f90: In function ‘cal_helicity’:
module_diffusion_em.f90:1:0: internal compiler error: in eliminate_temp_copies,
at tree-predcom.c:1913
 SUBROUTINE cal_helicity (uh, ph, phb, ht, ims, ime, jms, jme, kms, kme,  
 ^
0xc81b7a eliminate_temp_copies
../../gcc-4.8.1/gcc/tree-predcom.c:1913
0xc81b7a tree_predictive_commoning_loop
../../gcc-4.8.1/gcc/tree-predcom.c:2519
0xc82277 tree_predictive_commoning()
../../gcc-4.8.1/gcc/tree-predcom.c:2554
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.

~/test  cat module_diffusion_em.f90
SUBROUTINE cal_helicity (uh, ph, phb, ht, ims, ime, jms, jme, kms, kme,  
 its, ite, jts, jte, kts, kte)
  INTEGER, INTENT( IN ) :: ims, ime, jms, jme, kms, kme,  
   its, ite, jts, jte, kts, kte
  REAL, DIMENSION( ims:ime , jms:jme ), INTENT( IN ) :: ht
  REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT( IN ) :: ph, phb
  REAL, DIMENSION( ims:ime, jms:jme ), INTENT( INOUT ) :: uh
  INTEGER :: i, j, k, ktf, i_start, i_end, j_start, j_end
  REAL :: zl, zu
  REAL, DIMENSION( its-2:ite+2, kts:kte, jts-2:jte+2 ) :: wavg, rvort
  real, parameter :: g = 9.81
  DO j = j_start, j_end
 DO k = kts, ktf
DO i = i_start, i_end
   zu =  (( ph(i ,k+1,j ) + phb(i ,k+1,j ) ) / g - ht(i ,j ) ) + 
(( ph(i-1,k+1,j ) + phb(i-1,k+1,j ) ) / g - ht(i-1,j ) ) + 
(( ph(i ,k+1,j-1) + phb(i ,k+1,j-1) ) / g - ht(i ,j-1) )
   IF ( zl .GE. 2000. .AND. zu .LE. 5000. ) THEN
  IF ( wavg(i,k,j) .GT. 0. .AND. wavg(i,k+1,j) .GT. 0. ) THEN
 uh(i,j) = uh(i,j) + ( wavg(i,k,j) * rvort(i,k,j) + 
  wavg(i,k+1,j) * rvort(i,k+1,j) )  * ( zu - zl )
  ENDIF
   ENDIF
END DO
 END DO
  END DO
END SUBROUTINE cal_helicity

~/test  gfortran481 -v
Using built-in specs.
COLLECT_GCC=/home/decker/local/gcc481/bin/gfortran481
COLLECT_LTO_WRAPPER=/home/decker/local/gcc481/libexec/gcc/x86_64-unknown-linux-gnu/4.8.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.1/configure --prefix=/home/decker/local/gcc481
--program-suffix=481 --enable-languages=c,c++,fortran
--with-gmp=/home/decker/local --with-mpfr=/home/decker/local
--with-mpc=/home/decker/local --with-isl=/home/decker/local
--with-cloog=/home/decker/local
Thread model: posix
gcc version 4.8.1 (GCC)

[Bug libstdc++/57515] implement begin() and end() for fixed size arrays

2013-06-03 Thread jos at vandenoever dot info
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57515

jos at vandenoever dot info changed:

   What|Removed |Added

 Resolution|INVALID |WORKSFORME

--- Comment #3 from jos at vandenoever dot info ---
I've expanded the comment with #include and std::. It *does* compile now, so
the bug was invalid.

#include algorithm
#include iostream

int
main() {
int some_list[]={ 1, 2, 3, 4, 5 };
int total = 0;
std::for_each(std::begin(some_list), std::end(some_list), [total](int x) {
  total += x;
});
std::cout  total  std::endl;
return 0;
}


[Bug rtl-optimization/57359] wrong code for union access at -O3 on x86_64-linux

2013-06-03 Thread dhazeghi at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57359

Dara Hazeghi dhazeghi at yahoo dot com changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |INVALID

--- Comment #10 from Dara Hazeghi dhazeghi at yahoo dot com ---
I think I've managed to wrap my head around the discussion of DR 236, and I
agree that the code submitted is indeed undefined.  Thanks for the discussion
and explanations.


[Bug bootstrap/57438] bootstrap fails on x86_64 darwin in stage2 linking cc1

2013-06-03 Thread mrs at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57438

--- Comment #16 from mrs at gcc dot gnu.org mrs at gcc dot gnu.org ---
Yes please.  If you can run:

  dwarfdump --eh-frame --verify file.o

on all the .o files and see if there are any more lurking in there.  Any that
fail verification will need to be fixed, one way, or another.


[Bug target/47333] [4.8/4.9 regression] g++.dg/lto/20091219 FAILs on Solaris 2 with SUN as

2013-06-03 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47333

--- Comment #35 from Jan Hubicka hubicka at gcc dot gnu.org ---
I am having problem to reproduce it on a cross compiler.  I assume you have
non-plugin-enable LD setup, right?


[Bug target/47333] [4.8/4.9 regression] g++.dg/lto/20091219 FAILs on Solaris 2 with SUN as

2013-06-03 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47333

--- Comment #36 from Jan Hubicka hubicka at gcc dot gnu.org ---
I am having problem to reproduce it on a cross compiler.  I assume you have
non-plugin-enable LD setup, right?

There is problem with chained weakrefs that ought to be fixed by the following
change:
Index: cgraphunit.c
===
--- cgraphunit.c(revision 199591)
+++ cgraphunit.c(working copy)
@@ -656,8 +656,11 @@ cgraph_process_same_body_aliases (void)
@@ -2018,7 +2021,7 @@ compile (void)
   (DECL_ASSEMBLER_NAME (node-symbol.decl)) = 1;
TREE_CHAIN (DECL_ASSEMBLER_NAME (node-symbol.decl))
   = (node-symbol.alias_target ? node-symbol.alias_target
- : DECL_ASSEMBLER_NAME (symtab_alias_target (node)-symbol.decl));
+ : DECL_ASSEMBLER_NAME (symtab_alias_ultimate_target
(node)-symbol.decl));
   }
 #endif


I however do not see any chained weakrefs in the preprocessed file attached, so
I am not quite convinced this can change anything.

Can you, please, run it in debugger and take a look what is the assembler name
ultimate_target is called for and what is its CHAIN_DECL?


[Bug c++/57419] Access control doesn't stop referring to a deleted function

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57419

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed.


[Bug rtl-optimization/57518] New: Redundent insn generated in LRA

2013-06-03 Thread wmi at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57518

Bug ID: 57518
   Summary: Redundent insn generated in LRA
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: wmi at google dot com

Testcase:

char ip[10];
int total, total1;

void foo() {
  int t;

  t = ip[2];
  total = t  0x3;
}

Target: x86_64-linux-gnu
gcc version 4.9.0 20130529 (experimental) (GCC) 
~/workarea/gcc-r199418/build/install/bin/gcc -O2 -S 1.c
.cfi_startproc
movzbl  ip+2(%rip), %eax
movb%al, -16(%rsp) == redundent
movl-16(%rsp), %eax== redundent
andl$3, %eax
movl%eax, total(%rip)
ret
.cfi_endproc


Target: x86_64-linux-gnu
gcc version 4.8.0 20120613 (experimental) (GCC)
gcc -O2 -S 1.c
.cfi_startproc
movzblip+2(%rip), %eax
andl$3, %eax
movl%eax, total(%rip)
ret
.cfi_endproc



IR before LRA:

(insn 12 7 8 2 (set (reg:QI 64 [ ip+2 ])
(mem/j/c:QI (const:DI (plus:DI (symbol_ref:DI (ip)  var_decl
0x761da260 ip)
(const_int 2 [0x2]))) [0 ip+2 S1 A8])) 1.c:9 87
{*movqi_internal}
 (expr_list:REG_EQUIV (mem/j/c:QI (const:DI (plus:DI (symbol_ref:DI (ip) 
var_decl 0x761da260 ip)
(const_int 2 [0x2]))) [0 ip+2 S1 A8])
(nil)))
(insn 8 12 9 2 (parallel [
(set (reg:SI 65 [ D.1731 ])
(and:SI (subreg:SI (reg:QI 64 [ ip+2 ]) 0)
(const_int 3 [0x3])))
(clobber (reg:CC 17 flags))
]) 1.c:9 387 {*andsi_1}
 (expr_list:REG_DEAD (reg:QI 64 [ ip+2 ])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_EQUIV (mem/c:SI (symbol_ref:DI (total)  var_decl
0x761da2f8 total) [2 total+0 S4 A32])
(nil)

IR after LRA:

(insn 12 7 14 2 (set (reg:QI 0 ax [orig:64 ip+2 ] [64])
(mem/j/c:QI (const:DI (plus:DI (symbol_ref:DI (ip)  var_decl
0x761da260 ip)
(const_int 2 [0x2]))) [0 ip+2 S1 A8])) 1.c:9 87
{*movqi_internal}
 (expr_list:REG_EQUIV (mem/j/c:QI (const:DI (plus:DI (symbol_ref:DI (ip) 
var_decl 0x761da260 ip)
(const_int 2 [0x2]))) [0 ip+2 S1 A8])
(nil)))
(insn 14 12 15 2 (set (mem/c:QI (plus:DI (reg/f:DI 7 sp)
(const_int -16 [0xfff0])) [3 %sfp+-16 S1 A64])
(reg:QI 0 ax [orig:64 ip+2 ] [64])) 1.c:9 87 {*movqi_internal}
 (expr_list:REG_DEAD (reg:QI 0 ax [orig:64 ip+2 ] [64])
(nil)))
(insn 15 14 8 2 (set (reg:SI 0 ax [orig:65 D.1731 ] [65])
(mem/c:SI (plus:DI (reg/f:DI 7 sp)
(const_int -16 [0xfff0])) [3 %sfp+-16 S4 A64]))
1.c:9 85 {*movsi_internal}
 (nil))
(insn 8 15 16 2 (parallel [
(set (reg:SI 0 ax [orig:65 D.1731 ] [65])
(and:SI (reg:SI 0 ax [orig:65 D.1731 ] [65])
(const_int 3 [0x3])))
(clobber (reg:CC 17 flags))
]) 1.c:9 387 {*andsi_1}
 (expr_list:REG_EQUIV (mem/c:SI (symbol_ref:DI (total)  var_decl
0x761da2f8 total) [2 total+0 S4 A32])
(nil)))

IRA Trace:

Pass 0 for finding pseudo/allocno costs

a0 (r65,l0) best GENERAL_REGS, allocno GENERAL_REGS
a1 (r64,l0) best NO_REGS, allocno NO_REGS

a1's rclass are all NO_REGS because it has REG_EQUIV note (equivalent to mem
ip+2)

Because reg 64 is marked as equivalent to mem ip+2, insn 12 is expected to be
deleted and reg 64 in insn 8 replaced by mem ip+2. In LRA constraints, insn 12
is not deleted because the subreg op in insn 8 (see lra-constraints.c:3662
r199418). In addition, reg 64's rclass is NO_REGS, so redundent spills are
inserted. 

The mode size check (lra-constraints.c:3662 r199418) needs to be considered in
update_equiv_regs in IRA, in order not to mark the reg 64 equivalent with mem
ip + 2 in this case.


[Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute

2013-06-03 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org ---
Patch, pending review: http://gcc.gnu.org/ml/fortran/2013-06/msg00027.html


[Bug debug/57519] New: DW_TAG_imported_declaration put in wrong class (base class instead of derived class)

2013-06-03 Thread dje at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57519

Bug ID: 57519
   Summary: DW_TAG_imported_declaration put in wrong class (base
class instead of derived class)
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dje at google dot com

Created attachment 30253
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30253action=edit
assembler output

[with svn head as of today]

class base
{
 public:
  int foo (int x) { return x; }
};

class derived : base
{
 public:
  using base::foo;
  double foo (double x) { return x; }
};

int
main ()
{
  derived *d = new derived;
  return d-foo (0);
}

bash$ g++ -m64 -c -o using-method.o64 using-method.cc -g -save-temps -dA
-fverbose-asm

I see this in the debug info for base (instead of derived):

.uleb128 0x6# (DIE (0x58) DW_TAG_imported_declaration)
.byte   0x1 # DW_AT_decl_file (using-method.cc)
.byte   0x8 # DW_AT_decl_line
.long   0x35# DW_AT_import

I would have expected this to be in the debug info for derived.

[full output attached]


[Bug rtl-optimization/57462] ira-costs considers only a single register at a time

2013-06-03 Thread josh.m.conner at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57462

--- Comment #2 from Joshua Conner josh.m.conner at gmail dot com ---
No problem - I appreciate you taking the time to respond.  This has a
noticeable impact on codegen for ARM because of the redundancy in the CPU/FPU
functionality and cost of transferring data between integer/FP registers, so I
thought it would be worth mentioning in case it wasn't recognized already. 
Thanks.


[Bug bootstrap/57438] bootstrap fails on x86_64 darwin in stage2 linking cc1

2013-06-03 Thread dhazeghi at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57438

--- Comment #17 from Dara Hazeghi dhazeghi at yahoo dot com ---
(In reply to m...@gcc.gnu.org from comment #16)
 Yes please.  If you can run:
 
   dwarfdump --eh-frame --verify file.o
 
 on all the .o files and see if there are any more lurking in there.  Any
 that fail verification will need to be fixed, one way, or another.

From gcc/ I see the following:

1 errors found in EH frame for dfp.o (x86_64).
1 errors found in EH frame for gengtype-state.o (x86_64).
1 errors found in EH frame for hooks.o (x86_64).
3 errors found in EH frame for i386.o (x86_64).
3 errors found in EH frame for insn-output.o (x86_64).
2 errors found in EH frame for langhooks.o (x86_64).
1 errors found in EH frame for sched-deps.o (x86_64).
9 errors found in EH frame for targhooks.o (x86_64).
1 errors found in EH frame for tree-profile.o (x86_64).
1 errors found in EH frame for tree-ssa-loop-im.o (x86_64).
2 errors found in EH frame for tree.o (x86_64).
1 errors found in EH frame for var-tracking.o (x86_64).

Shall I upload the object code or the assembly code?


[Bug c++/57520] New: alias template substitution/deduction failure

2013-06-03 Thread stephen.pope at predict dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57520

Bug ID: 57520
   Summary: alias template substitution/deduction failure
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: stephen.pope at predict dot com

gcc 4.8.1 (as well as 4.8.0 and 4.7.2) appears to fail to correctly substitute
the alias's template-id for an alias template instantiation when reference or
by pointer types are involved.

I was able to whittle a messy real-world problem down to a minor variation on
the non-normative example provided in the C++ 11 standard section temp.alias
(14.5.7/2):

#include vector

using namespace std;

template class T
using Vec = vectorT, allocatorT;

template template class class TT
void f1(TTint v);

template template class class TT
void f2(TTint v);

template template class class TT
void f3(TTint* v);

template template class, class class TT
void g1(TTint, allocatorint v);

template template class, class class TT
void g2(TTint, allocatorint v);

template template class, class class TT
void g3(TTint, allocatorint* v);

void foo()
{
   Vecint v;

   f1(v);// gcc and clang both correctly yield no matching function error
   g1(v);

   f2(v);// clang yields a no matching function error
   g2(v);// gcc yields a no matching function error

   f3(v);// clang yields a no matching function error
   g3(v);// gcc yields a no matching function error
}

(compile with -std=c++11)

As noted above, clang 3.3 (recent pull from svn) and gcc (4.7.2, 4.8.0, and
4.8.1) agree on the handling of f1/g1 in conformance with the standard, but
differ on the handling of f2/g2 and f3/g3 (to be clear, all tested versions of
gcc incorrectly accept the call to f2() and f3() and error on the call to g2()
and g3()).

All indications, both in this example and in my real problem, are that gcc is
not correctly converting the type of the instantiation of the alias template
(e.g. Vecint) to the aliased type (e.g. vectorint, allocatorint) prior to
trying to deduce the template parameter for the instantiations of f2, f3, g2,
and g3.

Here is the full error output of gcc-4.8.1:

% gcc-4.8.1/bin/g++ -Wall -Wextra -std=c++11 temp.cpp
temp.cpp: In function 'void foo()':
temp.cpp:30:8: error: no matching function for call to 'f1(Vecint)'
f1(v);// gcc and clang both correctly yield no matching function error
^
temp.cpp:30:8: note: candidate is:
temp.cpp:9:6: note: templatetemplateclass class TT void f1(TTint)
 void f1(TTint v);
  ^
temp.cpp:9:6: note:   template argument deduction/substitution failed:
temp.cpp:30:8: error: wrong number of template arguments (2, should be 1)
f1(v);// gcc and clang both correctly yield no matching function error
^
temp.cpp:8:34: error: provided for 'templateclass class TT'
 template template class class TT
  ^
temp.cpp:34:8: error: no matching function for call to 'g2(Vecint)'
g2(v);// gcc yields a no matching function error
^
temp.cpp:34:8: note: candidate is:
temp.cpp:21:6: note: templatetemplateclass, class class TT void g2(TTint,
std::allocatorint )
 void g2(TTint, allocatorint v);
  ^
temp.cpp:21:6: note:   template argument deduction/substitution failed:
temp.cpp:34:8: error: wrong number of template arguments (1, should be 2)
g2(v);// gcc yields a no matching function error
^
temp.cpp:20:41: error: provided for 'templateclass, class class TT'
 template template class, class class TT
 ^
temp.cpp:37:9: error: no matching function for call to 'g3(Vecint*)'
g3(v);// gcc yields a no matching function error
 ^
temp.cpp:37:9: note: candidate is:
temp.cpp:24:6: note: templatetemplateclass, class class TT void g3(TTint,
std::allocatorint *)
 void g3(TTint, allocatorint* v);
  ^
temp.cpp:24:6: note:   template argument deduction/substitution failed:
temp.cpp:37:9: error: wrong number of template arguments (1, should be 2)
g3(v);// gcc yields a no matching function error
 ^
temp.cpp:23:41: error: provided for 'templateclass, class class TT'
 template template class, class class TT
 ^


[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)

2013-06-03 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030

--- Comment #17 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
(In reply to Mikael Pettersson from comment #16)
 FWIW, I've bootstrapped and regtested gcc 4.9 with r192676 reapplied and the
 dse.c and cselib.c hunks of r193802 reverted on several hosts (x86_64,
 sparc64, powerpc64, armv5tel, m68k) without regressions.

Wow, thanks.

So, what's needed is to just spell out the exact patch (a description as above
doesn't suffice unfortunately), send it to gcc-patches and CC Eric who I think
would ok it at a glance.  Here's me hoping someone will beat me to it, but it
just might happen *this* month...



[Bug c++/57471] [4.9 Regression] Bizarre error for template parameter pack

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57471

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-03
Summary|[C++11] Bizarre error for   |[4.9 Regression] Bizarre
   |template parameter pack |error for template
   ||parameter pack
 Ever confirmed|0   |1


[Bug c++/57443] Captured variable hide the parameter if they have the same name in Lambdas

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57443

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

   Keywords||wrong-code
   Priority|P3  |P2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-03
 Blocks||54367
 Ever confirmed|0   |1
   Severity|major   |normal


[Bug bootstrap/57438] bootstrap fails on x86_64 darwin in stage2 linking cc1

2013-06-03 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57438

--- Comment #18 from Jack Howarth howarth at nitro dot med.uc.edu ---
Do we have any idea why this problem is latent with --checking=release and
--checking=yes but is triggered by --disable-checking?


[Bug c++/57444] ICE in instantiate_type for invalid use of member with using-declaration

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57444

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-03
 Ever confirmed|0   |1


[Bug c++/57471] [4.9 Regression] Bizarre error for template parameter pack

2013-06-03 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57471

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
Regressed withe the fix for PR c++/56679.


[Bug tree-optimization/57521] New: wrong code for expressions in loop at -O3

2013-06-03 Thread dhazeghi at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57521

Bug ID: 57521
   Summary: wrong code for expressions in loop at -O3
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dhazeghi at yahoo dot com

The following code is miscompiled with current gcc trunk at -O3 optimization on
x86_64-linux.  I've tried to reduce it somewhat from the original form.  Note
that 'e' is only touched in one place.  This also fails on 4.7 and 4.8 and is a
regression from gcc 4.6.


$ gcc-trunk -v
gcc version 4.9.0 20130603 (experimental) [trunk revision 199601] (GCC) 
$ gcc-trunk -O2 wrong.c 
$ ./a.out 
1
$ gcc-4.6 -O3 wrong.c 
$ ./a.out 
1
$ gcc-trunk -O3 wrong.c 
$ ./a.out 
0
$
--

int printf (const char *, ...);

int a, b, c, d, o = 1, p;
short e;

int
fn1 (int * p1)
{
int f, g, h, j = 0, k = 0, l = 0;
unsigned int i;
int *m[1] = { l };
for (; b = 0; b--)
{
if (*p1)
if (j = 0)
{
int n = 1;
e = 1;
h = a ? a : 1 % n;
g = h  0 ? 0 : h + 1;
k = c + g;
}
else
continue;
else
{

f = d  0 ? 0 : d + 1;
i = f;
j = 1 + i;
}
l++;
}
return k;
}

int
main ()
{
for (;; p++)
{
fn1 (o);
break;
}
printf (%d\n, e);
return 0;
}


[Bug bootstrap/57438] bootstrap fails on x86_64 darwin in stage2 linking cc1

2013-06-03 Thread mrs at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57438

--- Comment #19 from mrs at gcc dot gnu.org mrs at gcc dot gnu.org ---
I'll build my own tree, thanks.  I was hoping that it was a singular issue and
we'd be done with it.


[Bug middle-end/57500] [4.9 Regression] Segfault in ipa_record_reference

2013-06-03 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57500

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #7 from David Edelsohn dje at gcc dot gnu.org ---
The proposed patch fixes the regression.  I commmitted it with permission.


[Bug c++/57419] Access control doesn't stop referring to a deleted function

2013-06-03 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57419

--- Comment #5 from David Krauss potswa at mac dot com ---
Does this also fix #57429?


[Bug c++/57429] Dependent function call with one visible declaration, deleted

2013-06-03 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57429

--- Comment #1 from David Krauss potswa at mac dot com ---
To clarify the example, it's failing at definition time. There are two separate
failures illustrated, a function template and a class template.


[Bug tree-optimization/57521] [4.7/4.8/4.9 Regression] wrong code for expressions in loop at -O3

2013-06-03 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57521

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-04
 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |4.7.4
Summary|wrong code for expressions  |[4.7/4.8/4.9 Regression]
   |in loop at -O3  |wrong code for expressions
   ||in loop at -O3
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r175704 aka PR46787.