[Bug libstdc++/45093] New: Different definitions of _Rb_tree::{erase,_M_destroy_node} between C++98 and C++0x

2010-07-27 Thread jyasskin at gcc dot gnu dot org
Using gold for its --detect-odr-violations:

$ cat test.cc
#include 
extern void foo();
int main() {
  foo();
  std::map m1;
  m1.insert(std::make_pair(1, 2));
  m1.erase(m1.begin());
}
$ cat test2.cc
#include 

void foo() {
  std::map m1;
  m1.insert(std::make_pair(1, 2));
  m1.erase(m1.begin());
}
$ ~/opensource/gcc/trunk/install/bin/g++-4.6svn -g -c -std=c++98 test.cc
$ ~/opensource/gcc/trunk/install/bin/g++-4.6svn -g -c -std=c++0x test2.cc
$ ~/opensource/gcc/trunk/install/bin/g++-4.6svn -g -std=c++0x test2.o test.o -o
test -Wl,--detect-odr-violations
.../gcc/trunk/install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/ld:
error: while linking test: symbol 'std::_Rb_tree, std::_Select1st >, std::less,
std::allocator >
>::_M_destroy_node(std::_Rb_tree_node >*)' defined in
multiple places (possible ODR violation):
 
.../gcc/trunk/install/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/bits/stl_tree.h:385
from test.o
 
.../gcc/trunk/install/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/bits/stl_tree.h:410
from test2.o
.../gcc/trunk/install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/ld:
error: while linking test: symbol 'std::_Rb_tree, std::_Select1st >, std::less,
std::allocator >
>::erase(std::_Rb_tree_iterator >)' defined in
multiple places (possible ODR violation):
 
.../gcc/trunk/install/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/bits/stl_tree.h:1362
from test2.o
 
.../gcc/trunk/install/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/bits/stl_tree.h:1398
from test.o
collect2: ld returned 1 exit status
$


_M_destroy_node() appears to only differ in whether some fields with trivial
destructors get destroyed, but erase() is defined with different return types
between the two versions.

So, two questions: Are -std=c++98 and -std=c++0x supposed to be
binary-compatible?
Would you accept a patch to unify the two definitions?


-- 
   Summary: Different definitions of
_Rb_tree::{erase,_M_destroy_node} between C++98 and
C++0x
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jyasskin at gcc dot gnu dot org


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



[Bug debug/45088] pointer type information lost in debuginfo

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2010-07-27 08:29 ---
So, to add c1's type, we call gen_typedef_with_usage with A typedef variant.
19880  /* If TYPE is a typedef type variant, let's generate debug info
19881 for the parent typedef which TYPE is a type of.  */
19882  if (typedef_variant_p (type))
19883{
19884  if (TREE_ASM_WRITTEN (type))
19885return;
19886
19887  /* Prevent broken recursion; we can't hand off to the same type.  */
19888  gcc_assert (DECL_ORIGINAL_TYPE (TYPE_NAME (type)) != type); 
19889
19890  /* Use the DIE of the containing namespace as the parent DIE of
19891 the type description DIE we want to generate.  */
19892  if (DECL_CONTEXT (TYPE_NAME (type))
19893  && TREE_CODE (DECL_CONTEXT (TYPE_NAME (type))) ==
NAMESPACE_DECL)
19894context_die = get_context_die (DECL_CONTEXT (TYPE_NAME (type)));
19895
19896  TREE_ASM_WRITTEN (type) = 1;
19897
19898  gen_decl_die (TYPE_NAME (type), NULL, context_die); 
19899  return;

TREE_ASM_WRITTEN is not set on type originally, we compute context_die.  Then
set TREE_ASM_WRITTEN and call gen_decl_die.  TYPE_NAME (type) is a redundant
typedef though, so in gen_decl_die:
20544  if (is_redundant_typedef (decl))
20545gen_type_die (TREE_TYPE (decl), context_die);
and TREE_TYPE (decl) here is the type on which we've just set TREE_ASM_WRITTEN,
so gen_type_die_with_usage is recursed with the same type and as
TREE_ASM_WRITTEN is now already set, it returns immediately, without creating
any type.  So, I think we need to special case is_redundant_typedef (TYPE_NAME
(type))) in gen_type_die_with_usage in the typedef_variant_p (type) handling
and ensure we actually create the DECL_ORIGINAL_TYPE in that case and equate
that also to the underlying type.  Or this could be a bug in the FE.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot
   ||org, dodji at gcc dot gnu
   ||dot org


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



[Bug fortran/45086] For whole-file checking, also check whether an INTERFACE matches

2010-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2010-07-27 08:29 ---
  subroutine foo(x)
 integer, allocatable :: x
  end subroutine

  integer, allocatable :: ptr
  call foo(ptr)
  end

Error: Dummy argument 'x' of procedure 'foo' at (1) has an attribute that
requires an explicit interface for this procedure

Expected: Could be more explicit, maybe.

 * * *

  subroutine foo(x)
 integer, allocatable :: x
  end subroutine

  interface
subroutine foo(x)
   integer :: x
end subroutine
  end interface
  integer, allocatable :: ptr
  call foo(ptr)
  end

Expected: Mismatched interface is detected.

 * * *

  subroutine foo(x)
 integer, allocatable :: x
  end subroutine

  interface
subroutine foo(x)
   integer :: x
end subroutine
  end interface
  integer :: ptr
  call foo(ptr)
  end

Expected: Mismatched actual argument is detected as well.


-- 


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



[Bug tree-optimization/45083] [4.3/4.4/4.5/4.6 Regression] strange warning text from gcc

2010-07-27 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-07-26 18:55:56 |2010-07-27 08:37:51
   date||


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



[Bug fortran/40873] -fwhole-file -fwhole-program: Wrong decls cause too much to be optimized away

2010-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #27 from burnus at gcc dot gnu dot org  2010-07-27 08:44 ---
Subject: Bug 40873

Author: burnus
Date: Tue Jul 27 08:44:22 2010
New Revision: 162557

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162557
Log:
2010-07-26  Tobias Burnus  

PR fortran/40873
* trans-decl.c (gfc_get_extern_function_decl): Fix generation
for functions which are later in the same file.
(gfc_create_function_decl, build_function_decl,
build_entry_thunks): Add global argument.
* trans.c (gfc_generate_module_code): Update
gfc_create_function_decl call.
* trans.h (gfc_create_function_decl): Update prototype.
* resolve.c (resolve_global_procedure): Also resolve for
IFSRC_IFBODY.

2010-07-26  Tobias Burnus  

PR fortran/40873
* gfortran.dg/whole_file_22.f90: New test.
* gfortran.dg/whole_file_23.f90: New test.


Added:
trunk/gcc/testsuite/gfortran.dg/whole_file_22.f90
trunk/gcc/testsuite/gfortran.dg/whole_file_23.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/fortran/trans.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/45024] wrong nesting for inner template class

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2010-07-27 08:45 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug debug/45006] [4.6 regression] Failed to bootstrap

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2010-07-27 08:46 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/40873] -fwhole-file -fwhole-program: Wrong decls cause too much to be optimized away

2010-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #28 from burnus at gcc dot gnu dot org  2010-07-27 08:46 ---
FIXED on the trunk (4.6). Thanks for the reports, comments, patches,
suggestions, and reviews!

See PR 45077, PR 45087, and PR 44945 for remaining -fwhole-(file,program) bugs.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug debug/44668] class->DW_TAG_typedef is missing DW_AT_accessibility

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2010-07-27 08:48 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug debug/44375] goto_locus lost at -O0 during cfg cleanup

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2010-07-27 08:58 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/44641] Generated constructors and destructors get wrong debug location when a typedef uses a forward declaration of the type before the definition

2010-07-27 Thread ubizjak at gmail dot com


--- Comment #12 from ubizjak at gmail dot com  2010-07-27 09:05 ---
Created an attachment (id=21324)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21324&action=view)
alpha asm dump

This test still fails on alpha with attached asm dump.


-- 


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



[Bug lto/45089] -Os -g -fwhopr dwarf2out ICE

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-07-27 09:17 ---
Trying to reduce ... it happens only with whopr.

Program received signal SIGSEGV, Segmentation fault.
0x005d33ba in prune_unused_types_mark (die=0x0, dokids=1)
at /space/rguenther/src/svn/trunk/gcc/dwarf2out.c:21729
21729 if (die->die_mark == 0)

