[Bug debug/43478] Missing DW_AT_location for a variable

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #14 from jakub at gcc dot gnu dot org  2010-05-17 06:04 ---
The #c6 patch is now in, but #c3 not yet.  Unfortunately that one needs more
work, see comment #c8.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|critical|normal
   Priority|P1  |P3


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



[Bug c++/44162] [C++0x] cannot match function ref argument to dependent std::enable_if::type

2010-05-17 Thread potswa at mac dot com


--- Comment #2 from potswa at mac dot com  2010-05-17 06:06 ---
Sorry, that was completely wrong. I thought I'd isolated a testcase with the
above code plus int main() { return rcv_fdecltype(f)(f); }, but that actually
does work.

It seems the problem is completely different. The testcase below suggests that
decltype somehow cannot recurse in the presence of a reference to function
type.

#include tuple
#include type_traits // aside: std::result_of belongs in type_traits
#include functional // not functional.

template class T, class F,
size_t tuple_index0 = std::tuple_sizeT::value,
size_t... tuple_indexes 
typename std::result_of typename std::enable_if tuple_index0 == 0,
F( typename std::tuple_element tuple_indexes - 1, T ::type... )
::type ::type
apply( T const t, F f ) {
return f( std::get tuple_indexes - 1 ( t )... );
}

template class T, class F,
size_t tuple_index0 = std::tuple_sizeT::value,
size_t... tuple_indexes 
decltype( apply typename std::enable_if tuple_index0 != 0, T ::type,
F, tuple_index0 - 1, tuple_index0, tuple_indexes... 
( std::declvalT(), std::declvalF() ) )
apply( T const t, F f ) {
return apply T, F, tuple_index0 - 1, tuple_index0, tuple_indexes... 
( t, f );
}

void f() {}
void g( int ) {}
void h( int, int ) {}

struct a { void operator()( int, int ) {} };

int main() {
// these cases work:
apply( std::make_tuple(), f );
apply( std::make_tuple( 0 ), g );
apply std::tuple int, int , void ()(int, int), 1, 2 ( std::make_tuple(
0, 0 ), h );
apply( std::make_tuple( 0, 0 ), a() );

// this does not:
apply( std::make_tuple( 0, 0 ), h );
}

Either the subject of this bug should be changed or I should open a new bug.


-- 


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



[Bug target/44163] New: [4.6 Regression] Multiple failures in the objc and libgomp test suites

2010-05-17 Thread dominiq at lps dot ens dot fr
Since revision 159443, there are multiple failures in the objc and libgomp test
suites (see http://gcc.gnu.org/ml/gcc-testresults/2010-05/msg01478.html ). They
are all of the form:

/var/tmp//ccIspVYP.s:816:non-relocatable subtraction expression,
___emutls_v.baz.1169 minus L002$pb^M
/var/tmp//ccIspVYP.s:816:symbol: ___emutls_v.baz.1169 can't be undefined in a
subtraction expression^M

Reverting revision 159371 fixes these failures. This is probably related to
pr44146.


-- 
   Summary: [4.6 Regression] Multiple failures in the objc and
libgomp test suites
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr
 GCC build triplet: powerpc-apple-darwin9
  GCC host triplet: powerpc-apple-darwin9
GCC target triplet: powerpc-apple-darwin9


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



[Bug bootstrap/44146] r159371 breaks bootstrap on x86_64-apple-darwin10

2010-05-17 Thread dominiq at lps dot ens dot fr


--- Comment #22 from dominiq at lps dot ens dot fr  2010-05-17 07:21 ---
I have open pr44163 for the testsuite failures on ppc-darwin. Since they are
fixed by reverting revision 159371, I think pr44163 is related to this one (if
not a duplicate).


-- 


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



[Bug bootstrap/44146] r159371 breaks bootstrap on x86_64-apple-darwin10

2010-05-17 Thread dominiq at lps dot ens dot fr


--- Comment #23 from dominiq at lps dot ens dot fr  2010-05-17 07:25 ---
Although it may be unrelated, pr44163 reports intermittent bootstrap failures
related to TLS found or not.


-- 


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



[Bug target/44163] [4.6 Regression] Multiple failures in the objc and libgomp test suites

2010-05-17 Thread iains at gcc dot gnu dot org


--- Comment #1 from iains at gcc dot gnu dot org  2010-05-17 07:43 ---
@159462 on powerpc64 with:

http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01119.html
(and needed for m32, but not to solve the tls problem)
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01125.html

ObjC/C++ tls fails are limited to LTO-related

=== libgomp Summary ===

# of expected passes4980
# of unsupported tests  4

still working on better ways to solve the TLS issues (monitor
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132 for that)


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread siarhei dot siamashka at gmail dot com


--- Comment #18 from siarhei dot siamashka at gmail dot com  2010-05-17 
07:53 ---
Created an attachment (id=20676)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20676action=view)
powerpc64-broken-unreachable.i

With the attached file (and '-O2 -c' options):
1. powerpc64 crosscompiler running on x86 box - always works fine
2. powerpc64 crosscompiler built with gcc 4.3.4 and running on powerpc64 box -
works fine
3. powerpc64 crosscompiler built with gcc 4.5.0 and running on powerpc64 box -
ICE


-- 


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



[Bug middle-end/44078] [4.6 regression] FAIL: gcc.dg/tree-ssa/prefetch-7.c

2010-05-17 Thread krebbel at gcc dot gnu dot org


--- Comment #4 from krebbel at gcc dot gnu dot org  2010-05-17 07:54 ---
Subject: Bug 44078

Author: krebbel
Date: Mon May 17 07:53:20 2010
New Revision: 159475

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159475
Log:
2010-05-17  Christian Borntraeger  borntrae...@de.ibm.com

PR 44078
* gcc.dg/tree-ssa/prefetch-7.c: Change pattern to match only the old
debug messages but not the newly introduced one.



Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c


-- 


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



[Bug fortran/44044] [OOP] SELECT TYPE with class-valued function

2010-05-17 Thread janus at gcc dot gnu dot org


--- Comment #6 from janus at gcc dot gnu dot org  2010-05-17 08:25 ---
Subject: Bug 44044

Author: janus
Date: Mon May 17 08:25:06 2010
New Revision: 159476

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159476
Log:
2010-05-17  Janus Weil  ja...@gcc.gnu.org

PR fortran/44044
* resolve.c (resolve_fl_var_and_proc): Move error messages here from
...
(resolve_fl_variable_derived): ... this place.
(resolve_symbol): Make sure function symbols (and their result
variables) are not resolved twice.


2010-05-17  Janus Weil  ja...@gcc.gnu.org

PR fortran/44044
* gfortran.dg/class_20.f03: New.

Added:
trunk/gcc/testsuite/gfortran.dg/class_20.f03
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/44164] New: [4.5.0] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread maxime at altribe dot org
Using Boost.Bind/Boost.Function triggers what seems to be an aliasing bug with
G++ 4.5.0. The minimal test case (including Boost.Bind and Boost.Function) is
attached.

It works and no errors are detected by valgrind with either flags :
 -O0
 -O1
 -O2 -fno-inline
 -O2 -fno-strict-aliasing
 -Os

It crashes whith either flags and valgrind detects invalid reads :
 -02
 -O3

Everything works fine with gcc version 4.4.3 20100316.

There are no warnings using '-W -Wall -Wextra'.

Original bug report to boost mailing list :
 http://lists.boost.org/boost-users/2010/05/59020.php


-- 
   Summary: [4.5.0] Aliasing bug triggered by
Boost.Bind/Boost.Function
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: maxime at altribe dot org
 GCC build triplet: ../configure --prefix=/usr --enable-
languages=c,c++,fortran,objc
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug fortran/44044] [OOP] SELECT TYPE with class-valued function

2010-05-17 Thread janus at gcc dot gnu dot org


--- Comment #7 from janus at gcc dot gnu dot org  2010-05-17 08:31 ---
Comment #0 and #1 are fixed at this point. I think the runtime checking in
comment #2 one can ignore for the moment, since most usage cases of ordinary
pointers are also not checked for.

So the only ToDo item left here is comment #3.


-- 


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



[Bug middle-end/44164] [4.5.0] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread maxime at altribe dot org


--- Comment #1 from maxime at altribe dot org  2010-05-17 08:31 ---
Created an attachment (id=20677)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20677action=view)
Test case including Boost.Bind and Boost.Function.

I had to gzip the .ii file because of size limit.


-- 


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



[Bug target/44163] [4.6 Regression] Multiple failures in the objc and libgomp test suites

2010-05-17 Thread dominiq at lps dot ens dot fr


--- Comment #2 from dominiq at lps dot ens dot fr  2010-05-17 08:45 ---
 Reverting revision 159371 fixes these failures.

I had to revert revision 159371 at revision 159429 with the patch
inhttp://gcc.gnu.org/ml/gcc-patches/2010-04/msg00129.html .


-- 


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



[Bug target/44163] [4.6 Regression] Multiple failures in the objc and libgomp test suites

2010-05-17 Thread iains at gcc dot gnu dot org