#1  0x005d3349 in prune_unused_types_walk_attribs (die=0x75a12d68)
at /space/rguenther/src/svn/trunk/gcc/dwarf2out.c:21711
21711   prune_unused_types_mark (a->dw_attr_val.v.val_die_ref.die,
1);
(gdb) p a->dw_attr_val.v.val_die_ref
$1 = {die = 0x0, external = 0}

so we created a dw_val_class_die_ref attr with a null DIE.  Which we do
here:

#1  0x005c9c14 in add_pure_or_virtual_attribute (die=0x75a12d68, 
func_decl=0x755cd300)
at /space/rguenther/src/svn/trunk/gcc/dwarf2out.c:17409
17407 if (debug_info_level > DINFO_LEVEL_TERSE
17408 && DECL_CONTEXT (func_decl))
17409   add_AT_die_ref (die, DW_AT_containing_type,
17410   lookup_type_die (DECL_CONTEXT (func_decl)));

where DECL_CONTEXT is a RECORD_TYPE.

Supposedly the type is unused and thus doesn't get output.

Note that we're arriving here via

#5  0x00c74a47 in expand_call_inline (bb=0x754782d8, 
stmt=0x752c89b0, id=0x7fffd970)
at /space/rguenther/src/svn/trunk/gcc/tree-inline.c:4024
4024  (*debug_hooks->outlining_inline_function) (cg_edge->callee->decl);


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-07-27 09:17:50
   date||


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



[Bug lto/44152] ICE on compiling xshow.f of xplor-nih with -O3 -ffast-math -fwhopr

2010-07-27 Thread irar at il dot ibm dot com


--- Comment #4 from irar at il dot ibm dot com  2010-07-27 09:25 ---
I am testing a patch.


-- 

irar at il dot ibm dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |irar at il dot ibm dot com
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-07-22 14:47:20 |2010-07-27 09:25:25
   date||


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



[Bug lto/45089] -Os -g -fwhopr dwarf2out ICE

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2010-07-27 09:26 ---
So the issue may be that the LTO FE doesn't announce any decls to the debug
machinery.

> grep debug_hooks cp/*.c
cp/decl.c:debug_hooks->type_decl (tdecl, 0);
cp/decl.c:  /*debug_hooks->set_name (t, decl);*/
cp/name-lookup.c:(*debug_hooks->global_decl) (alias);
cp/name-lookup.c:   (*debug_hooks->imported_module_or_decl) (name_space,
NULL_TREE,
cp/name-lookup.c: (*debug_hooks->imported_module_or_decl) (t,
NULL_TREE, context, false);
cp/optimize.c:  (*debug_hooks->deferred_inline_function) (fn);


-- 


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



[Bug rtl-optimization/45051] [4.6 Regression]: gcc.c-torture/execute/builtins/abs-2.c and abs-3.c due to "track subwords of DImode allocnos"

2010-07-27 Thread bernds at gcc dot gnu dot org


--- Comment #4 from bernds at gcc dot gnu dot org  2010-07-27 09:35 ---
Subject: Bug 45051

Author: bernds
Date: Tue Jul 27 09:34:51 2010
New Revision: 162558

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162558
Log:
PR rtl-optimization/45051
* reload1.c (delete_output_reload): Use refers_to_regno_p rather
than reg_mentioned_p.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/reload1.c


-- 


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



[Bug libstdc++/45093] Different definitions of _Rb_tree::{erase,_M_destroy_node} between C++98 and C++0x

2010-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #1 from paolo dot carlini at oracle dot com  2010-07-27 09:42 
---
Definitely they are not, **no** binary compatibility between C++98 and C++0x.
And I can tell you there are **many** more incompatibilities beyond this one
which you noticed.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug lto/45089] -Os -g -fwhopr dwarf2out ICE

2010-07-27 Thread hubicka at ucw dot cz


--- Comment #4 from hubicka at ucw dot cz  2010-07-27 09:43 ---
Subject: Re:  -Os -g -fwhopr dwarf2out ICE

> So the issue may be that the LTO FE doesn't announce any decls to the debug
> machinery.
Because they are already announced before streaming ;).  I am not at all
familiar with this, can we just announce every type streamed in? Or do we need
to stream whatever frontend did?  deferred_inline_function should be all fine.

Honza


-- 


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



[Bug tree-optimization/45083] [4.3/4.4/4.5/4.6 Regression] strange warning text from gcc

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2010-07-27 09:44 ---
Subject: Bug 45083

Author: jakub
Date: Tue Jul 27 09:43:59 2010
New Revision: 162559

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162559
Log:
PR tree-optimization/45083
* tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.

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

Added:
trunk/gcc/testsuite/gcc.dg/pr45083.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-inline.c


-- 


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



[Bug lto/45089] -Os -g -fwhopr dwarf2out ICE

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2010-07-27 09:46 ---
Well - I have no idea ;)  We can look at what the FE announces after I finished
testcase reduction.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|rguenther at suse dot de|rguenth at gcc dot gnu dot
   ||org


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



[Bug fortran/45077] ICE with -fwhole-file in fold_convert_loc, at fold-const.c:2021

2010-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2010-07-27 09:49 ---
Reduced test case:
!--
module iso_red
  type, public :: varying_string
 character(LEN=1), dimension(:), allocatable :: chars
  end type varying_string
end module iso_red

module ifiles
  use iso_red, string_t => varying_string
contains
  function line_get_string_advance (line) result (string)
type(string_t) :: string
character :: line
  end function line_get_string_advance
end module ifiles

module syntax_rules
  use iso_red, string_t => varying_string
  use ifiles, only: line_get_string_advance
contains
  subroutine syntax_init_from_ifile ()
type(string_t) :: string
   string = line_get_string_advance ("")
  end subroutine syntax_init_from_ifile
end module syntax_rules
end
!--

The ICE occurs for:
  gfc_trans_assignment (trans-expr.c:5561)
gfc_trans_assignment_1 (trans-expr.c:5419)
  gfc_trans_scalar_assign (trans-expr.c:4909)
   fold_convert_loc (fold-const.c:2021)

The fancy_abort occurs because TREE_CODE (type) is gcc_unreachable, type is the
second argument. The call is:
  gfc_add_modify (&block, lse->expr,
   fold_convert (TREE_TYPE (lse->expr), rse->expr));
Namely "TREE_TYPE (lse->expr)" as "location_t" is added as first via #define.

Hereby LHS is variable "string" and RHS is function "line_get_string_advance".
Both have the same type: expr1->ts.u.derived->name == "varying_string" and
point to the _same_ expr2->ts.u.derived->backend_decl.

However, the data type looks different at TREE_TYPE, i.e.
lse->expr.common.type != rse->expr.common.type

My working theory is that one generates a different back-end decl for
type(varying_string) and type(string_t).

However, ts.u.derived->backend_decl is the same - and as
ts.type.derived->components{,->ts.u.cl}->backend_decl is the same, I am not
sure whether this theory is correct.


-- 


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



[Bug tree-optimization/45083] [4.3/4.4/4.5 Regression] strange warning text from gcc

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #7 from jakub at gcc dot gnu dot org  2010-07-27 10:17 ---
Fixed on the trunk so far.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|4.3.2 4.6.0 4.5.0   |4.3.2 4.5.0
  Known to work|4.2.4   |4.2.4 4.6.0
Summary|[4.3/4.4/4.5/4.6 Regression]|[4.3/4.4/4.5 Regression]
   |strange warning text from   |strange warning text from
   |gcc |gcc


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



[Bug debug/45048] duplicate DW_TAG_variable

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2010-07-27 10:39 ---
One of these DW_TAG_variable DIEs at the DW_TAG_namespace scope is created
from declare_in_namespace when processing decls_for_scope of a lexical block.
The other one comes from declare_in_namespace from dwarf2out_global_decl
from wrapup_globals_for_namespace.
The problem is that the C++ FE doesn't unify externs, so the debugger sees
different decls with the same name, but different DECL_UID.
So for say
namespace N
{
  int i;
  void foo (void)
  {
{ extern int i; i++; }
{ extern int i; i++; }
{ extern int i; i++; }
{ extern int i; i++; }
  }
}
there will be 5 DW_TAG_variable DIEs in DW_TAG_namespace.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dodji at gcc dot gnu dot
   ||org, jason at gcc dot gnu
   ||dot org


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



[Bug lto/45089] -Os -g -fwhopr dwarf2out ICE

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-07-27 11:06 ---
Created an attachment (id=21325)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21325&action=view)
testcase

> g++ -r -nostdlib -O[s23] -g -flto d2.3.3.C d3.3.3.C

The key is that nsAccessible are not merged because one instance has
a complete nsRoleMapEntry while the other one an incomplete one.


-- 


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



[Bug libstdc++/45093] Different definitions of _Rb_tree::{erase,_M_destroy_node} between C++98 and C++0x

2010-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2010-07-27 11:14 
---
Well, this specific snippet will work at some point, because we want to use
namespace association for the C++0x containers. Of course no binary
compatibility in general, C++0x and C++98 code will not be allowed in general
to interoperate, for *many* reasons (just as an example std::list will be
changed to have a constant time size in C++0x)


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug debug/45048] duplicate DW_TAG_variable

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2010-07-27 11:14 ---
Perhaps a question is whether we need to actually call gen_decl_die in
declare_in_namespace if local_scope_p (context_die).  AFAIK we don't use the
DW_TAG_variable from the namespace scope in any attributes...


-- 


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



[Bug c/44828] [4.3/4.4 Regression] possible integer wrong code bug

2010-07-27 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|rguenth at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


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



[Bug fortran/37744] ICE-on-invalid with ISO_C_BINDING

2010-07-27 Thread mikael at gcc dot gnu dot org


--- Comment #12 from mikael at gcc dot gnu dot org  2010-07-27 11:29 ---
I might take a look someday.
It seems a namespace is freed to soon. -fwhole-file works as it retains
namespaces till the end.


-- 

mikael at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |mikael at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-12-09 19:12:15 |2010-07-27 11:29:21
   date||


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



[Bug target/45094] New: [arm] wrong instructions for dword move in some cases

2010-07-27 Thread akos dot pasztory at gmail dot com
gcc 4.5.0

$ cat /tmp/bug.c
extern int printf(const char *fmt, ...);
void foo(void *x) { printf("%p\n", x); }
void bar(long long *x) { printf("%lld ", *x); foo(x); }

int main()
{
bar(&(long long){0ll});
bar(&(long long){1ll});
bar(&(long long){2ll});
bar(&(long long){3ll});
bar(&(long long){4ll});
bar(&(long long){5ll});
bar(&(long long){6ll});
bar(&(long long){7ll});
bar(&(long long){8ll});
bar(&(long long){9ll});
bar(&(long long){10ll});
bar(&(long long){11ll});
bar(&(long long){12ll});
bar(&(long long){13ll});
bar(&(long long){14ll});
bar(&(long long){15ll});
bar(&(long long){16ll});
bar(&(long long){17ll});
bar(&(long long){18ll});
bar(&(long long){19ll});
bar(&(long long){20ll});
bar(&(long long){21ll});
bar(&(long long){22ll});
bar(&(long long){23ll});
bar(&(long long){24ll});
bar(&(long long){25ll});
bar(&(long long){26ll});
bar(&(long long){27ll});
bar(&(long long){28ll});
bar(&(long long){29ll});
bar(&(long long){30ll});
bar(&(long long){31ll});
bar(&(long long){32ll});
bar(&(long long){33ll});
bar(&(long long){34ll});
bar(&(long long){35ll});
bar(&(long long){36ll});
bar(&(long long){37ll});
bar(&(long long){38ll});
bar(&(long long){39ll});
bar(&(long long){40ll});
bar(&(long long){41ll});
bar(&(long long){42ll});
bar(&(long long){43ll});
bar(&(long long){44ll});
return 0;
}

$ cc -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -S -O2 /tmp/bug.c

inspect bug.s.  for a while gcc emits correct instructions:

...
mov r2, #29
mov r3, #0
strdr2, [r0, #-240]!
bl  bar
add r0, sp, #360
mov r2, #30
mov r3, #0
strdr2, [r0, #-248]!
bl  bar

however when reaching offset -256, it emits LDRs instead of STRs:

add r0, sp, #360
mov r2, #31
mov r3, #0
ldr r2, [r0, #-256]!
ldr r3, [r0, #4]
bl  bar

the issue seems to be a typo in gcc/config/arm/arm.c:output_move_double()
introduced by commit [1].  i've tried to fix by applying the following:

--- ../gcc-4.5.0/gcc/config/arm/arm.c.orig  2010-07-27 14:22:42.0
+0300
+++ ../gcc-4.5.0/gcc/config/arm/arm.c   2010-07-27 14:23:05.0 +0300
@@ -12182,13 +12182,13 @@ output_move_double (rtx *operands)
{
  if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
{
- output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops);
- output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
+ output_asm_insn ("str%?\t%0, [%1, %2]!", otherops);
+ output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
}
  else
{
- output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
- output_asm_insn ("ldr%?\t%0, [%1], %2", otherops);
+ output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
+ output_asm_insn ("str%?\t%0, [%1], %2", otherops);
}
}
  else if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)

[1]
http://repo.or.cz/w/official-gcc.git/commitdiff/f1225f6f0f9b7acb3a64314f2113807ebeea5abf?hp=78f46d4510475cdb9532b10787e82b476c9eeef1


-- 
   Summary: [arm] wrong instructions for dword move in some cases
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: akos dot pasztory at gmail dot com
 GCC build triplet: i486-linux-gnu
  GCC host triplet: i486-linux-gnu
GCC target triplet: arm-linux-gnueabi


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



[Bug target/42240] [4.3/4.4 Regression, avr] wrong epilogue on naked function

2010-07-27 Thread anitha dot boyapati at atmel dot com


--- Comment #12 from anitha dot boyapati at atmel dot com  2010-07-27 11:35 
---
confirmed for 4.5.0. Yet to verify for HEAD.


-- 


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



[Bug objc/44140] ObjC lto/whopr fails

2010-07-27 Thread iains at gcc dot gnu dot org


--- Comment #19 from iains at gcc dot gnu dot org  2010-07-27 12:03 ---
Subject: Bug 44140

Author: iains
Date: Tue Jul 27 12:02:50 2010
New Revision: 162563

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162563
Log:

re-enable tls and lto tests for ObjC/C++

PR ObjC/44140
* obj-c++.dg/torture/tls/thr-init-1.mm: Re-enable test.
* obj-c++.dg/torture/tls/thr-init-2.mm: Ditto.
* obj-c++.dg/torture/tls/thr-init-3.mm: Ditto.
* obj-c++.dg/torture/trivial.mm: Ditto.
* objc.dg/torture/tls/thr-init-2.m: Ditto.
* objc.dg/torture/tls/thr-init-3.m: Ditto.
* objc.dg/torture/tls/thr-init.m: Ditto.
* objc.dg/torture/trivial.m: Ditto.


Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
trunk/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
trunk/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm
trunk/gcc/testsuite/obj-c++.dg/torture/trivial.mm
trunk/gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
trunk/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
trunk/gcc/testsuite/objc.dg/torture/tls/thr-init.m
trunk/gcc/testsuite/objc.dg/torture/trivial.m


-- 


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



[Bug fortran/44660] [regression 4.4/4.5] ICE in resolve_equivalence()

2010-07-27 Thread mikael at gcc dot gnu dot org


--- Comment #20 from mikael at gcc dot gnu dot org  2010-07-27 12:07 ---
4.6 done, backports pending.


-- 

mikael at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|4.4.5 4.5.1 4.6.0   |4.4.5 4.5.1
  Known to work|4.3.6   |4.3.6 4.6.0
Summary|[regression 4.4/4.5/4.6] ICE|[regression 4.4/4.5] ICE in
   |in resolve_equivalence()|resolve_equivalence()
   Target Milestone|--- |4.4.5


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



[Bug tree-optimization/44152] ICE on compiling xshow.f of xplor-nih with -O3 -ffast-math -fwhopr

2010-07-27 Thread irar at gcc dot gnu dot org


--- Comment #5 from irar at gcc dot gnu dot org  2010-07-27 12:26 ---
Subject: Bug 44152

Author: irar
Date: Tue Jul 27 12:26:31 2010
New Revision: 162564

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162564
Log:

PR tree-optimization/44152
* tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
complex numbers for further check.
(vect_supported_load_permutation_p): Check nodes with 
complex numbers.


Added:
trunk/gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-slp.c


-- 


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



[Bug bootstrap/45067] [4.6 regression] ARM bootstrap failure: internal compiler error: in expand_widen_pattern_expr, at optabs.c:522

2010-07-27 Thread ramana at gcc dot gnu dot org


--- Comment #5 from ramana at gcc dot gnu dot org  2010-07-27 12:32 ---
Patch posted here in response to the original thread. :

http://gcc.gnu.org/ml/gcc-patches/2010-07/msg02076.html


-- 


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



[Bug lto/44802] -flto -fuse-linker-plugin causes undefined references from libc in the link phase

2010-07-27 Thread moonshine at kapsi dot fi


--- Comment #6 from moonshine at kapsi dot fi  2010-07-27 12:42 ---
(In reply to comment #5)

I compiled xz with a trunk compiler and this seems to be fixed now. Thanks!


-- 

moonshine at kapsi dot fi changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/45085] incorrect -Wuninitialized warning

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2010-07-27 12:42 ---
Simplified testcase for -m32 -O2 -Wuninitialized:

struct S { char *s1; long s2; };
struct T { int t1; long t2; long t3; };
extern int fn2 (void);
extern int fn3 (struct T);
extern struct T fn4 ();
extern int fn5 (char **, long *, int);
extern void fn6 (void);
extern void fn7 (void *);
struct S *fn10 ();
static int p;
static void *q;
extern struct T r;

static struct T
fn8 (struct T x, int y)
{
  struct S *u = fn10 ();
  int v = fn5 (&u->s1, &u->s2, 0);
  while (1)
{
  if (p)
fn6 ();
  if (fn3 (x))
return fn4 ();
  if (y & 1)
return r;
  v = fn5 (&u->s1, &u->s2, 1);
}
}

struct T
fn9 (struct T x, int y)
{
  struct T t = fn8 (x, y);
  if (fn2 ())
fn7 (q);
  return t;
}

void *
fn1 (void)
{
  return fn9;
}


-- 


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



[Bug target/45094] [arm] wrong instructions for dword move in some cases

2010-07-27 Thread ramana at gcc dot gnu dot org


--- Comment #1 from ramana at gcc dot gnu dot org  2010-07-27 12:47 ---
Patches should be submitted to gcc-patc...@gcc.gnu.org after having been
regression tested. Please also submit a testcase and appropriate Changelog
entries as documented here -  http://gcc.gnu.org/contribute.html#patches


Having said that however, this patch looks alright to me from the naked eye and
code inspection.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2010-07-27 12:47:57
   date||


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



[Bug tree-optimization/45085] incorrect -Wuninitialized warning

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2010-07-27 12:58 ---
Seems to be caused by partial inlining.
fnsplit splits off the:
  q.0D.2030_3 = qD.1248;
  fn7 (q.0D.2030_3);
part of fn9 into fn9.part.0:
fn9.part.0 ()
{
  intD.0 D.2054;
  voidD.32 * q.0D.2053;
  struct T tD.2052;
  struct T xD.2050;
  intD.0 yD.2051;

:

:
  q.0D.2053_1 = qD.1248;
  fn7 (q.0D.2053_1);

:
   = tD.2052;
  return ;

}

and uses:
  tD.1261 = fn9.part.0 (); [return slot optimization]
in fn9 instead.  tD.2052 isn't initialized anywhere though (and, it is unclear
why it did that at all, as that hunk doesn't modify t).  Perhaps with -m32 and
aggregate return (where in the end t will be returned via hidden reference) t
is addressable?  In any case, this is fnsplit bug.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu dot
   ||org


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



[Bug tree-optimization/44152] ICE on compiling xshow.f of xplor-nih with -O3 -ffast-math -fwhopr

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-07-27 13:03 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0


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



[Bug tree-optimization/44977] [4.4 Regression] ice in propagate_rhs_into_lhs, at tree-ssa-dom.c:2728

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2010-07-27 13:05 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/44977] [4.4 Regression] ice in propagate_rhs_into_lhs, at tree-ssa-dom.c:2728

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2010-07-27 13:05 ---
Subject: Bug 44977

Author: rguenth
Date: Tue Jul 27 13:05:17 2010
New Revision: 162565

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162565
Log:
2010-07-27  Richard Guenther  

PR tree-optimization/44977
* tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
SSA form.

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

Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr44977.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/tree-ssa-dom.c


-- 


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



[Bug c/44555] [4.3/4.4 Regression] Pointer evalutions, is that expected ?

2010-07-27 Thread rguenth at gcc dot gnu dot org


--- Comment #11 from rguenth at gcc dot gnu dot org  2010-07-27 13:07 
---
Subject: Bug 44555

Author: rguenth
Date: Tue Jul 27 13:07:28 2010
New Revision: 162566

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162566
Log:
2010-07-27  Richard Guenther  

PR c/44555
* c-common.c (c_common_truthvalue_conversion): Remove
premature and wrong optimization concering ADDR_EXPRs.

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

Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr44555.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/c-common.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug target/35491] wrong ABI for some struct passing with vector code