--- Comment #3 from iains at gcc dot gnu dot org  2010-05-17 08:54 ---
(In reply to comment #2)
  Reverting revision 159371 fixes these failures.
 
 I had to revert revision 159371 at revision 159429 with the patch
 inhttp://gcc.gnu.org/ml/gcc-patches/2010-04/msg00129.html .

You had to revert 159371 in addition to the patch:
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01119.html

or instead of that patch?


-- 


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



[Bug rtl-optimization/38644] Optimization flag -O1 -fschedule-insns2 causes wrong code

2010-05-17 Thread sebastian dot huber at embedded-brains dot de


--- Comment #14 from sebastian dot huber at embedded-brains dot de  
2010-05-17 09:04 ---
This bug is present since r130052 which is related to:

http://gcc.gnu.org/ml/gcc-patches/2007-10/msg01814.html

If this is a generic bug or not is quite irrelevant since this is a very
serious bug on ARM/Thumb.  I am a bit irritated why this bug survived the 4.4.0
and 4.5.0 release.  In a multi threaded environment it is pretty hard to find
these kind of problems.  The time frame in which an interrupt can corrupt the
stack frame lies between two instructions.

Is -fno-schedule-insns2 a workaround for this problem?


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread siarhei dot siamashka at gmail dot com


--- Comment #19 from siarhei dot siamashka at gmail dot com  2010-05-17 
09:06 ---
Can anybody knowledgeable verify whether it was commit r151790 (
http://repo.or.cz/w/official-gcc.git/commit/9dbb96fec5e08762f97dda771522283f1fe9710f
) that is causing troubles when __builtin_unreachable() is used in the default
switch case? Unfortunately I could not add Andreas Krebbel to CC for this bug.


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #20 from jakub at gcc dot gnu dot org  2010-05-17 09:08 ---
Perhaps dup of PR44071 that got fixed recently?


-- 


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



[Bug target/44163] [4.6 Regression] Multiple failures in the objc and libgomp test suites

2010-05-17 Thread dominiq at lps dot ens dot fr


--- Comment #4 from dominiq at lps dot ens dot fr  2010-05-17 09:08 ---
 You had to revert 159371 in addition to the patch:
 http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01119.html
 
 or instead of that patch?

Sorry for the confusion. 

In my powerpc-apple-darwin9 tree I have the patch in
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01119.html for a quite long time
(and I guess it is not applied in the native tree of regress). With revision
159371, I see the same failures as regress. These failures disappear if I
revert revision 159371 without any other change in my tree.


-- 


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



[Bug lto/44149] -fuse-linker-plugin lto1: internal compiler error: in lto_symtab_merge_decls_1, at lto-symtab.c:610

2010-05-17 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-05-17 09:10 ---
(In reply to comment #3)
 It might be useful to compare the two decls that invoke the mismatch that
 triggers the gcc_assert:
 
 prevailing-decl is:
 
  function_decl 0x7fb0f574f900 convect_satmixratio
 type function_type 0x7fb0f5786b28
 type void_type 0x7fb0f584cd20 VOID
 align 8 symtab 0 alias set -1 canonical type 0x7fb0f584cd20
 pointer_to_this pointer_type 0x7fb0f584cdc8
 QI
 size integer_cst 0x7fb0f583d758 constant 8
 unit size integer_cst 0x7fb0f583d780 constant 1
 align 8 symtab 0 alias set -1 canonical type 0x7fb0f5786b28
 public external QI file bkfconv.f90 line 517 col 0 align 8
 
 whereas e-decl is:
 
  function_decl 0x7fb0f574f600 convect_satmixratio
 type function_type 0x7fb0f5763b28
 type void_type 0x7fb0f584cd20 VOID
 align 8 symtab 0 alias set -1 canonical type 0x7fb0f584cd20
 pointer_to_this pointer_type 0x7fb0f584cdc8
 QI
 size integer_cst 0x7fb0f583d758 constant 8
 unit size integer_cst 0x7fb0f583d780 constant 1
 align 8 symtab 0 alias set -1 canonical type 0x7fb0f5763b28
 arg-types tree_list 0x7fb0f5754bb8 value reference_type
 0x7fb0f5750738
 chain tree_list 0x7fb0f5754be0 value pointer_type 
 0x7fb0f5763bd0
 chain tree_list 0x7fb0f5754c08 value pointer_type
 0x7fb0f5764000
 chain tree_list 0x7fb0f5754c30 value pointer_type
 0x7fb0f57643f0
 chain tree_list 0x7fb0f5754c58 value pointer_type
 0x7fb0f57647e0 chain tree_list 0x7fb0f5754c80
 nothrow public static QI file bkfconv.f90 line 400 col 0 align 8
 arguments parm_decl 0x7fb0f5760660 klon
 type reference_type 0x7fb0f5750738 type integer_type 0x7fb0f584c498
 unsigned restrict DI
 size integer_cst 0x7fb0f583da50 constant 64
 unit size integer_cst 0x7fb0f583da78 constant 8
 align 64 symtab 0 alias set -1 canonical type 0x7fb0f5750738
 readonly used unsigned DI passed-by-reference file bkfconv.f90 line 
 400
 col 0 size integer_cst 0x7fb0f583da50 64 unit size integer_cst
 0x7fb0f583da78 8
 align 64 context function_decl 0x7fb0f574f600 convect_satmixratio
 arg-type reference_type 0x7fb0f5750738
 chain parm_decl 0x7fb0f57606e8 ppres type pointer_type
 0x7fb0f57653f0
 readonly used unsigned DI passed-by-reference file bkfconv.f90 
 line
 400 col 0 size integer_cst 0x7fb0f583da50 64 unit size integer_cst
 0x7fb0f583da78 8
 align 64 context function_decl 0x7fb0f574f600 
 convect_satmixratio
 arg-type pointer_type 0x7fb0f5763bd0 chain parm_decl 0x7fb0f5760770 pt
 result result_decl 0x7fb0f5752180 D.2157 type void_type 0x7fb0f584cd20
 ignored VOID file bkfconv.f90 line 400 col 0
 align 8 context function_decl 0x7fb0f574f600 convect_satmixratio
 
 This is found by adding the following to lto-symtab.c:

It's obvious that somehow the prevailing one is the wrong one.

 function_decl 0x7fb0f574f900 convect_satmixratio
type function_type 0x7fb0f5786b28
type void_type 0x7fb0f584cd20 VOID
align 8 symtab 0 alias set -1 canonical type 0x7fb0f584cd20
pointer_to_this pointer_type 0x7fb0f584cdc8
QI
size integer_cst 0x7fb0f583d758 constant 8
unit size integer_cst 0x7fb0f583d780 constant 1
align 8 symtab 0 alias set -1 canonical type 0x7fb0f5786b28
public external QI file bkfconv.f90 line 517 col 0 align 8

isn't prevailing at all.


-- 

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-05-17 09:10:19
   date||
Summary|lto1: internal compiler |-fuse-linker-plugin lto1:
   |error: in   |internal compiler error: in
   |lto_symtab_merge_decls_1, at|lto_symtab_merge_decls_1, at
   |lto-symtab.c:610|lto-symtab.c:610


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



[Bug c++/44162] [C++0x] cannot match function ref argument to dependent std::enable_if::type

2010-05-17 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2010-05-17 09:35 
---
Ok, then please open a new PR including a *minimal* testcase.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-05-17 09:39 ---
It's not a dup of PR42834 (but it might be the same issue as PR42832 which
was a libstdc++ bug or a frontend bug).

It happens to work on trunk, so it might also be a dup of PR43987 (though
unlikely), rather different inlining might have made the bug latent.

I can confirm the observed effect.  I didn't investigate on whether this
is a bug in boost or not (we're changing our minds on what is valid and
what not all the time anyway).


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.5.0
  Known to work||4.4.3 4.6.0
   Last reconfirmed|-00-00 00:00:00 |2010-05-17 09:39:31
   date||
Summary|[4.5.0] Aliasing bug|[4.5 Regression] Aliasing
   |triggered by|bug triggered by
   |Boost.Bind/Boost.Function   |Boost.Bind/Boost.Function
   Target Milestone|--- |4.5.1


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2010-05-17 09:44 ---
The boost folks may be able to tell if they at any place copy a
function_buffer object via the assignment operator.

I see they also have funny stuff like get_vtable() and are playing with
typeinfos.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |WAITING


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread siarhei dot siamashka at gmail dot com


--- Comment #21 from siarhei dot siamashka at gmail dot com  2010-05-17 
10:07 ---
(In reply to comment #18)
 Created an attachment (id=20676)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20676action=view) [edit]
 powerpc64-broken-unreachable.i
 
 With the attached file (and '-O2 -c' options):
 1. powerpc64 crosscompiler running on x86 box - always works fine
 2. powerpc64 crosscompiler built with gcc 4.3.4 and running on powerpc64 box -
 works fine

Hmm, that was happening because I compiled it with --disable-checking. When
built with --enable-checking=release, the ICE reproduces just fine on x86 box
with powerpc64-unknown-linux-gnu crosscompiler.

Well, getting ssh access to a fast powerpc64 box really did miracles :) Even
though the problem does not seem to be that complex after all, painfully long
compile times discouraged running more tests earlier, so even a small mistake
easily could (and apparently did) lead to wrong track.

I'm going to check current 4.5 SVN branch now.


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread siarhei dot siamashka at gmail dot com