2010-07-27 Thread iains at gcc dot gnu dot org


--- Comment #4 from iains at gcc dot gnu dot org  2010-07-27 13:24 ---
Subject: Bug 35491

Author: iains
Date: Tue Jul 27 13:24:08 2010
New Revision: 162567

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162567
Log:

PR target/35491
PR target/29090

Merge from Apple local 4.2.1.
2005-05-11  Stan Shebs  
Fix 64-bit varargs for Darwin (Radar 4028089).
* config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
* config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
Add argument, add case for 8-byte register half-filled with a float.
(rs6000_darwin64_record_arg_advance_recurse): Detect and handle
single-precision floats specially.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/config/rs6000/rs6000.h


-- 


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



[Bug target/29090] gcc.dg-struct-layout-1 failures on Darwin PPC at -m64

2010-07-27 Thread iains at gcc dot gnu dot org


--- Comment #21 from iains at gcc dot gnu dot org  2010-07-27 13:24 ---
Subject: Bug 29090

Author: iains
Date: Tue Jul 27 13:24:08 2010
New Revision: 162567

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162567
Log:

PR target/35491
PR target/29090

Merge from Apple local 4.2.1.
2005-05-11  Stan Shebs  
Fix 64-bit varargs for Darwin (Radar 4028089).
* config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
* config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
Add argument, add case for 8-byte register half-filled with a float.
(rs6000_darwin64_record_arg_advance_recurse): Detect and handle
single-precision floats specially.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/config/rs6000/rs6000.h


-- 


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



[Bug tree-optimization/45085] [4.6 Regression] incorrect -Wuninitialized warning

2010-07-27 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.6.0
  Known to work||4.5.0
   Last reconfirmed|-00-00 00:00:00 |2010-07-27 13:25:07
   date||
Summary|incorrect -Wuninitialized   |[4.6 Regression] incorrect -
   |warning |Wuninitialized warning
   Target Milestone|--- |4.6.0


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



[Bug target/29090] gcc.dg-struct-layout-1 failures on Darwin PPC at -m64

2010-07-27 Thread iains at gcc dot gnu dot org


--- Comment #22 from iains at gcc dot gnu dot org  2010-07-27 13:26 ---
Subject: Bug 29090

Author: iains
Date: Tue Jul 27 13:26:34 2010
New Revision: 162568

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162568
Log:

PR target/29090
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
Darwin64 ABI, for zero-sized objects.


Modified:
trunk/gcc/config/rs6000/rs6000.c


-- 


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



[Bug fortran/45092] [4.6 Regression] ICE in output_constructor_regular_field, at varasm.c:5016

2010-07-27 Thread hjl dot tools at gmail dot com


--- Comment #8 from hjl dot tools at gmail dot com  2010-07-27 13:33 ---
It is caused by revision 158253:

http://gcc.gnu.org/ml/gcc-cvs/2010-04/msg00357.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-07-27 13:33:34
   date||


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



[Bug fortran/44857] [4.6 Regression] ICE in output_constructor_regular_field, at varasm.c:4996

2010-07-27 Thread burnus at gcc dot gnu dot org


--- Comment #7 from burnus at gcc dot gnu dot org  2010-07-27 13:35 ---
Different report, same problem: PR 45092


-- 


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



[Bug bootstrap/44768] arm-linux bootstrap broken on expmed.c:157:3: warning ICE

2010-07-27 Thread ramana at gcc dot gnu dot org


--- Comment #8 from ramana at gcc dot gnu dot org  2010-07-27 13:37 ---
Fixed.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug tree-optimization/45085] [4.6 Regression] incorrect -Wuninitialized warning

2010-07-27 Thread hubicka at gcc dot gnu dot org


--- Comment #4 from hubicka at gcc dot gnu dot org  2010-07-27 14:13 ---
Hmm, mine :)

Honza


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |hubicka at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-07-27 13:25:07 |2010-07-27 14:13:35
   date||


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