--- Comment #22 from siarhei dot siamashka at gmail dot com  2010-05-17 
11:31 ---
(In reply to comment #20)
 Perhaps dup of PR44071 that got fixed recently?

The problem is still reproducible with SVN rev 159480 in
'branches/gcc-4_5-branch', so the fix from PR44071 does not seem to help here.


-- 


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



[Bug bootstrap/43715] [4.5] configure option --enable-plugin fails on darwin

2010-05-17 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert 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-05-17 12:00:06
   date||
Summary|configure option --enable-  |[4.5] configure option --
   |plugin fails on darwin  |enable-plugin fails on
   ||darwin


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



[Bug ada/42554] Can't build GNAT tools

2010-05-17 Thread fxcoudert at gcc dot gnu dot org


--- Comment #14 from fxcoudert at gcc dot gnu dot org  2010-05-17 12:07 
---
Appears to be fixed. Please reopen if that's not the case.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.5.0


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-17 Thread dodji at gcc dot gnu dot org


--- Comment #3 from dodji at gcc dot gnu dot org  2010-05-17 12:30 ---
Created an attachment (id=20678)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20678action=view)
Candidate patch

On Fri, May 14, 2010 at 07:25:18AM -, jakub at gcc dot gnu dot org wrote:
 That said, it would be good to find out why we don't warn in that
 case; for [M_CONST + 6] we do warn.

I think we don't warn in that case because M_CONST in the expression
M_CONST + 6, M_CONST is an rvalue use and we recognize it as such via
default_conversion that should be called on the arguments of the + expression.

We fail to recognize the use of [M_CONST], because M_CONST gets folded
into it's value without us marking that folding as an rvalue use. I
am thus testing the attached patch. The reason why the patch seems
convoluted is that I don't want to mark a dependant value as a rvalue
use. I believe only full instantiations should be marked.


-- 


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



[Bug middle-end/44133] [4.5/4.6 Regression] Uninit warning regression with new SRA

2010-05-17 Thread jamborm at gcc dot gnu dot org


--- Comment #3 from jamborm at gcc dot gnu dot org  2010-05-17 12:48 ---
Subject: Bug 44133

Author: jamborm
Date: Mon May 17 12:48:34 2010
New Revision: 159482

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159482
Log:
2010-05-17  Martin Jambor  mjam...@suse.cz

PR middle-end/44133
* tree-sra.c (create_access_replacement): New parameter rename, mark
the replaement for renaming only when it is true.
(get_access_replacement): Pass true in the rename parameter of
create_access_replacement.
(get_unrenamed_access_replacement): New function.
(replace_uses_with_default_def_ssa_name): New parameter racc, get the
replacement declaration from it.

* testsuite/gcc.dg/tree-ssa/pr44133.c: New test.
* testsuite/gcc.dg/tree-ssa/sra-9.c: Make the scan regular
expression more precise.


Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr44133.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/sra-9.c
trunk/gcc/tree-sra.c


-- 


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



[Bug libgcj/38812] gcj-built executables don't run after strip (libgcj erroneously references _environ)

2010-05-17 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2010-05-17 12:53 
---
On Mac OS X (all versions), the correct fix is to use _NSGetEnviron() instead
of extern variable environ, and to include crt_externs.h. Example of use:

#include stdlib.h
#include string.h
#include crt_externs.h

int main (void)
{
  // Instead of: extern char **environ;
#define environ (*_NSGetEnviron())

  char **env = malloc (3 * sizeof(char *));
  env[0] = strdup (VAR1=this is variable one);
  env[1] = strdup (PATH=/dev/null);
  env[2] = NULL;
  environ = env;

  system (/usr/bin/env);
  return 0;
}