[Bug c++/43912] lambda debug info does not describe captured variables

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2010-07-27 15:14 ---
I've briefly looked at this.  For !processing_template_decl, it shouldn't be
hard to walk LAMBDA_EXPR_CAPTURE_LIST e.g. in cp_parser_lambda_expression
and add copy_decl of the vars from the capture list with DECL_VALUE_EXPR
pointing to this->__fieldname or *this->__fieldname.  Templates slightly
complicate that though, as if this was to be done say in build_lambda_object
guarded with !processing_template_decl, lambda_function probably doesn't have
body instantiated yet.  And if cp_parser_lambda_expression does this
unconditionally, we'd need to handle tsubsting DECL_VALUE_EXPRs.
Or we could add them during genericization of the lambda function, but we'd
then need to be able to find the corresponding LAMBDA_EXPR from the
FUNCTION_DECL.

Another thing is whether it is right to call the __lambda* argument this.  Even
when it is artificial, it is still visible to the user in the debugger. 
Shouldn't it be made DECL_NAMELESS once the vars with DECL_VALUE_EXPR are
added?

Jason, what do you prefer here?

Testcase I was playing with:

extern "C" void abort ();

template
F
foo (int *x, int *y, F f)
{
  for (; x != y; ++x)
f (*x);
  return f;
}

template
void
bar (T *w)
{
  T s = 0, t = 0, u = 0, v = 10;

  foo (&w[0], &w[10], [&s, &t, u, v] (T &a) -> void
{
  s += a;
  t += s + 10 - v;
});

  if (s != 45 || t != 165)
abort ();
}

int
main ()
{
  int s = 0, t = 0, u = 10, v = 10;
  int w[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

  foo (&w[0], &w[10], [&s, &t, u, v] (int &a) -> void
{
  s += a;
  t += s + 10 - v;
});

  if (s != 45 || t != 165)
abort ();

  bar (w);
  return 0;
}


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-07-27 15:14:11
   date||


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



[Bug c++/45082] Static const signed int class member causes undefined symbol.

2010-07-27 Thread rwitmer at xmission dot com


--- Comment #5 from rwitmer at xmission dot com  2010-07-27 15:27 ---
Thanks for all the great comments and insight.

I'm still confused as to why when the BUFF_SIZE was defined as:
static const   signed int BUFF_SIZE = 20;
it caused the error, but when it was defined as:
static const unsigned int BUFF_SIZE = 20;
it did not.

void funky(const int& in) is an example of a library call I had to use, I have
no control over the author's over zealousness on using a const int& parameter.

There were 2 things that solved the problem I was seeing:

1. Adding a const   signed int BUFF_SIZE; line to the .cpp file.  

I've seen lots of code where we define constants ala, static const int
BUFF_SIZE=20; in the .hpp file without any const int myclass::BUFF_SIZE; in the
.cpp files.  Is that wrong to exclude them, should we be including them in the
.cpp file?

2. Declaring the type during the call, ala, funky((int)myclass::BUFF_SIZE);

I'm not sure which is the better solution.


-- 


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



[Bug c/45079] [4.5/4.6 Regression] function names in error message (�c_maybe_const_expr� not supported by 'pp_c_expression')

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2010-07-27 15:46 ---
Subject: Bug 45079

Author: jakub
Date: Tue Jul 27 15:46:25 2010
New Revision: 162575

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162575
Log:
PR c/45079
* c-pretty-print.c (pp_c_expression): Handle C_MAYBE_CONST_EXPR.

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

Added:
trunk/gcc/testsuite/gcc.dg/pr45079.c
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-pretty-print.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c/45079] [4.5 Regression] function names in error message (�c_maybe_const_expr� not supported by 'pp_c_expression')

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2010-07-27 15:50 ---
Fixed on the trunk so far, with 4.5 will wait until 4.5.1 is released.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|4.5.0 4.6.0 |4.5.0
  Known to work|4.4.4   |4.4.4 4.6.0
Summary|[4.5/4.6 Regression]|[4.5 Regression] function
   |function names in error |names in error message
   |message |(�c_maybe_const_expr�
   |(�c_maybe_const_expr�   |not supported by
   |not supported by|'pp_c_expression')
   |'pp_c_expression')  |


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



[Bug target/44290] [4.5 only] __naked attribute is broken

2010-07-27 Thread jiez at gcc dot gnu dot org


--- Comment #26 from jiez at gcc dot gnu dot org  2010-07-27 17:34 ---
Subject: Bug 44290

Author: jiez
Date: Tue Jul 27 17:33:30 2010
New Revision: 162579

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162579
Log:
PR target/44290
Revert
2010-07-23  Jie Zhang  
* tree-sra.c (ipa_sra_preliminary_function_checks): Return
false if ! tree_versionable_function_p.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-sra.c


-- 


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



[Bug testsuite/44701] [4.6 regression] PR44492 fix broke gcc.target/powerpc/asm-es-2.c

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #9 from jakub at gcc dot gnu dot org  2010-07-27 17:53 ---
Subject: Bug 44701

Author: jakub
Date: Tue Jul 27 17:52:35 2010
New Revision: 162581

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162581
Log:
PR testsuite/44701
* doc/md.texi: Clarify m and es constraints on PowerPC and m and S
constraints on IA-64.

* gcc.target/powerpc/asm-es-2.c (f2): Add <> constraints.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/md.texi
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/asm-es-2.c


-- 


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



[Bug target/44542] expand_one_stack_var_at may set DECL_ALIGN to a too high value

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #17 from jakub at gcc dot gnu dot org  2010-07-27 17:55 ---
Subject: Bug 44542

Author: jakub
Date: Tue Jul 27 17:54:32 2010
New Revision: 162582

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162582
Log:
PR target/44542
* cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
instead of MAX_SUPPORTED_STACK_ALIGNMENT.
(expand_one_var): Don't consider DECL_ALIGN for variables for
which expand_one_stack_var_at has been already called.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgexpand.c


-- 


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



[Bug testsuite/44701] [4.6 regression] PR44492 fix broke gcc.target/powerpc/asm-es-2.c

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #10 from jakub at gcc dot gnu dot org  2010-07-27 17:58 ---
Should be fixed now.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug target/44542] expand_one_stack_var_at may set DECL_ALIGN to a too high value

2010-07-27 Thread jakub at gcc dot gnu dot org


--- Comment #18 from jakub at gcc dot gnu dot org  2010-07-27 17:59 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug target/42495] redundant memory load

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #6 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:35 
---
Subject: Bug 42495

Author: mkuvyrkov
Date: Tue Jul 27 19:34:55 2010
New Revision: 162590

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162590
Log:
PR rtl-optimization/40956
PR target/42495
PR middle-end/42574
* gcse.c (compute_code_hoist_vbeinout): Consider more expressions
for hoisting.
(hoist_code): Count occurences in current block too.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c


-- 


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



[Bug rtl-optimization/40956] Constants are never candidates for hoisting

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #6 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:35 
---
Subject: Bug 40956

Author: mkuvyrkov
Date: Tue Jul 27 19:34:55 2010
New Revision: 162590

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162590
Log:
PR rtl-optimization/40956
PR target/42495
PR middle-end/42574
* gcse.c (compute_code_hoist_vbeinout): Consider more expressions
for hoisting.
(hoist_code): Count occurences in current block too.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c


-- 


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



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #11 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:35 
---
Subject: Bug 42574

Author: mkuvyrkov
Date: Tue Jul 27 19:34:55 2010
New Revision: 162590

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162590
Log:
PR rtl-optimization/40956
PR target/42495
PR middle-end/42574
* gcse.c (compute_code_hoist_vbeinout): Consider more expressions
for hoisting.
(hoist_code): Count occurences in current block too.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c


-- 


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



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #12 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:38 
---
Subject: Bug 42574

Author: mkuvyrkov
Date: Tue Jul 27 19:38:10 2010
New Revision: 162592

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162592
Log:
PR target/42495
PR middle-end/42574
* gcse.c (hoist_expr_reaches_here_p): Remove excessive check.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c


-- 


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



[Bug target/42495] redundant memory load

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #7 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:38 
---
Subject: Bug 42495

Author: mkuvyrkov
Date: Tue Jul 27 19:38:10 2010
New Revision: 162592

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162592
Log:
PR target/42495
PR middle-end/42574
* gcse.c (hoist_expr_reaches_here_p): Remove excessive check.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c


-- 


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



[Bug target/42495] redundant memory load

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #8 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:42 
---
Subject: Bug 42495