(see http://www.gnu.org/software/gnulib/manual/html_node/environ.html)



So, a possible patch (protecting target-specific code with #idef's; I don't
know if that's the style libjava maintainers would like best) is:

Index: java/lang/natPosixProcess.cc
===
--- java/lang/natPosixProcess.cc(revision 159481)
+++ java/lang/natPosixProcess.cc(working copy)
@@ -54,7 +54,12 @@
 using gnu::java::nio::channels::FileChannelImpl;
 using namespace java::lang;

+#ifdef __APPLE__
+#include crt_externs.h
+#define environ (*_NSGetEnviron())
+#else
 extern char **environ;
+#endif

 static char *
 new_string (jstring string)


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org, tromey at redhat dot
   ||com, aph at redhat dot com
   Last reconfirmed|2009-01-13 01:03:10 |2010-05-17 12:53:59
   date||


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



[Bug c/44165] New: 5/15/2010 snapshot build failure on hppa Linux

2010-05-17 Thread michael dot a dot richmond at nasa dot gov
When I attempt to compile the snapshot of 5/15/2010 on an HPPA workstation
under Debian Linux 5.0 I get the following messages:

checking whether the C compiler works... configure: error: in
`/home/mrichmon/gcc-4.6-20100515/g95/hppa1.1-unknown-linux-gnu/libgomp':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgomp] Error 1
make[2]: Leaving directory `/home/mrichmon/gcc-4.6-20100515/g95'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/mrichmon/gcc-4.6-20100515/g95'
make: *** [all] Error 2
Error running make


-- 
   Summary: 5/15/2010 snapshot build failure on hppa Linux
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: michael dot a dot richmond at nasa dot gov
 GCC build triplet: hppa1.1-unknown-linux-gnu
  GCC host triplet: hppa1.1-unknown-linux-gnu
GCC target triplet: hppa1.1-unknown-linux-gnu


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread maxime at altribe dot org


--- Comment #4 from maxime at altribe dot org  2010-05-17 13:10 ---
(In reply to comment #3)
 The boost folks may be able to tell if they at any place copy a
 function_buffer object via the assignment operator.

It seems so. From Peter Dimov :

 [...] after stepping through the code, it turns out that function_buffer is
 indeed assigned directly, due to the fact that __has_trivial_copy and
 __has_trivial_destructor report true for the stored function object.


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #23 from jakub at gcc dot gnu dot org  2010-05-17 13:24 ---
Created an attachment (id=20679)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20679action=view)
gcc46-pr42347.patch

Ah, I see.  returnjump_p is considered onlyjump_p, yet it has side-effect that
prevent it from being optimized away into a normal return or jump to return.


-- 

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|UNCONFIRMED |ASSIGNED


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



[Bug target/44075] __builtin_eh_return miscompiled

2010-05-17 Thread bergner at gcc dot gnu dot org


--- Comment #2 from bergner at gcc dot gnu dot org  2010-05-17 13:41 ---
Subject: Bug 44075

Author: bergner
Date: Mon May 17 13:41:22 2010
New Revision: 159487

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159487
Log:
Backport from mainline:

2010-05-14  Alan Modra  amo...@gmail.com

PR target/44075
* config/rs6000/rs6000.c (struct machine_function): Reorder
fields for better packing.  Add lr_save_state.
(rs6000_ra_ever_killed): Return lr_save_state if set.
(rs6000_emit_eh_reg_restore): Set lr_save_state.

Modified:
branches/ibm/gcc-4_4-branch/gcc/ChangeLog.ibm
branches/ibm/gcc-4_4-branch/gcc/config/rs6000/rs6000.c


-- 


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



[Bug c/44166] New: -fvisibility=protected doesn't work?

2010-05-17 Thread jay dot krell at cornell dot edu
-fvisibility=protected doesn't work?

a...@xlin2:~$ cat 1.c
void F1() { }
void* F2() { return F1; }

j...@xlin2:~$ $HOME/bin/gcc 1.c -fPIC -shared -fvisibility=protected

/usr/bin/ld: /tmp/cc0d6EQ3.o: relocation R_386_GOTOFF against protected
function `F1' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status

j...@xlin2:~$ $HOME/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/home/jay/bin/gcc
COLLECT_LTO_WRAPPER=/home/jay/libexec/gcc/i686-pc-linux-gnu/4.5.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: /src/gcc-4.5.0/configure -verbose -prefix=/home/jay
-disable-bootstrap -disable-multilibs
Thread model: posix
gcc version 4.5.0 (GCC)


-- 
   Summary: -fvisibility=protected doesn't work?
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jay dot krell at cornell dot edu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug target/44163] [4.6 Regression] Multiple failures in the objc and libgomp test suites

2010-05-17 Thread iains at gcc dot gnu dot org


--- Comment #5 from iains at gcc dot gnu dot org  2010-05-17 13:43 ---
(In reply to comment #4)

 In my powerpc-apple-darwin9 tree I have the patch in
 http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01119.html for a quite long time

OK, might be worth double-checking - both parts are needed.

 (and I guess it is not applied in the native tree of regress).

nope. that's just trunk.

 With revision
 159371, I see the same failures as regress. These failures disappear if I
 revert revision 159371 without any other change in my tree.

I have clean libgomp results and only LTO FE fails,  on powerpc-apple-darwin9
@159476 
with http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01119.html but...
*without* changing varpool.c.


-- 


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



[Bug target/44166] -fvisibility=protected doesn't work?

2010-05-17 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2010-05-17 13:47 ---
Can you give the output of ld --version ?  There might have been a binutils bug
about this before.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |target


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



[Bug target/44166] -fvisibility=protected doesn't work?

2010-05-17 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2010-05-17 13:49 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug target/37611] invalid relocation R_386_GOTOFF when using protected function pointers

2010-05-17 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2010-05-17 13:49 ---
*** Bug 44166 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jay dot krell at cornell dot
   ||edu


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



[Bug c++/44167] New: ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread marc dot hofmann at gmail dot com
The following code (see below) triggers an ICE.


Command line:

g++ -save-temps -Wall -std=c++0x testcase.cc -o testcase


Error message:

testcase.cc: In function ‘int main()’:
testcase.cc:42: internal compiler error: in tsubst_copy, at cp/pt.c:10077
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.


Code:

// file: testcase.cc
#include tuple

templateunsigned int N
struct Apply_aux
{
   templatetypename F, typename T, typename... X
   static auto apply(F f, const T t, X... x)
 - decltype(Apply_auxN-1::apply(f, t, std::getN-1(t), x...))
   {
 return Apply_auxN-1::apply(f, t, std::getN-1(t), x...);
   }

};

template
struct Apply_aux0
{
   templatetypename F, typename T, typename... X
   static auto apply(F f, const T, X... x)
 - decltype(f(x...))
   {
 return f(x...);
   }

};

templatetypename F, typename T
auto apply(F f, const T t)
  - decltype(Apply_auxstd::tuple_sizeT::value::apply(f, t))
{
  return Apply_auxstd::tuple_sizeT::value::apply(f, t);
}

int f(int p1, double p2)
{
   return 0;
}

int main()
{
  apply(f, std::make_tuple(1, 2.0));
}
// end file: testcase.cc


Output of 'gcc -v':

Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc
--enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)


Output of 'uname -a':

Linux wwz-comamh-166 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC
2010 i686 GNU/Linux


Thanks,
Marc


-- 
   Summary: ICE in tsubst_copy at cp/pt.c:10077
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: marc dot hofmann at gmail dot com
GCC target triplet: i486-linux-gnu


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



[Bug c++/44167] ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread marc dot hofmann at gmail dot com


--- Comment #1 from marc dot hofmann at gmail dot com  2010-05-17 13:51 
---
Created an attachment (id=20680)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20680action=view)
Testcase source file.


-- 


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



[Bug c++/44168] New: ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread marc dot hofmann at gmail dot com
The following code (see below) triggers an ICE.


Command line:

g++ -save-temps -Wall -std=c++0x testcase.cc -o testcase


Error message:

testcase.cc: In function ‘int main()’:
testcase.cc:42: internal compiler error: in tsubst_copy, at cp/pt.c:10077
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.


Code:

// file: testcase.cc
#include tuple

templateunsigned int N
struct Apply_aux
{
   templatetypename F, typename T, typename... X
   static auto apply(F f, const T t, X... x)
 - decltype(Apply_auxN-1::apply(f, t, std::getN-1(t), x...))
   {
 return Apply_auxN-1::apply(f, t, std::getN-1(t), x...);
   }

};

template
struct Apply_aux0
{
   templatetypename F, typename T, typename... X
   static auto apply(F f, const T, X... x)
 - decltype(f(x...))
   {
 return f(x...);
   }

};

templatetypename F, typename T
auto apply(F f, const T t)
  - decltype(Apply_auxstd::tuple_sizeT::value::apply(f, t))
{
  return Apply_auxstd::tuple_sizeT::value::apply(f, t);
}

int f(int p1, double p2)
{
   return 0;
}

int main()
{
  apply(f, std::make_tuple(1, 2.0));
}
// end file: testcase.cc


Output of 'gcc -v':

Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc
--enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)


Output of 'uname -a':

Linux wwz-comamh-166 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC
2010 i686 GNU/Linux


Thanks,
Marc


-- 
   Summary: ICE in tsubst_copy at cp/pt.c:10077
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: marc dot hofmann at gmail dot com
GCC target triplet: i486-linux-gnu


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-17 Thread dodji at gcc dot gnu dot org


--- Comment #4 from dodji at gcc dot gnu dot org  2010-05-17 13:54 ---
Created an attachment (id=20681)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20681action=view)
Don't warn for integral constants

Jakub, this one line patch implements the first idea which is to not warn for
integral constants, as far as Wunused_but_set_variable is concerned.

I have tested it only for the reported error case. I haven't regtested it yet.


-- 


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



[Bug c++/44167] ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread redi at gcc dot gnu dot org


--- Comment #2 from redi at gcc dot gnu dot org  2010-05-17 13:55 ---
*** Bug 44168 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c++/44167] ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread marc dot hofmann at gmail dot com


--- Comment #3 from marc dot hofmann at gmail dot com  2010-05-17 13:55 
---
Created an attachment (id=20682)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20682action=view)
Preprocessed file.

Created with:

g++ -save-temps -Wall -std=c++0x testcase.cc -o testcase


-- 


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



[Bug c++/44168] ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread redi at gcc dot gnu dot org


--- Comment #1 from redi at gcc dot gnu dot org  2010-05-17 13:55 ---


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


-- 

redi at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/44167] ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread redi at gcc dot gnu dot org


--- Comment #4 from redi at gcc dot gnu dot org  2010-05-17 14:00 ---
4.5 doesn't ICE

pr44167.cc: In function 'int main()':
pr44167.cc:7:44: sorry, unimplemented: use of 'type_pack_expansion' in template
pr44167.cc:41:35: error: no matching function for call to 'apply(int ()(int,
double), std::tupleint, double)'

possibly a dup of bug 43382


-- 


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



[Bug c++/44167] ICE in tsubst_copy at cp/pt.c:10077

2010-05-17 Thread redi at gcc dot gnu dot org


--- Comment #5 from redi at gcc dot gnu dot org  2010-05-17 14:03 ---
(In reply to comment #4)
 
 possibly a dup of bug 43382

actually I don't think it is a dup, because 43382 crashes with 4.5


-- 


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



[Bug debug/41371] [4.5/4.6 Regression] var-tracking is slow and memory hungry

2010-05-17 Thread rguenth at gcc dot gnu dot org


--- Comment #26 from rguenth at gcc dot gnu dot org  2010-05-17 14:28 
---
The problem from comment #12 seems to be back.


-- 


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



[Bug testsuite/44159] CPU options cause testsuite failures

2010-05-17 Thread ktietz at gcc dot gnu dot org


-- 

ktietz 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-05-17 14:54:58
   date||


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



[Bug rtl-optimization/44169] New: Wrong code while generating TLS offsets

2010-05-17 Thread gcc at breakpoint dot cc
libgomp testsuite fails with a segfault. It segfaults in
gomp_resolve_num_threads(), accessing the second TLS value.

The first access:
 .LBB28:
 .file 2 ../../../src/libgomp/libgomp.h
 .loc 2 380 0
 bcl 20,31,$+8
 .long _GLOBAL_OFFSET_TABLE_-$
 mflr 9
 lwz 0,0(9)
 add 9,9,0
 lwz 9,gomp_tls_d...@got@tprel(9)
 add 9,9,gomp_tls_d...@tls
 lwz 9,40(9)

The second:
.LBE27:
 .loc 1 47 0
 cmpwi 7,3,1
 beq- 7,.L37
 .LVL32:
 .loc 1 49 0
 bcl 20,31,$+8
 .long _GLOBAL_OFFSET_TABLE_-$
 mflr 9
 add 9,9,0
 lwz 9,gomp_tls_d...@got@tprel(9)
 add 9,9,gomp_tls_d...@tls
 lwz 0,28(9)

After mflr, the lwz is missing. r0 has the offset from last lr which is wrong 
here.
The RTL in tc.c.185r.cprop_hardreg has the lwz included, the next pass  
tc.c.186r.dce does not anymore.

lwz gets not killed if I used -mcpu=power or -mcpu=e300c3. I used -mcpu=8540
which is default for powerpc-linux-gnuspe. -O1 was used in the test case.
The complete cmd line:

 /build/bigeasy/gcc-4.4-4.4.4/build/./gcc/xgcc   \
 -B/build/bigeasy/gcc-4.4-4.4.4/build/./gcc/ \
 -B/usr/powerpc-linux-gnuspe/bin/ \
 -B/usr/powerpc-linux-gnuspe/lib/ \
 -isystem \
 /usr/powerpc-linux-gnuspe/include \
 -isystem \
 /usr/powerpc-linux-gnuspe/sys-include \
 -Werror \
 -pthread \
 -ftls-model=initial-exec \
 -O2 \
 -pthread \
 -fPIC \
 -DPIC \
 tc.c \
 -o \
 tc.S \
 -S \
 -mcpu=8540 \
 -O1 \
 -fdump-rtl-all \
 -c \

A side note: the complete file (parallel.c from libgomp) was compiled with -O2
and the lwz was killed between parallel.c.174r.postreload and
parallel.c.176r.split2.


-- 
   Summary: Wrong code while generating TLS offsets
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc at breakpoint dot cc
 GCC build triplet: powerpc-linux-gnuspe
  GCC host triplet: powerpc-linux-gnuspe
GCC target triplet: powerpc-linux-gnuspe


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



[Bug rtl-optimization/44169] Wrong code while generating TLS offsets

2010-05-17 Thread gcc at breakpoint dot cc


--- Comment #1 from gcc at breakpoint dot cc  2010-05-17 15:44 ---
Created an attachment (id=20683)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20683action=view)
test case


-- 


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



[Bug rtl-optimization/44169] Wrong code while generating TLS offsets

2010-05-17 Thread gcc at breakpoint dot cc


--- Comment #2 from gcc at breakpoint dot cc  2010-05-17 15:44 ---
Created an attachment (id=20684)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20684action=view)
rtl pass 185r.cprop_hardreg


-- 


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



[Bug rtl-optimization/44169] Wrong code while generating TLS offsets

2010-05-17 Thread gcc at breakpoint dot cc


--- Comment #3 from gcc at breakpoint dot cc  2010-05-17 15:45 ---
Created an attachment (id=20685)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20685action=view)
rtl pass 186r.dce


-- 


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2010-05-17 15:50 ---
(In reply to comment #4)
 (In reply to comment #3)
  The boost folks may be able to tell if they at any place copy a
  function_buffer object via the assignment operator.
 
 It seems so. From Peter Dimov :
 
  [...] after stepping through the code, it turns out that function_buffer is
  indeed assigned directly, due to the fact that __has_trivial_copy and
  __has_trivial_destructor report true for the stored function object.

Which means that it is either a C++ frontend bug not protecting this
aggregate assignment properly or a bug in Boost as the functor type stored
to function_buffer is not a member of the union.  The functor types
are for example seen in

const functor_type* in_functor =
  reinterpret_castconst functor_type*(in_buffer.data);
new ((void*)out_buffer.data) functor_type(*in_functor);

but functor_type (a template param) is not a member of said union.

People were arguing that the char member in the union should make this
valid, but nothing in the C++ frontend communicates that to the
alias analysis stage.  People also were arguing only a character
array member would qualify, possibly covering the whole union in size.

A workaround for boost can be constructed following the fix for PR42832.
Due to an unrelated bug using memcpy for the assingment won't work.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |NEW
   Last reconfirmed|2010-05-17 09:39:31 |2010-05-17 15:50:41
   date||


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



[Bug c++/44170] New: compiler segfaults in specialization of template destructor

2010-05-17 Thread adavis at ti dot com
The following code crashes the compiler with this message:
 g++ gccbug.cpp
gccbug.cpp: In destructor 'VEXPRT::~VEXPR() [with T = VECTOR_PAIR]':
gccbug.cpp:32: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.


struct VECTOR {};

struct VECTOR_PAIR
{
   VECTOR_PAIR(VECTOR v1, VECTOR v2) : first(v1), second(v2) {}

   VECTOR first;
   VECTOR second;
};


template class T
struct VEXPR
{
VEXPR(T leaf) : obj(leaf) {}
   ~VEXPR() {}

   T obj;
};


VEXPRVECTOR_PAIR operator,(VEXPRVECTOR v1, VEXPRVECTOR v2)
{
   VECTOR_PAIR* vp = new VECTOR_PAIR(v1.obj, v2.obj); 
   return VEXPRVECTOR_PAIR(*vp); 
}

template 
VEXPRVECTOR_PAIR::~VEXPRVECTOR_PAIR()
{
   VECTOR_PAIR *vp = obj;
   delete vp;
}


-- 
   Summary: compiler segfaults in specialization of template
destructor
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: adavis at ti dot com
GCC target triplet: i686-pc-linux-gnu


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-05-17 15:57 ---
Basically the middle-end sees this the same as

  int i = 1, j;
  float *p = new (i) float(0.0);
  j = i;
  return *reinterpret_castfloat *(j);

and you expect to return 0.0.


-- 


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



[Bug c++/44170] compiler segfaults in specialization of template destructor

2010-05-17 Thread redi at gcc dot gnu dot org


--- Comment #1 from redi at gcc dot gnu dot org  2010-05-17 16:34 ---
4.1.1 is no longer maintained. This doesn't cause an ICE with 4.4.3 or 4.5.0

pr44170.cc:29: error: specialization of 'VEXPRT::~VEXPR() [with T =
VECTOR_PAIR]' after instantiation


-- 

redi at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug target/42904] Attribute dllexport should imply externally_visible

2010-05-17 Thread davek at gcc dot gnu dot org


--- Comment #2 from davek at gcc dot gnu dot org  2010-05-17 17:02 ---
Yes, it certainly does, in fact it omits to compile any definition for 'foo'
whatsoever!

But isn't this the expected behaviour of using '-fwhole-program' on something
that is not the whole program?  I'm not sure if the option is supposed to be
suitable for use when building a shared library, I'll ask on the mailing list.


-- 

davek at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||davek at gcc dot gnu dot org
  Known to work||4.3.4


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



[Bug fortran/43990] [OOP] ICE in output_constructor_regular_field, at varasm.c:4995

2010-05-17 Thread dominiq at lps dot ens dot fr


--- Comment #6 from dominiq at lps dot ens dot fr  2010-05-17 17:09 ---
The patch in comment #5 fixes the ICE without side effects (AFAICT!-), but it
does not fix PR43895 (see comments #3 and #4).


-- 


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



[Bug middle-end/44102] ICE with asm goto + __builtin_unreachable () in C++

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2010-05-17 17:18 ---
Subject: Bug 44102

Author: jakub
Date: Mon May 17 17:18:24 2010
New Revision: 159495

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159495
Log:
PR middle-end/44102
* cfgcleanup.c (try_optimize_cfg): When removing trivially empty
bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
add BARRIER after previous bb if needed.

* g++.dg/ext/asmgoto1.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/ext/asmgoto1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgcleanup.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #24 from jakub at gcc dot gnu dot org  2010-05-17 17:20 ---
Subject: Bug 42347

Author: jakub
Date: Mon May 17 17:19:46 2010
New Revision: 159496

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159496
Log:
PR bootstrap/42347
* cfglayout.c (fixup_reorder_chain): Allow returnjump_p
to have no fallthru edge.

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

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr42347.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfglayout.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2010-05-17 17:25 ---
Subject: Bug 44108

Author: jakub
Date: Mon May 17 17:24:32 2010
New Revision: 159497

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159497
Log:
PR c++/44108
* decl.c (compute_array_index_type): Call mark_rvalue_use.

* c-c++-common/Wunused-var-8.c: New test.

Added:
trunk/gcc/testsuite/c-c++-common/Wunused-var-8.c
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #25 from jakub at gcc dot gnu dot org  2010-05-17 17:26 ---
Subject: Bug 42347

Author: jakub
Date: Mon May 17 17:26:22 2010
New Revision: 159499

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159499
Log:
PR bootstrap/42347
* cfglayout.c (fixup_reorder_chain): Allow returnjump_p
to have no fallthru edge.

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

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/ext/asmgoto1.C
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/cfgcleanup.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/44171] New: gcc -gdwarf-2 -dA unconditionally emits .ascii

2010-05-17 Thread ro at gcc dot gnu dot org
In testing patches to support Solaris 9/x86 with Sun as on Solaris 11/x86, I
noticed that several testcases with -gdwarf-2 -dA failed, producing invalid
assembler output.  I could trace this down to dwarf2asm.c
(dw2_asm_output_nstring)
unconditionally emitting .ascii, which the Solaris 8/x86 as doesn't understand.

This dates back to the initial version of dwarf2asm.c

ASM_OUTPUT_ASCII cannot be used as is since w2_asm_output_nstring adds a
comment
after the string without a preceding newline.  My current solution is to add a
variant of ASM_OUTPUT_ASCII, ASM_OUTPUT_ASCII_NONL, with an additional fourth
arg
NONL which controls whether or not the newline is printed.

I still have to disentangle the different versions of ASM_OUTPUT_ASCII since
the initial version (which changed config/i386/sysv4.h) ysed .byte directives
to emit the string, which breaks the corresponding testcases, and didn't emit
empty strings at all.


-- 
   Summary: gcc -gdwarf-2 -dA unconditionally emits .ascii
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: assemble-failure
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ro at gcc dot gnu dot org
 GCC build triplet: i386-pc-solaris2*
  GCC host triplet: i386-pc-solaris2*
GCC target triplet: i386-pc-solaris2*


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



[Bug c++/44172] New: Compiling never ends

2010-05-17 Thread rmsalinas at uco dot es
I was trying to create a tree. I have realized that the following code makes
the g++ compiler to never stop compilation.


#include iostream
#include fstream
#include vector
#include cassert 
using namespace std;

namespace gumocap{
namespace core{
namespace tree{
templateclass T
class Node: public  vector NodeT*  
{

  public:
/**
*/
Node(){_parent=NULL;}
/**
*/
Node(const T v,NodeT* Tparent=NULL) {_parent=Tparent;_data=v;}
/**
*/
~Node(){
  for(unsigned int i=0;ithis-size();i++) delete (*this)[i];
}
/**
*/
Node(const Node TN) {
_parent=TN._parent;
_data=TN._data;
 for(unsigned int i=0;iTN.size();i++){
NodeT *n=new NodeT( *TN[i]);
n-parent=this;
 }
}
/**Adds a new child and returns it
*/
NodeT * addChild(T val){
  NodeT* n=new NodeT(val,this);
  push_back(n);
  return n;
}

unsigned int getNChildren()const{
  unsigned int nChildren=0;
  for(unsigned int i=0;ithis-size();i++)
nChildren+=(*this)[i].getNChildren();
  return nChildren+this-size();
}

/**
*/
Toperator ()(){return _data;}
/**
*/
T  getVal(){return _data;}
/**
*/
bool isLeaf(){return this-size()==0;}
/**
*/

unsigned int getDepth()const{
  if (_parent==NULL) return  0;
  else return _parent-getDepth()+1;
}
/**
*/
NodeT* getParent() {return _parent;}
/**
*/
friend ostream  operator(ostream str,const NodeT N)
{
unsigned int depth=N.getDepth();
strlll  -depthendl;
//  if (N.parent!=NULL)
strthis =N PARENT=N._parentendl;
for(unsigned int i=0;idepth;i++) str ;
str(  N.size() N._data ;

for(unsigned int i=0;iN.size();i++)
str *N[i];

for(unsigned int i=0;idepth;i++) str ;
str ) endl;
return str;
}

/**Saves in a binary streeam
*/
void toStream(ostream str)
{
int s=this-size();
str.write((char*)s,sizeof(int));
for(unsigned int i=0;ithis-size();i++)
(*this)[i]-toStream(str);
str.write((char*)_data,sizeof(T));
}
/**
*/
 void fromStream(istream str)
{
int s;
str.read((char*)s,sizeof(int));
this-resize(s);
for(unsigned int i=0;ithis-size();i++){
(*this)[i]=new NodeT();
(*this)[i]-parent=this;
(*this)[i]-fromStream(str);
}
str.read((char*)_data,sizeof(T));
}
  private:
  Node *_parent;
  T _data;

};  

templateclass T
class Iterator: public  vector NodeT*  
{
  public:
/**
*/
Iterator(){ } 
/**
*/
Iterator(const Iterator it): vector NodeT*  (it) {  }

/**
*/
T  operator()(unsigned int i){return (*this)[i]-getVal();}

};

/**\brief Simple tree
*/
templateclass T
class Tree
{
public:
  /**
  */
  Tree();

  /**
  */
  ~Tree();
  /**
  */
  Tree(const Tree Tr);
  /**
  */
  Tree  operator =(const Tree Tr);
  /**
  */
  IteratorT getIterator( )const;
  /**
  */
  NodeT* setRoot(const T  v);
  /**
  */
  unsigned int  size()const;
  /**
  */
  void clear();
  /**
  */
  void toStream(ostream str) 
  {
if (_root==NULL){
  int w=0;
  str.write((char*)w,sizeof(int));
}
else{
  int w=1;
  str.write((char*)w,sizeof(int));
  _root-toStream(str);
}
  }
  /**
  */
  void fromStream(istream str) 
  {
clear();
int w=0;
str.read((char*)w,sizeof(int));
if (w==1){
  _root=new NodeT();
  _root-fromStream(str);
}
  }
  /**
  */
friend ostream  operator(ostream str,const Tree Tr)
{

if (Tr._root!=NULL) str 1  *(Tr._root)endl;
else str 0 endl;
return str;
}
/**
*/
friend istream  operator(istream str,Tree Tr)
{
string parn;
strparn;
Tr.clear();
if (parn==1) strTr;
return str;
}

  private:
  /**
  */
  NodeT * _root; 
  void  getIteratorInDepth_subtree(NodeT *n,IteratorT It)const;
};

/**
*/
templateclass T
TreeT::Tree()
{
_root=NULL;
}

/**
*/
templateclass T
TreeT::~Tree()
{
  if (_root!=NULL) delete _root;
}
/**
*/
templateclass T
TreeT::Tree(const Tree Tr)
{
  if (Tr._root!=NULL)  _root=new NodeT( *Tr._root);
  else _root=NULL;
}

/**
*/
templateclass T
TreeT  TreeT::operator =(const Tree Tr)
{
  clear();
  if (Tr._root!=NULL)
  _root=new NodeT(*Tr._root);
  return *this;
}

/**
*/
templateclass T
NodeT * TreeT::setRoot(const T  v)
{
  if (_root==NULL) _root=new NodeT( v);
  else (*_root)()=v;
  return _root;
}

/**
*/
templateclass T
IteratorT  TreeT::getIterator(  )const
{
  IteratorT ret; 
  getIteratorInDepth_subtree(_root,ret);
  return ret;
} 
/**
*/
templateclass T
void   TreeT::getIteratorInDepth_subtree(NodeT *n,IteratorT It)const
{
  if( n==NULL) return;
  It.push_back(n);
  for(unsigned int i=0;in-size();i++)
  getIteratorInDepth_subtree( 

[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #26 from jakub at gcc dot gnu dot org  2010-05-17 17:31 ---
Subject: Bug 42347

Author: jakub
Date: Mon May 17 17:30:54 2010
New Revision: 159500

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159500
Log:
PR bootstrap/42347
* cfglayout.c (fixup_reorder_chain): Allow returnjump_p
to have no fallthru edge.

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

Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.c-torture/compile/pr42347.c
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/cfglayout.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #27 from jakub at gcc dot gnu dot org  2010-05-17 17:33 ---
The http://gcc.gnu.org/viewcvs?root=gccview=revrev=159499
commit was actually for PR44102.


-- 

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=42347



[Bug middle-end/44102] ICE with asm goto + __builtin_unreachable () in C++

2010-05-17 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2010-05-17 17:34 ---
On branches/gcc-4_5-branch fixed by
http://gcc.gnu.org/viewcvs?root=gccview=revrev=159499


-- 

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=44102



[Bug fortran/43990] [OOP] ICE in output_constructor_regular_field, at varasm.c:4995

2010-05-17 Thread janus at gcc dot gnu dot org


--- Comment #7 from janus at gcc dot gnu dot org  2010-05-17 17:41 ---
(In reply to comment #6)
 but it does not fix PR43895 (see comments #3 and #4).

... which I take as an indication that the two are indeed not so much related.


-- 


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



[Bug c++/44172] Compiling never ends

2010-05-17 Thread dougsemler at gmail dot com


--- Comment #1 from dougsemler at gmail dot com  2010-05-17 17:46 ---
This is the offender:

Node(const T v,NodeT* Tparent=NULL) {_parent=Tparent;_data=v;}

It looks like you have transposed the * (it should be the following, right?

Node(const T v,NodeT* Tparent=NULL) {_parent=Tparent;_data=v;}

Every iteration of this is producing a new template instantiation attempt
(recursively).


-- 


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



[Bug c++/44172] Compiling never ends

2010-05-17 Thread rmsalinas at uco dot es


--- Comment #2 from rmsalinas at uco dot es  2010-05-17 17:50 ---
Subject: Re:  Compiling never ends

My god!  you work really fast!

Yes, I've found the error just few seconds ago.

Great work!

dougsemler at gmail dot com escribió:
 --- Comment #1 from dougsemler at gmail dot com  2010-05-17 17:46 ---
 This is the offender:

 Node(const T v,NodeT* Tparent=NULL) {_parent=Tparent;_data=v;}

 It looks like you have transposed the * (it should be the following, right?

 Node(const T v,NodeT* Tparent=NULL) {_parent=Tparent;_data=v;}

 Every iteration of this is producing a new template instantiation attempt
 (recursively).


   


-- 


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-17 Thread davek at gcc dot gnu dot org


--- Comment #10 from davek at gcc dot gnu dot org  2010-05-17 18:25 ---
Re-opening.  It turns out that GCC fails to actually apply the dllexport
attribute to TLS control vars.  So solving the binutils problem allows
auto-export of a TLS variable to work, but as auto-export gets disabled in the
presence of any explicit dllexport directives, this isn't an effective
solution.  I believe the problem needs to be addressed in
config/i386/winnt.c#i386_pe_encode_section_info()


-- 

davek at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-17 Thread davek at gcc dot gnu dot org


-- 

davek at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |davek at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-17 18:25:49
   date||


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



[Bug target/42904] Attribute dllexport should imply externally_visible

2010-05-17 Thread davek at gcc dot gnu dot org


--- Comment #3 from davek at gcc dot gnu dot org  2010-05-17 18:28 ---
Consensus seems to be that this is indeed how it's meant to work, but that
figuring out which are the externally visible functions and marking them
automatically would be a nice enhancement that would make the -fwhole-program
option work on libraries, so I think we should do it.


-- 

davek at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |davek at gcc dot gnu dot org
   |dot org |
   Severity|normal  |enhancement
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-17 18:28:38
   date||


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



[Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line

2010-05-17 Thread ro at gcc dot gnu dot org


--- Comment #7 from ro at gcc dot gnu dot org  2010-05-17 18:29 ---
Posted new patch.


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2010-
   ||05/msg01260.html
   Keywords||patch


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



[Bug c++/44172] Compiling never ends

2010-05-17 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2010-05-17 18:32 
---
Ok.


-- 

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=44172



[Bug rtl-optimization/43332] valgrind warns about using uninitialized variable with -fsched-pressure -fschedule-insns

2010-05-17 Thread zsojka at seznam dot cz


--- Comment #3 from zsojka at seznam dot cz  2010-05-17 18:45 ---
Stil appears in r159500, x86_64-linux.

Uninitialised read is at gcc/haifa-sched.c:1589, more exactly it is read of
BLOCK_FOR_INSN (insn)

When gcc/haifa-sched.c:1589 is changed to:
insn != NULL_RTX  (printf(%p %p\n, (void *)BLOCK_FOR_INSN (insn), (void
*)BLOCK_FOR_INSN (after)), BLOCK_FOR_INSN (insn) == BLOCK_FOR_INSN (after));

it outputs (for original testcase):
$ /mnt/sda1/build-159500-test/gcc/cc1 -fschedule-insns -fsched-pressure
testcase.c -quiet
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0xafafafafafafafaf 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0xafafafafafafafaf 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0x7fcc29e98270 0x7fcc29e98270
0xafafafafafafafaf 0x7fcc29e98270

However, I wasn't able to cause any difference in generated code even for more
complex testcases, when the condition is true for BLOCK_FOR_INSN (insn) ==
0xafafafafafafafaf - that is, the uninitialised value is the same as
BLOCK_FOR_INSN (after) by luck.


-- 


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



[Bug target/43698] [4.5/4.6 Regression] Invalid code when building gentoo pax-utils-0.1.19 with -Os optimizations

2010-05-17 Thread siarhei dot siamashka at gmail dot com


--- Comment #10 from siarhei dot siamashka at gmail dot com  2010-05-17 
18:48 ---
Maybe I'm too impatient, but is there anything that prevents this patch from
getting committed to SVN?


-- 


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



[Bug c/44173] New: configure -disable-fixincludes doesn't work

2010-05-17 Thread jay dot krell at cornell dot edu
/src/gcc-4.5.0/configure -verbose -disable-shared -enable-static -disable-bo
otstrap -disable-fixincludes -prefix=$HOME



/bin/sh /src/gcc-4.5.0/gcc/../move-if-change tmp-fixinc_list fixinc_list
echo timestamp  s-fixinc_list
make[2]: *** No rule to make target
`../build-i686-pc-linux-gnu/fixincludes/fixinc.sh', needed by `stmp-fixinc'. 
Stop.
make[2]: Leaving directory `/home/jay/obj/gcc2/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/home/jay/obj/gcc2'
make: *** [all] Error 2
j


-- 
   Summary: configure -disable-fixincludes doesn't work
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jay dot krell at cornell dot edu


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



[Bug bootstrap/44173] configure -disable-fixincludes doesn't work

2010-05-17 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2010-05-17 18:53 ---
I don't think this can ever work except when you know 100% that the headers
don't need to be fix included.  Only newer glibc don't need it and newlib
either.  But the majority of the other OS's need it really.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |bootstrap


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread pdimov at gmail dot com


--- Comment #7 from pdimov at gmail dot com  2010-05-17 19:10 ---
(In reply to comment #6)
 Basically the middle-end sees this the same as
   int i = 1, j;
   float *p = new (i) float(0.0);
   j = i;
   return *reinterpret_castfloat *(j);
 and you expect to return 0.0.

The int/float example does violate the aliasing rules, but I don't think that
it properly describes what's happening.

I see it more like a combination of the following two examples:

#include iostream

struct X
{
char data[ sizeof( float ) ];
};

int main()
{
X x1;
new( x1.data ) float( 3.14f );

X x2 = x1;

std::cout  *(float const*)x2.data  std::endl;
}

and

#include iostream

union Y
{
int i;
float f;
};

int main()
{
Y y1;
y1.f = 3.14f;

Y y2 = y1;

std::cout  y2.f  std::endl;
}

I don't think either of them violates the standard.


-- 

pdimov at gmail dot com changed:

   What|Removed |Added

 CC||pdimov at gmail dot com


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2010-05-17 19:17 ---
The first example I think does as there is no way to transfer the dynamic
type via the struct copy.  The second one does not as the union still has a
field that is float and it is only unspecified behavior if you access the other
field in the union (IIRC).


-- 


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



[Bug rtl-optimization/44174] New: [4.4/4.5/4.6 Regression] can't find a register in class 'CLOBBERED_REGS' while reloading 'asm'

2010-05-17 Thread jakub at gcc dot gnu dot org
/* { dg-do compile } */
/* { dg-options -O2 -fpic { target fpic } } */

int f0 (int, int, int, int, int);
int f1 (void);

void
f2 (void)
{
  unsigned v1, v2, v3, v4;
  __asm__ ( : =a (v1), =d (v2), =c (v3), =r (v4));
  f0 (f1 (), f1 (), f1 (), f1 (), (v4  8)  0xff);
}
used to compile with -m32 -O2 -fpic in 4.3, but starting with 4.4 fails with:
/tmp/u.c: In function 'void f2()':
/tmp/u.c:11:60: error: can't find a register in class 'CLOBBERED_REGS' while
reloading 'asm'
/tmp/u.c:11:60: error: 'asm' operand has impossible constraints

while it should be fine to use esi or edi for that.


-- 
   Summary: [4.4/4.5/4.6 Regression] can't find a register in class
'CLOBBERED_REGS' while reloading 'asm'
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: i686-linux


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



[Bug libstdc++/43918] gcc 4.5.0 is failing for i586-pc-msdosdjgpp

2010-05-17 Thread paolo dot carlini at oracle dot com


--- Comment #8 from paolo dot carlini at oracle dot com  2010-05-17 19:29 
---
DJ?


-- 


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



[Bug c++/44175] New: [C++0x] decltype sometimes cannot recurse

2010-05-17 Thread potswa at mac dot com
See attached testcase.

Several things can happen when decltype is used in a function template's return
type to refer to another specialization of the same template.

- The right thing (not easily produced from the current code, but see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44162)
- Non-production of a candidate, a la SFINAE
- g++: Internal error: Segmentation fault (program cc1plus). This happens for
me with the given testcase.

As the recursive type must be dependent, it should be evaluated at the point
of instantiation. Using the template's identifier even before it has been
defined shouldn't be an issue.

The behavior seems to depend on what types are passed to the template in
question. Type deduction doesn't seem to matter. Types involving only
primitives are likely to quietly fail. Types involving classes may succeed or
crash. For example, if I adjust fta,2 to ftint,2, no crash.


-- 
   Summary: [C++0x] decltype sometimes cannot recurse
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: potswa at mac dot com


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



[Bug c++/44175] [C++0x] decltype sometimes cannot recurse

2010-05-17 Thread potswa at mac dot com


--- Comment #1 from potswa at mac dot com  2010-05-17 19:38 ---
Created an attachment (id=20686)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20686action=view)
recursive decltype crashes g++


-- 


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



[Bug c++/44175] [C++0x] decltype sometimes cannot recurse

2010-05-17 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2010-05-17 19:40 
---
Many thanks. Let's add Jason in CC.


-- 

paolo dot carlini at oracle dot com 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-05-17 19:40:46
   date||


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



[Bug c++/44108] [4.6 Regression] -Wunused-but-set-variable does not consider array sizing use of a const variable

2010-05-17 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2010-05-17 19:45 ---
This should be fixed in trunk (4.6)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/44158] [C++0x] wrong overload resolution for copy-initialization from an rvalue

2010-05-17 Thread jason at gcc dot gnu dot org


--- Comment #7 from jason at gcc dot gnu dot org  2010-05-17 19:54 ---
Subject: Bug 44158

Author: jason
Date: Mon May 17 19:53:45 2010
New Revision: 159508

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159508
Log:
PR c++/44158
* call.c (build_over_call): Don't do bitwise copy for move ctor.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C


-- 


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



[Bug c++/44157] [C++0x] GCC wrongly takes a std::initializer_list argument as non-deduced context

2010-05-17 Thread jason at gcc dot gnu dot org


--- Comment #1 from jason at gcc dot gnu dot org  2010-05-17 19:54 ---
Subject: Bug 44157

Author: jason
Date: Mon May 17 19:53:55 2010
New Revision: 159509

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159509
Log:
PR c++/44157
* call.c (build_over_call): Limit init-list deduction warning to
cases where the argument is actually an init-list.

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


-- 


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



[Bug testsuite/44176] New: dg-cmp-results.sh contains several unportabilities

2010-05-17 Thread ro at gcc dot gnu dot org
contrib/dg-cmp-results.sh contains several unportabilities:

* sort -s seems to be specific to GNU sort, neither POSIX.1 nor the vendor
tools
  on Solaris 2, IRIX 6 or Tru64 UNIX have it.

* sed support for EREs (via -r or -E) isn't present on those platforms either.


-- 
   Summary: dg-cmp-results.sh contains several unportabilities
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ro at gcc dot gnu dot org


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



[Bug fortran/43990] [OOP] ICE in output_constructor_regular_field, at varasm.c:4995

2010-05-17 Thread janus at gcc dot gnu dot org


--- Comment #8 from janus at gcc dot gnu dot org  2010-05-17 19:59 ---
Subject: Bug 43990

Author: janus
Date: Mon May 17 19:58:48 2010
New Revision: 159511

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159511
Log:
2010-05-17  Janus Weil  ja...@gcc.gnu.org

PR fortran/43990
* trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
This is now handled via 'gfc_class_null_initializer'.


2010-05-17  Janus Weil  ja...@gcc.gnu.org

PR fortran/43990
* gfortran.dg/class_21.f03: New.

Added:
trunk/gcc/testsuite/gfortran.dg/class_21.f03
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/43990] [OOP] ICE in output_constructor_regular_field, at varasm.c:4995

2010-05-17 Thread janus at gcc dot gnu dot org


--- Comment #9 from janus at gcc dot gnu dot org  2010-05-17 20:05 ---
Fixed with r159511. Closing.


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/13682] Compile error with cstdio: fgetpos not declared on AIX

2010-05-17 Thread pedzsan at gmail dot com


--- Comment #9 from pedzsan at gmail dot com  2010-05-17 20:05 ---
The general reply to this was your GCC was not compiled for your system. 
That isn't the case.  I have two compiles on two different systems.  One if
version 4.5.0 and the other version is 4.3.1 compiled on AIX 5.3 TL05 CSP.  The
4.5.0 version I just finished compiling and it still has the problem.


-- 

pedzsan at gmail dot com changed:

   What|Removed |Added

 CC||pedzsan at gmail dot com


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



[Bug c++/44175] [C++0x] decltype sometimes cannot recurse

2010-05-17 Thread potswa at mac dot com


--- Comment #3 from potswa at mac dot com  2010-05-17 20:10 ---
Created an attachment (id=20687)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20687action=view)
recursive decltype crashes g++

fix minor error (no change in behavior)


-- 

potswa at mac dot com changed:

   What|Removed |Added

  Attachment #20686|0   |1
is obsolete||


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread pdimov at gmail dot com


--- Comment #9 from pdimov at gmail dot com  2010-05-17 20:12 ---
But the standard says in [basic.types] that For any trivially copyable type T,
if two pointers to T point to distinct T objects obj1 and obj2, where neither
obj1 nor obj2 is a base-class subobject, if the underlying bytes (1.7) making
up obj1 are copied into obj2,40 obj2 shall subsequently hold the same value as
obj1.

float is a trivially copyable type. Copying X results in copying the bytes of
X::data (because the default copy constructor of a class does a memberwise
copy, and the default copy constructor of an array does an elementwise copy).
Therefore, the underlying bytes of the object of type float, initialized at
x1.data, are copied into x2.data, which then must, if interpreted as a float,
hold the same value as the original object.


-- 


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



[Bug fortran/44177] New: gfortran internal data assignment error cause found

2010-05-17 Thread harry dot rockefeller at flightsafety dot com
System info: uname -a
CYGWIN_NT-5.1 harryr-pc 1.7.5(0.225/5/3) 2010-04-12 19:07 i686 Cygwin
 gfortran -v
Using built-in specs.
Target: i686-pc-cygwin
Configured with:
/gnu/gcc/releases/packaging/4.3.4-3/gcc4-4.3.4-3/src/gcc-4.3.4/configure
--srcdir=/gnu/gcc/releases/packaging/4.3.4-3/gcc4-4.3.4-3/src/gcc-4.3.4
--prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
--libexecdir=/usr/lib --datadir=/usr/share --localstatedir=/var
--sysconfdir=/etc --infodir=/usr/share/info --mandir=/usr/share/man
--datadir=/usr/share --infodir=/usr/share/info --mandir=/usr/share/man -v
--with-gmp=/usr --with-mpfr=/usr --enable-bootstrap
--enable-version-specific-runtime-libs --with-slibdir=/usr/bin
--libexecdir=/usr/lib --enable-static --enable-shared --enable-shared-libgcc
--disable-__cxa_atexit --with-gnu-ld --with-gnu-as --with-dwarf2
--disable-sjlj-exceptions
--enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --disable-symvers
--enable-libjava --program-suffix=-4 --enable-libgomp --enable-libssp
--enable-libada --enable-threads=posix --with-arch=i686 --with-tune=generic
--enable-libgcj-sublibs CC=gcc-4 CXX=g++-4 CC_FOR_TARGET=gcc-4
CXX_FOR_TARGET=g++-4 GNATMAKE_FOR_TARGET=gnatmake GNATBIND_FOR_TARGET=gnatbind
AS=/opt/gcc-tools/bin/as.exe AS_FOR_TARGET=/opt/gcc-tools/bin/as.exe
LD=/opt/gcc-tools/bin/ld.exe LD_FOR_TARGET=/opt/gcc-tools/bin/ld.exe
--with-ecj-jar=/usr/share/java/ecj.jar
Thread model: posix
gcc version 4.3.4 20090804 (release) 1 (GCC) 

When compiling a fortran module where an array was declared twice, e.g.

real  foo(2) /2*0.0/
and then
data foo /0.0, 0.0/

I got this error:
f951: internal compiler error: in gfc_assign_data_value_range, at
fortran/data.c:562
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Removing the first data declaration fixed the problem.
I presume you will agree a better error message should be given?


-- 
   Summary: gfortran internal data assignment error cause found
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: harry dot rockefeller at flightsafety dot com


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



[Bug target/44132] [4.6 Regression] emutls is broken under a range of circumstances.

2010-05-17 Thread iains at gcc dot gnu dot org


--- Comment #14 from iains at gcc dot gnu dot org  2010-05-17 20:22 ---
Created an attachment (id=20688)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20688action=view)
Work-In-Progress...

here is a modification of comment #7 which gets us a bit further .. but I'm a
bit stumped in some areas.
There are a couple of extra test-cases that I'm using locally to help testing
(probably not for a final patch).

===
A. this checks for emutls vars in VAR/PARAM cases in gimplify.
B. This moves the creation of the init template out of assemble_variable into
emutls_decl () - as soon as we see a DECL_INITIAL we do it .. and then we mark
the original decl with DECL_INITIAL=error_mark so that we still get a parse
error if the user tries to init twice.
C. emutls_final () carries out a pass through the emutls control vars
finalizing them if they are not already done.
D. the substitution of the control var is removed from gcc/expr.c.

Mostly - this is working for tls.exp=* 
unfortunately -lto/-whopr are still killing the control vars (even @ O0)


Problems :

1/ It doesn't work with the race condition patch applied to tree-profile.c --
this is because tree-profile is emitting gimple directly and assuming that it
doesn't need gimplification (and I've not been able to figure out how to fix
that yet).
2/ It breaks libgomp quite a bit ... I'm guessing that there's another spot in
gimplify.c that we need to apply the substitution but - can't see it yet .. ;)

anyway ... Honza .. I'm sure you will see the solutions 10^6 times quicker than
me...

*** this is experimental *** (some way from a complete solution)


-- 


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



[Bug fortran/43895] [OOP] internal compiler error: verify_ssa failed

2010-05-17 Thread burnus at gcc dot gnu dot org


--- Comment #7 from burnus at gcc dot gnu dot org  2010-05-17 20:22 ---
Propagate comment from PR 43990:

There seems to be an inconsistency with CLASS with POINTER
or ALLOCATABLE attribute: Is class.$DATA or class the pointer variable. If
one adds b = ALLOCATED(x) one finds:

  x.a.$data = 0B;   ! Default initialization sets class.$data to NULL
  D.1577 = x-a;   ! ALLOCATED check looks at (class != NULL)
  b = D.1577 != 0B;

Which does not make sense.  [This might be unrelated to the ICE.]


-- 


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



[Bug fortran/43986] [OOP] gfortran.dg/dynamic_dispatch_4.f03 doesn't work on Linux/ia64

2010-05-17 Thread wilson at gcc dot gnu dot org


--- Comment #5 from wilson at gcc dot gnu dot org  2010-05-17 20:24 ---
A little more debugging.  I traced through the true_dependence call that is
returning 0 when it should return 1.

We end up calling rtx_refs_may_alias_p at the end.  This calls
refs_may_alias_p_1, which calls indirect_ref_may_alias_decl_p which discovers
that we have different non-overlapping alias sets, and it declares that there
is no aliasing here.  This is last-resort TBAA being used here.

We have different alias sets, because one reference is to
... arg 0 var_decl 0xb7d4eba0 vtab$s_bar
type record_type 0xb7d4ea80 vtype$s_bar BLK ...
and the other is to
... arg 0 indirect_ref 0xb7d74c94
type record_type 0xb7d4e060 vtype$foo BLK ...

It appears that the Fortran front end is deliberately confusing the types here,
because in the .003t.original dump file I see
  a.$vptr = (struct vtype$foo *) vtab$s_bar;
  a.$data = (struct foo *) c;
  a.$vptr-doit (a);

So either the fortran front end needs to get the types right, or else the
fortran front end needs to explain to the alias code that these apparently
unrelated types do alias.  Or maybe the alias code needs to be extended to
recognize Fortran OOP types that can alias each other.  I didn't look at this.

Along the way, I did discover another place where it appears that we can solve
the problem.  After the get_addr calls in true_dependence, we have
mem_addr
(if_then_else:DI (eq (value:BI 58:4011 @0x8b22b50/0x8b360e0)
(const_int 0 [0]))
(plus:DI (value:DI 55:2108434270 @0x8b22b2c/0x8b3608c)
(const_int 24 [0x18]))
(value:DI 57:57 @0x8b22b44/0x8b360c4))
insn 103
x_addr
(plus:DI (value:DI 55:2108434270 @0x8b22b2c/0x8b3608c)
(const_int 24 [0x18]))
These addresses obviously conflict.  Unfortunately, neither memrefs_conflict_p
nor rtx_equal_for_memref_p have any support for if_then_else inside an address.
 If one of them was modified to check for an if_then_else and then recursively
compare against both arms of the if_then_else, then that would solve the
problem too.  This would prevent us from falling through to the last-resort
TBAA code that isn't work as desired here.

I'm not planning to do any other work on this in the short term, as I have
other IA-64 problems I need to try to fix first.


-- 


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



  1   2   >