Author: mkuvyrkov
Date: Tue Jul 27 19:42:15 2010
New Revision: 162594

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162594
Log:
PR target/42495
PR middle-end/42574
* config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
* config/arm/arm.md (define_split "J", define_split "K"): Make
IRA/reload friendly.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.md


-- 


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



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #13 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:42 
---
Subject: Bug 42574

Author: mkuvyrkov
Date: Tue Jul 27 19:42:15 2010
New Revision: 162594

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162594
Log:
PR target/42495
PR middle-end/42574
* config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
* config/arm/arm.md (define_split "J", define_split "K"): Make
IRA/reload friendly.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.md


-- 


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



[Bug target/42495] redundant memory load

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #9 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:45 
---
Subject: Bug 42495

Author: mkuvyrkov
Date: Tue Jul 27 19:44:51 2010
New Revision: 162595

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162595
Log:
PR target/42495
PR middle-end/42574
* config/arm/arm.c (legitimize_pic_address): Use
gen_calculate_pic_address pattern to emit calculation of PIC address.
(will_be_in_index_register): New function.
(arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
(thumb1_legitimate_address_p): Use it provided !strict_p.
* config/arm/arm.md (calculate_pic_address): New expand and split.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.md


-- 


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



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #14 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:45 
---
Subject: Bug 42574

Author: mkuvyrkov
Date: Tue Jul 27 19:44:51 2010
New Revision: 162595

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162595
Log:
PR target/42495
PR middle-end/42574
* config/arm/arm.c (legitimize_pic_address): Use
gen_calculate_pic_address pattern to emit calculation of PIC address.
(will_be_in_index_register): New function.
(arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
(thumb1_legitimate_address_p): Use it provided !strict_p.
* config/arm/arm.md (calculate_pic_address): New expand and split.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.md


-- 


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



[Bug rtl-optimization/40956] Constants are never candidates for hoisting

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #7 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:46 
---
Subject: Bug 40956

Author: mkuvyrkov
Date: Tue Jul 27 19:46:26 2010
New Revision: 162596

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162596
Log:
PR rtl-optimization/40956
* config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
constants.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c


-- 


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



[Bug target/42495] redundant memory load

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #10 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:48 
---
Subject: Bug 42495

Author: mkuvyrkov
Date: Tue Jul 27 19:48:15 2010
New Revision: 162597

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162597
Log:
PR target/42495
PR middle-end/42574
* basic-block.h (get_dominated_to_depth): Declare.
* dominance.c (get_dominated_to_depth): New function, use
get_all_dominated_blocks as a base.
(get_all_dominated_blocks): Use get_dominated_to_depth.

* gcse.c (occr_t, VEC (occr_t, heap)): Define.
(hoist_exprs): Remove.
(alloc_code_hoist_mem, free_code_hoist_mem): Update.
(compute_code_hoist_vbeinout): Add debug print outs.
(hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.

* params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
quadratic behavior.
* params.h (MAX_HOIST_DEPTH): New macro.
* doc/invoke.texi (max-hoist-depth): Document.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/basic-block.h
trunk/gcc/doc/invoke.texi
trunk/gcc/dominance.c
trunk/gcc/gcse.c
trunk/gcc/params.def
trunk/gcc/params.h


-- 


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



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #15 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:48 
---
Subject: Bug 42574

Author: mkuvyrkov
Date: Tue Jul 27 19:48:15 2010
New Revision: 162597

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162597
Log:
PR target/42495
PR middle-end/42574
* basic-block.h (get_dominated_to_depth): Declare.
* dominance.c (get_dominated_to_depth): New function, use
get_all_dominated_blocks as a base.
(get_all_dominated_blocks): Use get_dominated_to_depth.

* gcse.c (occr_t, VEC (occr_t, heap)): Define.
(hoist_exprs): Remove.
(alloc_code_hoist_mem, free_code_hoist_mem): Update.
(compute_code_hoist_vbeinout): Add debug print outs.
(hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.

* params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
quadratic behavior.
* params.h (MAX_HOIST_DEPTH): New macro.
* doc/invoke.texi (max-hoist-depth): Document.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/basic-block.h
trunk/gcc/doc/invoke.texi
trunk/gcc/dominance.c
trunk/gcc/gcse.c
trunk/gcc/params.def
trunk/gcc/params.h


-- 


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



[Bug c++/45095] New: "internal compiler error: Segmentation fault" compiling p7zip

2010-07-27 Thread john dot m dot wildenthal at jpmchase dot com
Trying to compile p7zip on a Power6 LPAR running AIX 6.1.  Copied
makefile.aix_gcc over makefile.machine and ran "make all3".  Error occurs at

g++ -O -s -save-temps  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_LARGE_FILES  -DNDEBUG -D_REENTRANT -DENV_UNIX  -fPIC  -DEXTERNAL_CODECS 
-DUNICODE -D_UNICODE -c -I.  -I../../../myWindows  -I../../../ 
-I../../../include_windows ../../Archive/7z/7zHandlerOut.cpp
../../Archive/7z/7zHandlerOut.cpp:484: internal compiler error: Segmentation
fault


-- 
   Summary: "internal compiler error: Segmentation fault" compiling
p7zip
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: john dot m dot wildenthal at jpmchase dot com
 GCC build triplet: ../configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld
--enabl
GCC target triplet: powerpc-ibm-aix6.1.0.0


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



[Bug c++/45095] "internal compiler error: Segmentation fault" compiling p7zip

2010-07-27 Thread john dot m dot wildenthal at jpmchase dot com


--- Comment #1 from john dot m dot wildenthal at jpmchase dot com  
2010-07-27 20:03 ---
Created an attachment (id=21326)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21326&action=view)
7zHandlerOut.ii

Bzip2 archive of the preprocessed file where the error occurs.


-- 


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



[Bug target/45094] [arm] wrong instructions for dword move in some cases

2010-07-27 Thread siarhei dot siamashka at gmail dot com


--- Comment #2 from siarhei dot siamashka at gmail dot com  2010-07-27 
20:07 ---
Created an attachment (id=21327)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21327&action=view)
simplified testcase

Confirmed with gcc 4.5.0 here. Also tried but could not reproduce the problem
with gcc 4.4 (it just does not seem to be able to emit ldrd/strd instructions
with pre/post increment).


-- 


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



[Bug bootstrap/44993] [4.6 regression] sparc64-linux bootstrap broken

2010-07-27 Thread ebotcazou at gcc dot gnu dot org


--- Comment #3 from ebotcazou at gcc dot gnu dot org  2010-07-27 20:15 
---
Introduced by the fix for PR middle-end/44790:

2010-07-07  Richard Guenther  

PR middle-end/44790
* expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
for expanding the constant offset for MEM_REFs.

The problem is that:

  name = MEM[(struct
exp_ch3__make_predefined_primitive_specs__B_99__stream_op_tss_names___PAD
*)D.14526_1156 + 4294967296B];

is expanded into

sethi   %hi(stream_op_tss_names.6060+4294967296), %l2
or  %l2, %lo(stream_op_tss_names.6060+4294967296), %l2

which overflows since sethi is a 32-bit operator.

Going through POINTER_PLUS_EXPR to expand a const addresss apparently bypasses
checks for valid addresses in the back-end.


-- 


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



[Bug c++/45096] New: [4.6 Regression] g++.dg/cpp0x/auto3.C

2010-07-27 Thread hjl dot tools at gmail dot com
On Linux/x86, revision 162583 gave

FAIL: g++.dg/cpp0x/auto3.C  (test for errors, line 13)
FAIL: g++.dg/cpp0x/auto3.C (test for excess errors)

/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:6:6:
error: declaration of 'auto x' has no initializer^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:10:18:
error: inconsistent deduction for 'auto': 'int' and then 'double'^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:13:20:
error: unable to deduce 'std::initializer_list<_Tp> [2]' from '{1, 2}'^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:20:3:
error: invalid use of 'auto'^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:20:7:
error: template argument 1 is invalid^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:20:12:
error: invalid type in declaration before '=' token^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:20:14:
error: cannot convert 'A' to 'int' in initialization^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:22:10:
error: 'foo' function uses 'auto' type specifier without late return type^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:24:15:
error: parameter declared 'auto'^M

PASS: g++.dg/cpp0x/auto3.C  (test for errors, line 6)
PASS: g++.dg/cpp0x/auto3.C  (test for errors, line 10)
FAIL: g++.dg/cpp0x/auto3.C  (test for errors, line 13)
PASS: g++.dg/cpp0x/auto3.C  (test for errors, line 20)
PASS: g++.dg/cpp0x/auto3.C  (test for errors, line 22)
PASS: g++.dg/cpp0x/auto3.C  (test for errors, line 24)
FAIL: g++.dg/cpp0x/auto3.C (test for excess errors)
Excess errors:
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C:13:20:
error: unable to deduce 'std::initializer_list<_Tp> [2]' from '{1, 2}'

Revision 162576 is OK.


-- 
   Summary: [4.6 Regression] g++.dg/cpp0x/auto3.C
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



[Bug c++/45096] [4.6 Regression] g++.dg/cpp0x/auto3.C

2010-07-27 Thread hjl dot tools at gmail dot com


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


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



[Bug c++/45095] "internal compiler error: Segmentation fault" compiling p7zip

2010-07-27 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2010-07-27 20:49 
---
Note that 4.2.x is not maintained anymore, thus if the problem exist only in
that branch will not be fixed. I would suggest trying either a late release
from the 4.2.x branch, like 4.2.4 or, much better, the current release branch,
4.5.x.


-- 


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



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #16 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 21:06 
---
Subject: Bug 42574

Author: mkuvyrkov
Date: Tue Jul 27 21:06:31 2010
New Revision: 162600

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162600
Log:
PR rtl-optimization/40956
PR target/42495
PR middle-end/42574
* gcc.target/arm/pr40956.c, gcc.target/arm/pr42495.c,
* gcc.target/arm/pr42574.c: Add tests.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr40956.c
trunk/gcc/testsuite/gcc.target/arm/pr42495.c
trunk/gcc/testsuite/gcc.target/arm/pr42574.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/40956] Constants are never candidates for hoisting

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #8 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 21:06 
---
Subject: Bug 40956

Author: mkuvyrkov
Date: Tue Jul 27 21:06:31 2010
New Revision: 162600

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162600
Log:
PR rtl-optimization/40956
PR target/42495
PR middle-end/42574
* gcc.target/arm/pr40956.c, gcc.target/arm/pr42495.c,
* gcc.target/arm/pr42574.c: Add tests.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr40956.c
trunk/gcc/testsuite/gcc.target/arm/pr42495.c
trunk/gcc/testsuite/gcc.target/arm/pr42574.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/42495] redundant memory load

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #11 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 21:06 
---
Subject: Bug 42495

Author: mkuvyrkov
Date: Tue Jul 27 21:06:31 2010
New Revision: 162600

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162600
Log:
PR rtl-optimization/40956
PR target/42495
PR middle-end/42574
* gcc.target/arm/pr40956.c, gcc.target/arm/pr42495.c,
* gcc.target/arm/pr42574.c: Add tests.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr40956.c
trunk/gcc/testsuite/gcc.target/arm/pr42495.c
trunk/gcc/testsuite/gcc.target/arm/pr42574.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/40956] Constants are never candidates for hoisting

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #9 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 21:10 
---
Should be fixed now by the above patch series.


-- 

mkuvyrkov at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/42495] redundant memory load

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #12 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 21:11 
---
Should be fixed now by the above patch series.


-- 

mkuvyrkov at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-07-27 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #17 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 21:11 
---
Should be fixed now by the above patch series.


-- 

mkuvyrkov at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/45051] [4.6 Regression]: gcc.c-torture/execute/builtins/abs-2.c and abs-3.c due to "track subwords of DImode allocnos"

2010-07-27 Thread bernds at gcc dot gnu dot org


--- Comment #5 from bernds at gcc dot gnu dot org  2010-07-27 21:49 ---
Assuming fixed and closing.  Please reopen if you still have a problem.


-- 

bernds at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug boehm-gc/34544] pthread_default_stacksize_np failed.

2010-07-27 Thread danglin at gcc dot gnu dot org


--- Comment #2 from danglin at gcc dot gnu dot org  2010-07-27 21:56 ---
pthread_default_stacksize_np fails with error EPERM.

[New process 12140, lwp 4032369]
[process 12140, lwp 4032369 exited]

Breakpoint 1, main () at ../../../gcc/boehm-gc/tests/test.c:1797

I think this is caused by the current implementation of __gthread_active_p
on hpux.  The above behavior suggests an alternate implementation.


-- 


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



[Bug tree-optimization/45034] [4.3/4.4/4.5/4.6 Regression] "safe" conversion from unsigned to signed char gives broken code

2010-07-27 Thread mikpe at it dot uu dot se


--- Comment #8 from mikpe at it dot uu dot se  2010-07-27 22:18 ---
(In reply to comment #7)
> In fact, it seems that the error is already there at the very
> beginning: the .original dump shows
> 
> fixnum_neg
> {
>   ux = (unsigned char) x;
>   uy = (unsigned char) -(signed char) ux;
>   ...
> }
> 
> That is, the negation of unsigned char value is implemented by casting it to
> signed char, which introduces signed overflow if the value of x is -128.  As
> far as I understand the C standard, this seems incorrect.

It depends on how GCC interprets that cast and negation:
- if the cast has C semantics, then (signed char)ux causes overflow
- if the cast wraps, then it is fine and yields (signed char)-128
- if the negation has C semantics, then (signed char)-128 is widened to int and
then negated to 128
- if the negation maps signed char to signed char, then it causes overflow

IMO, a serious problem with the C standard is that

signed char x = -1;
signed char y = (signed char)(unsigned char)x;

triggers signed overflow causing undefined behaviour.

This comes from an asymmetry between cast to unsigned and cast to signed:
- cast from signed to unsigned is a total and injective function
- cast from unsigned to signed is a partial function with range from 0 to the
maximum of the signed type (inclusive), which excludes values converted from
negative signed values

(I'd be happy to be proven wrong about this, if anyone can cite relevant
sections from n1124 (C99 TC2) or n1494 (C1x draft) to the contrary.)

Personally I think GCC should treat source-level casts as wrapping, regardless
of -fstrict-overflow and -fno-wrapv.  Perhaps it intends to, and we're just
seeing the effects of bugs.


-- 


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



[Bug tree-optimization/45034] [4.3/4.4/4.5/4.6 Regression] "safe" conversion from unsigned to signed char gives broken code

2010-07-27 Thread joseph at codesourcery dot com


--- Comment #9 from joseph at codesourcery dot com  2010-07-27 22:42 ---
Subject: Re:  [4.3/4.4/4.5/4.6 Regression] "safe"
 conversion from unsigned to signed char gives broken code

On Tue, 27 Jul 2010, mikpe at it dot uu dot se wrote:

> Personally I think GCC should treat source-level casts as wrapping, regardless
> of -fstrict-overflow and -fno-wrapv.  Perhaps it intends to, and we're just
> seeing the effects of bugs.

This implementation-defined behavior is already documented in 
implement-c.texi:

@item
@cite{The result of, or the signal raised by, converting an integer to a
signed integer type when the value cannot be represented in an object of
that type (C90 6.2.1.2, C99 6.3.1.3).}

For conversion to a type of width @math{N}, the value is reduced
modulo @math{2^N} to be within range of the type; no signal is raised.


-- 


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



[Bug tree-optimization/45034] [4.3/4.4/4.5/4.6 Regression] "safe" conversion from unsigned to signed char gives broken code

2010-07-27 Thread rakdver at kam dot mff dot cuni dot cz


--- Comment #10 from rakdver at kam dot mff dot cuni dot cz  2010-07-27 
23:09 ---
Subject: Re:  [4.3/4.4/4.5/4.6 Regression]
"safe" conversion from unsigned to signed char gives broken code

> >   ux = (unsigned char) x;
> >   uy = (unsigned char) -(signed char) ux;
> >   ...
> > }
> > 
> > That is, the negation of unsigned char value is implemented by casting it to
> > signed char, which introduces signed overflow if the value of x is -128.  As
> > far as I understand the C standard, this seems incorrect.
> 
> It depends on how GCC interprets that cast and negation:
> - if the cast has C semantics, then (signed char)ux causes overflow
> - if the cast wraps, then it is fine and yields (signed char)-128
> - if the negation has C semantics, then (signed char)-128 is widened to int 
> and
> then negated to 128
> - if the negation maps signed char to signed char, then it causes overflow
> 
> IMO, a serious problem with the C standard is that
> 
> signed char x = -1;
> signed char y = (signed char)(unsigned char)x;
> 
> triggers signed overflow causing undefined behaviour.

no, it does not.  The semantics of the cast in this case is not undefined, it
is implementation-defined.  GCC defines it in the natural way (and induction
variable analysis takes that into account).  The problem is with the negation,
which causes overflow.


-- 


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



[Bug target/45063] [4.6 Regression] ICE: Segmentation fault (cc1) compiling matmul_i1.c

2010-07-27 Thread danglin at gcc dot gnu dot org


--- Comment #4 from danglin at gcc dot gnu dot org  2010-07-27 23:19 ---
Introduced in revision 162418.  Don't see any difference in gcc (C)
testresults for 162417 (full bootstrap) and 162418 (--disable-bootstrap).

While the ICE nominally results from a hash lookup failure, replacing
libiberty.a with the stage1 version makes no difference.  Thus, it
doesn't appear that the problem is with the hash code.


-- 

danglin at gcc dot gnu dot org changed:

   What|Removed |Added

  GCC build triplet|hppa-unknown-linu-gnu   |hppa-unknown-linux-gnu
   GCC host triplet|hppa-unknown-linu-gnu   |hppa-unknown-linux-gnu
 GCC target triplet|hppa-unknown-linu-gnu   |hppa-unknown-linux-gnu


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



[Bug c++/45082] Static const signed int class member causes undefined symbol.

2010-07-27 Thread redi at gcc dot gnu dot org


--- Comment #6 from redi at gcc dot gnu dot org  2010-07-27 23:54 ---
(In reply to comment #5)
> Thanks for all the great comments and insight.
> 
> I'm still confused as to why when the BUFF_SIZE was defined as:
> static const   signed int BUFF_SIZE = 20;
> it caused the error, but when it was defined as:
> static const unsigned int BUFF_SIZE = 20;
> it did not.

Because you can't bind const int& to an unsigned int, so a temporary is created
and the reference bound to that.  When the variable has type int the reference
can bind to it directly.


> There were 2 things that solved the problem I was seeing:
> 
> 1. Adding a const   signed int BUFF_SIZE; line to the .cpp file.  
> 
> I've seen lots of code where we define constants ala, static const int
> BUFF_SIZE=20; in the .hpp file without any const int myclass::BUFF_SIZE; in 
> the
> .cpp files.  Is that wrong to exclude them, should we be including them in the
> .cpp file?

Yes, if the variable is "used" in the program, see the reference from the
standard that Jakub posted days ago in comment 1

> 2. Declaring the type during the call, ala, funky((int)myclass::BUFF_SIZE);

You might have misunderstood that as well, there's no "declaring the type"
there, it's creating a temporary which the reference binds to.

> I'm not sure which is the better solution.

Again, please follow up somewhere else, GCC's bugzilla is not the right place
to learn the rules of C++.


-- 


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



[Bug target/44903] [4.6 Regression] FAIL: gcc.dg/pr35258.c execution test

2010-07-27 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #20 from dave at hiauly1 dot hia dot nrc dot ca  2010-07-28 
00:22 ---
Subject: Re:  [4.6 Regression] FAIL: gcc.dg/pr35258.c
execution test

On Mon, 26 Jul 2010, rguenth at gcc dot gnu dot org wrote:

> Please check whether the attached patch fixes the testcase this bug is about.

Fixes testcase.  Tested on hppa2.0w-hp-hpux11.11.

Dave


-- 


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



[Bug middle-end/45097] New: ICE: gimple check: expected gimple_assign(error_mark), have gimple_phi() in gimple_assign_lhs, at gimple.h:1724

2010-07-27 Thread jingyu at google dot com
ICE is seen by top of trunk. I tried revision r162572, got the same ICE. I
tried revision r162301, it compiled fine. Something went wrong in between.

/usr/local/verify/install/TOP_2010-07-27/bin/arm-linux-androideabi-g++
phi_bug.i -march=armv7-a  -O2 -S
phi_bug.i: In member function 'void regobj::makebound2()':
phi_bug.i:22:6: internal compiler error: gimple check: expected
gimple_assign(error_mark), have gimple_phi() in gimple_assign_lhs, at
gimple.h:1724
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

-Os gives the same ICE.
-O1, ICE goes away.
If I replace -march=armv7-a with -march=armv5te, ICE goes away.

Target: arm-linux-androideabi
Configured with:
/usr/local/nightly/sources/android_toolchain/build/../gcc/gcc-4.6.0/configure
--prefix=/usr/local --target=arm-linux-androideabi --host=x86_64-pc-linux-gnu
--build=x86_64-pc-linux-gnu --enable-languages=c,c++
--with-gmp=/usr/local/tmp/verify/TOP_2010-07-27/temp-install
--with-mpfr=/usr/local/tmp/verify/TOP_2010-07-27/temp-install
--with-mpc=/usr/local/tmp/verify/TOP_2010-07-27/temp-install --disable-libssp
--enable-threads --disable-nls --disable-libmudflap --disable-libgomp
--disable-libstdc__-v3 --disable-sjlj-exceptions --disable-shared --disable-tls
--with-float=soft --with-fpu=vfp --with-arch=armv5te --enable-target-optspace
--with-gcc-version=4.6.0 --with-binutils-version=2.20.1
--with-gmp-version=4.2.4 --with-mpfr-version=2.4.1 --with-gdb-version=6.6
--with-arch=armv5te
--with-sysroot=/home/projects/gcc/toolchain_build/cupcake_rel_root
--program-transform-name='s&^&arm-linux-androideabi-&'
Thread model: posix
gcc version 4.6.0 20100727 (experimental) (GCC)


-- 
   Summary: ICE: gimple check: expected gimple_assign(error_mark),
have gimple_phi() in gimple_assign_lhs, at gimple.h:1724
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jingyu at google dot com
 GCC build triplet: x86_64-pc-linux-gnu
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: arm-linux-androideabi


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



[Bug middle-end/45097] ICE: gimple check: expected gimple_assign(error_mark), have gimple_phi() in gimple_assign_lhs, at gimple.h:1724

2010-07-27 Thread jingyu at google dot com


--- Comment #1 from jingyu at google dot com  2010-07-28 01:09 ---
Created an attachment (id=21328)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21328&action=view)
test case to reproduce the bug


-- 


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



[Bug c++/45096] [4.6 Regression] g++.dg/cpp0x/auto3.C

2010-07-27 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2010-07-28 02:29 ---
It is caused by revision 162578:

http://gcc.gnu.org/ml/gcc-cvs/2010-07/msg00932.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||paolo dot carlini at oracle
   ||dot com


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



[Bug middle-end/45098] New: Missed induction variable optimization

2010-07-27 Thread carrot at google dot com
Compile the following code with options -march=armv7-a -mthumb -Os

extern void foo(int*);
void tr(int array[], int n)
{
  int i;
  for (i=0; ihttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=45098



[Bug c/45099] New: Warning could be issued for use of register variables that will fail.

2010-07-27 Thread jrseattle2002 at hotmail dot com
WinAVR needs register r10 (among others) for certain mathematical operations of
the "long long" data type, e.g. when calling "__muldi3".
The user may declare r10 to be assigned to a register variable.
When this combination occurs, code will not execute correctly.
This is specifically an issue when the register variable is NOT used in ISR
functions and the user expects r10 to be "call saved". WinAVR normally saves
these "call saved" registers in the function that uses them, but DOES NO DO
THAT IF THE REGISTER IS USED AS A REGISTER VARIABLE, even though it needs to
use that register. Such situations can be recognized and a warning issued. Even
better, the register could be saved in the first place using the rule "call
saved" registers need to be saved by the called function if used, even if the
register is used as a register variable.
Sample code:
register unsigned char GYOffset asm("r10"); 

typedef unsigned char byte;
typedef unsigned int uint;

void ComputeLargeNum(uint nDays, char *pStr)
{
unsigned long long LargeNum = 13248524997010ULL + nDays * 4173424303;
uint n = 0;
while (LargeNum > 10ULL) {
++n;
LargeNum -= 10ULL;
}
}

void print(char *pStr)
{
}

int main(void)
{
char buf[20];
GYOffset = 1;
ComputeLargeNum(10, buf);
if (GYOffset != 1) {
print("r10 corrupted\n");
}
}


-- 
   Summary: Warning could be issued for use of register variables
that will fail.
   Product: gcc
   Version: 4.3.3
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jrseattle2002 at hotmail dot com


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



[Bug c++/44641] Generated constructors and destructors get wrong debug location when a typedef uses a forward declaration of the type before the definition

2010-07-27 Thread ubizjak at gmail dot com


--- Comment #13 from ubizjak at gmail dot com  2010-07-28 06:24 ---
Reopened.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||ubizjak at gmail dot com
 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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