[Bug c++/50233] Internal compiler error: in build_value_init_noctor, at cp/init.c:336

2011-08-30 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50233

Daniel Krügler daniel.kruegler at googlemail dot com changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com 
2011-08-30 06:33:44 UTC ---
Seems to be fixed in 4.7.0 (Tested with 4.7.0 20110820 (experimental))


[Bug fortran/50163] [4.4/4.5 Regression] ICE: initialization expression

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50163

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
06:50:28 UTC ---
Author: burnus
Date: Tue Aug 30 06:50:22 2011
New Revision: 178280

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178280
Log:
2011-08-30  Tobias Burnus  bur...@net-b.de

PR fortran/50163
* check_init_expr (check_init_expr): Return when an error
* occured.

2011-08-30  Tobias Burnus  bur...@net-b.de

PR fortran/50163
* gfortran.dg/initialization_28.f90: New.


Added:
branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/initialization_28.f90
Modified:
branches/gcc-4_5-branch/gcc/fortran/ChangeLog
branches/gcc-4_5-branch/gcc/fortran/expr.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug middle-end/50232] [4.7 Regression] reorg.c:3971: undefined reference to `make_return_insns'

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50232

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-08-30
 CC||bernds at gcc dot gnu.org
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
07:24:54 UTC ---
Confirmed.  Misses some #ifdef (relies on optimization otherwise).

Bernd, seems to be caused by your patch.


[Bug c/50236] compiler throws internal compiler error: Segmentation fault

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50236

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-08-30
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
07:26:40 UTC ---
Please update to a compiler version that is still supported, which would
be GCC 4.4.6 or newer.  Also attach preprocessed source so the bug can be
reproduced.


[Bug c++/50234] internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527

2011-08-30 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50234

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-08-30
 CC||jakub at gcc dot gnu.org,
   ||jason at gcc dot gnu.org
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1


[Bug target/50235] Wrong code with volatile bitfields and -Os

2011-08-30 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50235

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-08-30 
08:19:10 UTC ---
Likely dup of PR48124 .


[Bug middle-end/29269] missing documentation for vcond (vector conditional operation)

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29269

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
08:54:23 UTC ---
Mine.


[Bug tree-optimization/27460] Does not vectorize statements with mixed type COND_EXPRs

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27460

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
08:54:42 UTC ---
Mine.


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #21 from Jonathan Wakely redi at gcc dot gnu.org 2011-08-30 
09:12:23 UTC ---
Thanks, Marc! We can (and eventually should) fix anything in libstdc++ that
incorrectly relies on this bug. Gthreads might be a little harder, but we could
probably overload on language linkage if necessary, so the existing interfaces
are preserved.
I'll try your patch and see what, if anything, can be changed safely in
libstdc++ right away.


[Bug c++/50233] Internal compiler error: in build_value_init_noctor, at cp/init.c:336

2011-08-30 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50233

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-08-30 
09:14:25 UTC ---
Good. 4_6-branch behaves the same. Do we agree that GCC is correct in rejecting
this (without ICE-ing of course)?


[Bug c++/50233] Internal compiler error: in build_value_init_noctor, at cp/init.c:336

2011-08-30 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50233

--- Comment #3 from Daniel Krügler daniel.kruegler at googlemail dot com 
2011-08-30 09:30:48 UTC ---
(In reply to comment #2)
 Good. 4_6-branch behaves the same. Do we agree that GCC is correct in 
 rejecting
 this (without ICE-ing of course)?

I think that gcc is right rejecting it. The case is similar to the following
one:

int main()
{
  constexpr int i{};
  constexpr const int* p = i;
}

This program is ill-formed, because i is a variable without static storage
duration, and thus does not allow for forming an address-constant expression.


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #22 from Marc Glisse marc.glisse at normalesup dot org 2011-08-30 
09:32:24 UTC ---
(In reply to comment #21)
 I'll try your patch and see what, if anything, can be changed safely in
 libstdc++ right away.

Thanks :-)

Note that some things are painful to do right with extern C. For instance,
the __stoa helper takes as argument a pointer to a function with a type that
depends on template arguments. As far as I can see, it is not possible to do
that for extern C functions (I posted a question about that on clc++m
yesterday), so that would mean rewriting this code differently. My guess is
that making extern C functions usable would require a few DR, or extern C
being part of the type will follow the example of export and be
deprecated/removed (the second option is more likely, even if that's yet
another change that hurts Oracle's compiler).


[Bug c++/50233] Internal compiler error: in build_value_init_noctor, at cp/init.c:336

2011-08-30 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50233

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.6.2
 Resolution||FIXED

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-08-30 
09:37:29 UTC ---
Excellent.


[Bug c++/49171] [C++0x][constexpr] Constant expressions support reinterpret_cast

2011-08-30 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49171

--- Comment #2 from Daniel Krügler daniel.kruegler at googlemail dot com 
2011-08-30 09:39:43 UTC ---
I believe I found a conforming usage of reinterpret_cast in constant
expressions useable in C++03:

//
struct X {
 X* operator();
};

X x[2];

const bool p = (reinterpret_castX*(reinterpret_castchar(x[1]))
- reinterpret_castX*(reinterpret_castchar(x[0]))) == sizeof(X);

enum E { e = p }; // e should have a value equal to 1
//

Basically this program demonstrates the technique, the C++11 library function
addressof is based on and thus excluding reinterpret_cast *unconditionally*
from constant expressions in the core language would render this useful program
invalid and would make it impossible to declare addressof as a constexpr
function.


[Bug c++/25137] Warning missing braces around initializer causing problems with tr1::array

2011-08-30 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25137

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||dodji at gcc dot gnu.org

--- Comment #16 from Paolo Carlini paolo.carlini at oracle dot com 2011-08-30 
09:41:23 UTC ---
Maybe Dodji is interested in working on this?!? Can be quite annoying with
tr1::array and std::array in C++11, of course.


[Bug c++/50233] Internal compiler error: in build_value_init_noctor, at cp/init.c:336

2011-08-30 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50233

--- Comment #5 from Daniel Krügler daniel.kruegler at googlemail dot com 
2011-08-30 09:52:19 UTC ---
I just notice that the current exclusion of reinterpret_cast in constant
expressions would make it impossible to define addressof as a constexpr
function. C++11 currently invalidates the special portable language rule of
reinterpret_cast, addressof is based on, see also the recent example given in
bug 49171, comment 2.


[Bug libstdc++/50160] vectorbool comparison very slow (no overload)

2011-08-30 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50160

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

Summary|vectorbool comparison |vectorbool comparison
   |very slow (no   |very slow (no overload)
   |specialisation) |

--- Comment #13 from Paolo Carlini paolo.carlini at oracle dot com 2011-08-30 
10:29:14 UTC ---
To be precise, we are talking about overloading not specializing. The issue, in
general, reminds me the way we overload std::fill and std::copy for ranges of
deque::iterator, but then in detail, there are the difficulties pointed out
by Marc. I'm certainly available for patch reviews, anyway.


[Bug target/50164] [IRA, 4.7 Regression] Performance degradation due to increased memory instructions count

2011-08-30 Thread enkovich.gnu at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50164

Ilya Enkovich enkovich.gnu at gmail dot com changed:

   What|Removed |Added

  Attachment #25083|0   |1
is obsolete||

--- Comment #7 from Ilya Enkovich enkovich.gnu at gmail dot com 2011-08-30 
10:40:50 UTC ---
Created attachment 25138
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25138
Fixed reproducer


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #23 from Jonathan Wakely redi at gcc dot gnu.org 2011-08-30 
10:46:51 UTC ---
(In reply to comment #22)
 Note that some things are painful to do right with extern C. For instance,
 the __stoa helper takes as argument a pointer to a function with a type that
 depends on template arguments. As far as I can see, it is not possible to do
 that for extern C functions (I posted a question about that on clc++m
 yesterday), so that would mean rewriting this code differently.

I think you can do it with a alias-declaration in an extern C block:

extern C {
  templatetypename T
using func_type = T (*)();
}

extern C void c() { }

templatetypename T
  void f( func_typeT p ) { p(); }

int main()
{
  f(c);
}

But yes, it's a bit of a hole in the type system that language linkage is part
of the type but can only be specified in some contexts and can't be deduced by
templates.  We could solve it with an alternative syntax for language linkage
using attributes:

  void f( [[extern(C)]] void (*p)() );

could be equivalent to:

  extern C {  typedef void (*func_type)();  }
  void f( func_type p );

so we could say:

  templatetypename T, typename U
void g( [[extern(C)]] T (*p)(U));


Without alias-declarations, the tedious way to fix __stoa would be write an
extern C++ forwarding function for each of the strtol, stroul, vsnprintf etc.
functions we need, and pass that forwarding function to the helper function
templates. That could be done with macros, and would still be simpler than
re-implementing the __stoa error-checking logic in each one.  Anyway, that is
probably straying off-topic for this PR.

 My guess is
 that making extern C functions usable would require a few DR, or extern C
 being part of the type will follow the example of export and be
 deprecated/removed (the second option is more likely, even if that's yet
 another change that hurts Oracle's compiler).

Clang++ and VC++ also implement this bug.  If it's fixed in G++ it would need
to be controlled by a switch, maybe with the current behaviour as the default
(but issuing a warning) for a couple of releases. As I said in c13, it could
break a lot of code, plenty of people don't even know that they shouldn't be
able to pass extern C++ functions to C library APIs.


[Bug target/50164] [IRA, 4.7 Regression] Performance degradation due to increased memory instructions count

2011-08-30 Thread enkovich.gnu at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50164

--- Comment #8 from Ilya Enkovich enkovich.gnu at gmail dot com 2011-08-30 
10:50:44 UTC ---
I attached a fixed reproducer. It is closer to the original test and has higher
registers pressure then the previous version. It has the same problem as the
first reproducer. 

Reproduced with GCC 4.7.0 20110828 and options -O2 -m32 -march=atom. Code
becomes faster on both Atom (~10%) and Core (~35%) if I use just -O2 -m32.


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #24 from Jonathan Wakely redi at gcc dot gnu.org 2011-08-30 
10:49:27 UTC ---
(In reply to comment #23)
 I think you can do it with a alias-declaration in an extern C block:

But that might have only worked when I tested it because Clang++ doesn't
overload on language linkage either, I'm not sure if it's actually valid.


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #25 from Marc Glisse marc.glisse at normalesup dot org 2011-08-30 
11:28:48 UTC ---
(In reply to comment #23)
 I think you can do it with a alias-declaration in an extern C block:
 
 extern C {
   templatetypename T
 using func_type = T (*)();
 }
 
 extern C void c() { }
 
 templatetypename T
   void f( func_typeT p ) { p(); }
 
 int main()
 {
   f(c);
 }
 
 But yes, it's a bit of a hole in the type system that language linkage is part
 of the type but can only be specified in some contexts and can't be deduced by
 templates.

Yes, I thought about the alias, but it doesn't deduce the type. I really don't
think your example works unless you call fthetype(c) as aliases are not
supposed to be deduced.

 We could solve it with an alternative syntax for language linkage
 using attributes:
 
   void f( [[extern(C)]] void (*p)() );

Is that where attributes go? That must be inconvenient for functions returning
function pointers. Or does it have some kind of scope?

 could be equivalent to:
 
   extern C {  typedef void (*func_type)();  }
   void f( func_type p );
 
 so we could say:
 
   templatetypename T, typename U
 void g( [[extern(C)]] T (*p)(U));

Yes, that would be nice.

My guess is that we are supposed to use extern C functions very rarely and
only in very specific contexts where it doesn't matter so much if you can't do
all the meta-programming stuff.

 Anyway, that is probably straying off-topic for this PR.

Finding reasons to ask for the removal of this feature from the next standard
is kind of relevant ;-)

 Clang++ and VC++ also implement this bug.  If it's fixed in G++ it would 
 need
 to be controlled by a switch, maybe with the current behaviour as the default
 (but issuing a warning) for a couple of releases. As I said in c13, it could
 break a lot of code, plenty of people don't even know that they shouldn't be
 able to pass extern C++ functions to C library APIs.

Oracle's compiler implements it as different types, which already breaks a bit
of code (but it also means that a number of large projects have been fixed for
it), but it still allows many kinds of conversions between them, so most code
only gives warnings.


[Bug middle-end/50232] [4.7 Regression] reorg.c:3971: undefined reference to `make_return_insns'

2011-08-30 Thread bernds at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50232

--- Comment #2 from Bernd Schmidt bernds at gcc dot gnu.org 2011-08-30 
11:31:34 UTC ---
Ugh, code prettyfication gone wrong. Will fix.

However, you'll probably also want to add return patterns to PA for
optimization.


[Bug tree-optimization/48571] [4.5/4.6/4.7 Regression] Missed data-dependence for (bogus?) reconstructed array-refs

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48571

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-08-30
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
11:42:59 UTC ---
Mine.


[Bug fortran/50163] [4.4/4.5/4.6/4.7 Regression] ICE: initialization expression

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50163

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|4.6.2   |4.5.4
Summary|[4.4/4.5 Regression] ICE:   |[4.4/4.5/4.6/4.7
   |initialization expression   |Regression] ICE:
   ||initialization expression

--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
12:09:19 UTC ---
FIXED on the trunk (4.7) and on the 4.5 and 4.6 branches. As mere
ice-on-invalid-code bug, I decided not to backport it to 4.4. Anyone who wants
to have it also in 4.4: Feel free to either backport it yourself or to tell us.

Thanks for the bug report!


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #26 from Jonathan Wakely redi at gcc dot gnu.org 2011-08-30 
12:17:47 UTC ---
(In reply to comment #25)
 (In reply to comment #23)
 
  We could solve it with an alternative syntax for language linkage
  using attributes:
  
void f( [[extern(C)]] void (*p)() );
 
 Is that where attributes go? That must be inconvenient for functions returning
 function pointers. Or does it have some kind of scope?

I probably have the syntax wrong, I wanted that attribute to apply to the
parameter p, but for a function poiner maybe it should be:

void f( void (*p)() [[extern(C)]] );

And for a function pointer return type my attempt would be

void (* ugly(int)[[extern(C++)]] )() [[extern(C)]] ;

i.e. 

extern C {  typedef void (*c_func)() }

extern C++ {  c_func ugly(int); }


Maybe.


 My guess is that we are supposed to use extern C functions very rarely and
 only in very specific contexts where it doesn't matter so much if you can't do
 all the meta-programming stuff.

I did suggest to the POSIX C++ WG that there should be extern C++ overloads
of pthread_create, pthread_atfork etc. just as we have overloads of qsort and
bsearch taking pointers to extern C++ functions, which would allow existing
code that relies on this bug to just work without changes.  I was going to
submit a proposal along those lines, but that WG seemed to fizzle out and I
never finished the paper.  I probably still have it on an old hard drive on a
shelf somewhere.


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #27 from Jonathan Wakely redi at gcc dot gnu.org 2011-08-30 
12:19:23 UTC ---
this is DR13 btw
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#13
I don't know if that's been reconsidered now we have attributes


[Bug fortran/50231] Fatal Error: Wrong module version '5' (expected '4') for file 'sizes.mod'

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50231

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |WAITING

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
12:24:26 UTC ---
Mark as WAITING.

For the questions, see second part of comment 3.


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #28 from Marc Glisse marc.glisse at normalesup dot org 2011-08-30 
12:34:20 UTC ---
(In reply to comment #27)
 this is DR13 btw
 http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#13
 I don't know if that's been reconsidered now we have attributes

Gah, I looked for it, and once again forgot to look outside of the active
list :-(

Yes, this is exactly this DR, thanks for digging it up.


[Bug libstdc++/50143] Doxygen API documentation is invalid

2011-08-30 Thread giecrilj at stegny dot 2a.pl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50143

--- Comment #22 from Christopher Yeleighton giecrilj at stegny dot 2a.pl 
2011-08-30 13:10:38 UTC ---
(In reply to comment #21)
 (In reply to comment #20)
  Please publish your result (just one page will do).
 
 I've deleted it now, you can see for yourself using the (about 10 lines in
 total) examples in my doxygen bug report

The result of the bug, html/namespacefoo.html, is perfectly legible in
Konqueror, so I still cannot reproduce (a valid unreadable document is needed).


[Bug bootstrap/50237] New: [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

 Bug #: 50237
   Summary: [4.7 regression] comparison failure caused by
HAVE_INITFINI_ARRAY check
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ebotca...@gcc.gnu.org
  Host: x86_64-suse-linux
Target: x86_64-suse-linux
 Build: x86_64-suse-linux


I have had a bootstrap comparison failure for days on x86-64/Linux:

libcpp/lex.o differs

It turns out that stage3 has

  6 .init_array   0008      3d20  2**3
  CONTENTS, ALLOC, LOAD, RELOC, DATA

but stage2 has

  6 .ctors0008      3d20  2**3
  CONTENTS, ALLOC, LOAD, RELOC, DATA

That isn't surprising because HAVE_INITFINI_ARRAY isn't uniform:

eric@hermes:~/build/gcc/native grep HAVE_INITFINI_ARRAY stage1-gcc/auto-host.h 
/* #undef HAVE_INITFINI_ARRAY */
eric@hermes:~/build/gcc/native grep HAVE_INITFINI_ARRAY prev-gcc/auto-host.h
#define HAVE_INITFINI_ARRAY 1

i.e. despite http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00659.html the check
is still applied to the host compiler, not to the target.  The base compiler is
the system compiler on OpenSuSE 11.0 and the check doesn't pass for it:

eric@hermes:~/build/gcc/native gcc -o t t.c
eric@hermes:~/build/gcc/native ./t
Aborted

The compiler is configured with

eric@hermes:~/build/gcc/native gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=gcc/xgcc
Target: x86_64-suse-linux
Configured with: /home/eric/svn/gcc/configure x86_64-suse-linux
--prefix=/home/eric/install/gcc
--with-as=/home/eric/build/binutils/native/gas/as-new
--with-ld=/home/eric/build/binutils/native/ld/ld-new
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-checking=yes,rtl --enable-__cxa_atexit --disable-nls
--disable-libmudflap
Thread model: posix
gcc version 4.7.0 20110830 (experimental) [trunk revision 178287] (GCC)


A workaround would be to get rid of the __attribute__((constructor)) in lex.c
but someone should sit down and write a correct HAVE_INITFINI_ARRAY check.


[Bug fortran/45045] Named COMMON with different size: No warning with -fwhole-file

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45045

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
13:24:46 UTC ---
Is really the same as PR 45044.

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


[Bug fortran/45044] Different named COMMON block size: No warning

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45044

Bug 45044 depends on bug 45045, which changed state.

Bug 45045 Summary: Named COMMON with different size: No warning with 
-fwhole-file
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45045

   What|Old Value   |New Value

 Status|UNCONFIRMED |NEW
 Status|NEW |RESOLVED
 Resolution||DUPLICATE

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
13:24:47 UTC ---
*** Bug 45045 has been marked as a duplicate of this bug. ***


[Bug libstdc++/50143] Doxygen API documentation is invalid

2011-08-30 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50143

--- Comment #23 from Jonathan Wakely redi at gcc dot gnu.org 2011-08-30 
13:25:17 UTC ---
Did you alter the Doxyfile as I described in Comment 20 here?  Otherwise you're
not getting valid XHTML, and you're not getting the treeview that caused the
problem when I tested it.

I've reported the doxygen bug, I've shown you how to run doxygen. I've
described how to change the Doxyfile to avoid the bug, I've tested it in
Konqueror, so far all you've done is ask me to do everything, even when it only
involves running three simple shell commands.  I have better things to do. Feel
free to debug it and suggest fixes yourself, but don't expect me to spend any
more time showing you how to run doxygen etc.


[Bug fortran/45044] Different named COMMON block size: No warning

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45044

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
13:26:23 UTC ---
Simple patch to print also a warning if a smaller named common block follows a
larger one.

TODO: Print the location of the other COMMON block. One can recover the line
number via DECL_SOURCE_FILE and DECL_SOURCE_LINE, but one still lacks the
column and the source-line string (cf. gfc_linebuf).


--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -392,4 +392,10 @@ build_common_decl (gfc_common_head *com, tree union_type,
bool is_init)
   tree size = TYPE_SIZE_UNIT (union_type);
+
+  if (!tree_int_cst_equal (DECL_SIZE_UNIT (decl), size)
+  strcmp (com-name, BLANK_COMMON_NAME))
+   gfc_warning (Named COMMON block '%s' at %L shall be of the 
+same size, com-name, com-where);
+
   if (tree_int_cst_lt (DECL_SIZE_UNIT (decl), size))
-{
+   {
  /* Named common blocks of the same name shall be of the same size
@@ -397,5 +403,2 @@ build_common_decl (gfc_common_head *com, tree union_type,
bool is_init)
 blank common blocks may be of different sizes.  */
- if (strcmp (com-name, BLANK_COMMON_NAME))
-   gfc_warning (Named COMMON block '%s' at %L shall be of the 
-same size, com-name, com-where);
  DECL_SIZE (decl) = TYPE_SIZE (union_type);


[Bug libstdc++/50143] Doxygen API documentation is invalid

2011-08-30 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50143

--- Comment #24 from Jonathan Wakely redi at gcc dot gnu.org 2011-08-30 
13:27:37 UTC ---
(In reply to comment #23)
 Did you alter the Doxyfile as I described in Comment 20 here? 

Comment 18, rather


[Bug testsuite/50185] [4.7 Regression] Bad AVX2 tests

2011-08-30 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50185

--- Comment #6 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-08-30 
13:28:26 UTC ---
Author: hjl
Date: Tue Aug 30 13:28:21 2011
New Revision: 178302

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178302
Log:
Rename avx2-vmovmskb-2.c to avx2-vpmovmskb-2.c.

2011-08-30  Kirill Yukhin  kirill.yuk...@intel.com

PR testsuite/50185
* gcc.target/i386/avx2-vmovmskb-2.c: Rename to ...
* gcc.target/i386/avx2-vpmovmskb-2.c: ... this. Update.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx2-vpmovmskb-2.c
Removed:
trunk/gcc/testsuite/gcc.target/i386/avx2-vmovmskb-2.c
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hjl at gcc dot gnu.org
   Target Milestone|--- |4.7.0


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

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

   What|Removed |Added

 CC|hjl at gcc dot gnu.org  |hjl.tools at gmail dot com

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2011-08-30 13:40:54 
UTC ---
HAVE_INITFINI_ARRAY is supposed to check the binutils/glibc feature,
independent of compiler.  Which GCC does OpenSuSE 11.0 have?


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #2 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-08-30 
13:50:28 UTC ---
 HAVE_INITFINI_ARRAY is supposed to check the binutils/glibc feature,
 independent of compiler.

AFAICS it doesn't, it compiles everything with the host compiler, which will
use in particular the old binutils.  See by contrast various tests in
configure.ac that really check the features of the new binutils.

 Which GCC does OpenSuSE 11.0 have?

Using built-in specs.
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --with-local-prefix=/usr/local
--infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64
--libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.3
--enable-ssp --disable-libssp --with-bugurl=http://bugs.opensuse.org/
--with-pkgversion='SUSE Linux' --disable-libgcj --with-slibdir=/lib64
--with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new
--disable-libstdcxx-pch --program-suffix=-4.3
--enable-version-specific-runtime-libs --enable-linux-futex
--without-system-libunwind --with-cpu=generic --build=x86_64-suse-linux
Thread model: posix
gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE
Linux)


[Bug libstdc++/50143] Doxygen API documentation is invalid

2011-08-30 Thread giecrilj at stegny dot 2a.pl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50143

--- Comment #25 from Christopher Yeleighton giecrilj at stegny dot 2a.pl 
2011-08-30 13:51:39 UTC ---
Well, the original documentation now shows up in Konqueror after a little
delay, so the original failure might have been due do a network problem (e.g. a
failed script download).  While it is bad design to rely on scripts to make a
page readable, it is obviously not your problem.  Thanks for your help anyway.


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2011-08-30 13:57:46 
UTC ---
(In reply to comment #2)
  HAVE_INITFINI_ARRAY is supposed to check the binutils/glibc feature,
  independent of compiler.
 
 AFAICS it doesn't, it compiles everything with the host compiler, which will
 use in particular the old binutils.  See by contrast various tests in
 configure.ac that really check the features of the new binutils.
 

How is the different binutils in stage 1/2/3? Can you use
the same binutils in stage 1/2/3?


[Bug tree-optimization/48571] [4.5/4.6/4.7 Regression] Missed data-dependence for (bogus?) reconstructed array-refs

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48571

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
14:06:07 UTC ---
Author: rguenth
Date: Tue Aug 30 14:06:00 2011
New Revision: 178312

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178312
Log:
2011-08-30  Richard Guenther  rguent...@suse.de

PR middle-end/48571
* gimple.h (maybe_fold_offset_to_address): Remove.
(maybe_fold_offset_to_reference): Likewise.
(maybe_fold_stmt_addition): Likewise.
(may_propagate_address_into_dereference): Likewise.
* tree-inline.c (remap_gimple_op_r): Do not reconstruct
array references.
* gimple-fold.c (canonicalize_constructor_val): Likewise.
Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
addresses instead.
(may_propagate_address_into_dereference): Remove.
(maybe_fold_offset_to_array_ref): Likewise.
(maybe_fold_offset_to_reference): Likewise.
(maybe_fold_offset_to_address): Likewise.
(maybe_fold_stmt_addition): Likewise.
(fold_gimple_assign): Do not reconstruct array references but
instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
MEM_REF addresses.
(gimple_fold_stmt_to_constant_1): Likewise.
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
* gimplify.c (gimplify_conversion): Likewise.
(gimplify_expr): Likewise.

* gcc.c-torture/execute/pr48571-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-ccp-25.c: Remove.
* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
* gcc.dg/pr36902.c: XFAIL.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr48571-1.c
Removed:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-25.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-26.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/gimple.h
trunk/gcc/gimplify.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/pr36902.c
trunk/gcc/tree-inline.c
trunk/gcc/tree-ssa-forwprop.c


[Bug tree-optimization/48571] [4.5/4.6 Regression] Missed data-dependence for (bogus?) reconstructed array-refs

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48571

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.7.0
Summary|[4.5/4.6/4.7 Regression]|[4.5/4.6 Regression] Missed
   |Missed data-dependence for  |data-dependence for
   |(bogus?) reconstructed  |(bogus?) reconstructed
   |array-refs  |array-refs
  Known to fail|4.7.0   |

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
14:07:03 UTC ---
Fixed for 4.7.  There is not much chance in backporting.


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-08-30 
14:09:08 UTC ---
Only stage2/3 binutils need to be the same and those are relevant for
feature tests.


[Bug c++/50234] internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50234

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #5 from H.J. Lu hjl.tools at gmail dot com 2011-08-30 14:23:05 
UTC ---
(In reply to comment #4)
 Only stage2/3 binutils need to be the same and those are relevant for
 feature tests.

How does stage 2 binutils fail the test?


[Bug middle-end/50232] [4.7 Regression] reorg.c:3971: undefined reference to `make_return_insns'

2011-08-30 Thread dave.anglin at bell dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50232

--- Comment #3 from dave.anglin at bell dot net 2011-08-30 14:29:10 UTC ---
On 8/30/2011 7:31 AM, bernds at gcc dot gnu.org wrote:
 However, you'll probably also want to add return patterns to PA for
 optimization.

I don't think the conditions required to define a return pattern are 
met.  Possibly,
a simple_return pattern could be defined.  Is this what you are 
suggesting?

Dave


[Bug middle-end/49328] [4.5 Regression] Internal compiler error due to explicit array bounds in contained routine argument

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49328

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
  Component|fortran |middle-end

--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
14:34:21 UTC ---
Move to component: middle-end.

Summary: Works with 4.4, fails with 4.5, works again since 4.6.
Only ICEs (cf. comment 0) with optimization.

I have not tried to trace down the regression-causing patch but only the one
which fixed the issue on the 4.6 trunk:

FAILING: 20100418  158491
OK:  20100419  158501

Thus, the commit fixing this issue was Rev. 158496:
  http://gcc.gnu.org/ml/gcc-cvs/2010-04/msg00602.html
see also:
  http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01131.html


[Bug c++/50220] [C++0x] [4.7 Regression] ICE when capturing a by-reference template function argument in a lambda

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50220

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |


[Bug fortran/50050] Internal compiler error free_expr0 at expr.c:3709 via gfc_done_2

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50050

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.6/4.7 Regression]|Internal compiler error
   |Internal compiler error |free_expr0 at expr.c:3709
   |free_expr0 at expr.c:3709   |via gfc_done_2
   |via gfc_done_2  |

--- Comment #13 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
14:43:20 UTC ---
I removed the regression marker as the regression (cf. comment 7 to comment 12)
has been fixed for the affected 4.6 branch and the 4.7 trunk.

I leave the PR open in case someone wants to backport (to 4.5 and/or 4.4) the
original patch (comment 5) with the follow-up patch (comment 11). The original
bug is about an ice-on-valid-code issue.


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-08-30 
15:00:54 UTC ---
 How does stage 2 binutils fail the test?

It doesn't.  Let me explain:

  - during stage1, the check is made with the host compiler, i.e. the base
compiler, so the old binutils are used and the check fails, that's why we have

/* #undef HAVE_INITFINI_ARRAY */

in stage1-gcc/auto-host.h.  This means that the stage1 compiler doesn't have
the support.  Since this compiler is used to compile stage2 libcpp/lex.o, the
file gets the .ctors section.

  - during stage2, the check is made with the host cmpiler, i.e. the stage 1
compiler, so the new binutils (--with-as=, --with-ld) are used and the check
succeeds, that's why we have

#define HAVE_INITFINI_ARRAY 1

in stage2-gcc/auto-host.h.  This means that the stage2 compiler has the
support.
Since this compiler is used to compile stage3 libcpp/lex.o, the file gets the
.init_array section.


The fix is to turn the check into a target check, i.e. test the target
binutils.
See configure.ac:1884 and below.


[Bug middle-end/50232] [4.7 Regression] reorg.c:3971: undefined reference to `make_return_insns'

2011-08-30 Thread bernds at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50232

--- Comment #4 from Bernd Schmidt bernds at gcc dot gnu.org 2011-08-30 
15:06:05 UTC ---
Surely the PA has some kind of return instruction?
Most ports define a return pattern with an insn condition that requires that
the epilogue is empty. In that case, jumps to the end of the function will be
replaced by return instructions. Also, the return pattern can in this case
emit either a return or a simple_return rtx; they are equivalent if there
is no epilogue.

You can define a simple_return pattern, but it will only gain anything once
the final shrink-wrapping bits are in.


[Bug c++/50220] [C++0x] [4.7 Regression] ICE when capturing a by-reference template function argument in a lambda

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50220

--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
15:28:44 UTC ---
Author: jason
Date: Tue Aug 30 15:28:40 2011
New Revision: 178326

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178326
Log:
PR c++/50220
* semantics.c (add_capture): Call complete_type for copy.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-50220.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/50234] internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50234

--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
15:28:35 UTC ---
Author: jason
Date: Tue Aug 30 15:28:30 2011
New Revision: 178325

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178325
Log:
PR c++/50234
* semantics.c (cxx_eval_component_reference): Handle
value-initialization for omitted initializers.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-value3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/50234] internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50234

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|4.7.0   |4.6.2

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
15:30:33 UTC ---
Fixed.


[Bug c++/50220] [C++0x] [4.7 Regression] ICE when capturing a by-reference template function argument in a lambda

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50220

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
15:29:09 UTC ---
Author: jason
Date: Tue Aug 30 15:29:04 2011
New Revision: 178328

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178328
Log:
PR c++/50220
* semantics.c (add_capture): Call complete_type for copy.

Added:
branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-50220.C
Modified:
branches/gcc-4_6-branch/gcc/cp/ChangeLog
branches/gcc-4_6-branch/gcc/cp/semantics.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug c++/50220] [C++0x] [4.7 Regression] ICE when capturing a by-reference template function argument in a lambda

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50220

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
15:29:59 UTC ---
Fixed.


[Bug c++/50234] internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50234

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
15:28:57 UTC ---
Author: jason
Date: Tue Aug 30 15:28:55 2011
New Revision: 178327

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178327
Log:
PR c++/50234
* semantics.c (cxx_eval_component_reference): Handle
value-initialization for omitted initializers.

Added:
branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/constexpr-value3.C
Modified:
branches/gcc-4_6-branch/gcc/cp/ChangeLog
branches/gcc-4_6-branch/gcc/cp/semantics.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug fortran/45170] [F2003] allocatable character lengths

2011-08-30 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #29 from kargl at gcc dot gnu.org 2011-08-30 15:34:06 UTC ---
Author: kargl
Date: Tue Aug 30 15:34:01 2011
New Revision: 178329

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178329
Log:
2011-08-30  Steven G. Kargl  ka...@gcc.gnu.org

PR fortran/45170
* trans-stmt.c (gfc_trans_allocate): Evaluate the substring.

2011-08-30  Steven G. Kargl  ka...@gcc.gnu.org

PR fortran/45170
* gfortran.dg/allocate_with_source_2.f90: New test

Added:
trunk/gcc/testsuite/gfortran.dg/allocate_with_source_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/50238] New: configure: error: GNU Fortran is not working

2011-08-30 Thread silvio.filipe.ubi at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50238

 Bug #: 50238
   Summary: configure: error: GNU Fortran is not working
Classification: Unclassified
   Product: gcc
   Version: 4.3.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: silvio.filipe@gmail.com


Hi,

I'm trying to install gcc-4.3.4 and is giving the following error:

configure: error: GNU Fortran is not working; please report a bug in
http://gcc.gnu.org/bugzilla, attaching
/home/silvio/Downloads/gcc-4.3.4/x86_64-unknown-linux-gnu/libgfortran/config.log
make[1]: *** [configure-target-libgfortran] Error 1
make[1]: Leaving directory `/home/silvio/Downloads/gcc-4.3.4'
make: *** [all] Error 2


Will someone help me? I am working on Fedora 15 64-bit.

Thaks,

Silvio Filipe


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread joseph at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #7 from joseph at codesourcery dot com joseph at codesourcery dot 
com 2011-08-30 15:40:49 UTC ---
On Tue, 30 Aug 2011, ebotcazou at gcc dot gnu.org wrote:

 The fix is to turn the check into a target check, i.e. test the target
 binutils.
 See configure.ac:1884 and below.

And a proper target check should not be testing execution of the generated 
code to work properly with cross compilation.  The following are 
unconditionally safe:

* Testing the target triplet.  In particular, use ACX_ELF_TARGET_IFELSE 
(config/elf.m4) to eliminate non-ELF targets.

* Testing uses of the assembler and linker, and using target objdump (when 
using GNU binutils) to examine the result, as long as the linker uses do 
not require any target libraries to be present.

* Examining target headers (see the code checking for glibc versions in 
$target_header_dir/features.h).

The first two should be able to tell if the assembler and linker have all 
the required features.  init_array and fini_array are standard ELF 
features so I think the default should be to assume they will work on the 
target (if ELF) unless a reason arises to blacklist particular targets.


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #8 from H.J. Lu hjl.tools at gmail dot com 2011-08-30 15:55:51 
UTC ---
The main issue is mixing input .ctors sections with .init_array sections
to generate the single output .init_array section.  Not all linkers support
it even if they support .init_array section.  How should we properly
test this?


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #9 from H.J. Lu hjl.tools at gmail dot com 2011-08-30 15:56:45 
UTC ---
In the meantime, you can use --enable-initfini-array/--disable-initfini-array
to work around this.


[Bug c++/50239] New: compiled program segfault when -O0 is used to compile

2011-08-30 Thread eviom at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50239

 Bug #: 50239
   Summary: compiled program segfault when -O0 is used to compile
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ev...@mail.ru


Original thread:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/591819

When I compile my code, if I compile it -O2, it compiles and runs fine. if I
compile it with -O0, it segfaults while rendering text with FTGL. I've made no
changes to anything in between compiles. Same FTGL code works fine in win32
(vs2010).


[Bug fortran/50238] configure: error: GNU Fortran is not working

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50238

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
16:35:41 UTC ---
Most of the time it indicates that your MPFR or GMP libary is wrongly
installed, which is not a GCC problem.

a) How do you configure GCC?

b) Check for the actual error in
/home/silvio/Downloads/gcc-4.3.4/x86_64-unknown-linux-gnu/libgfortran/config.log
- or attach it as suggested.

 * * *

 I am working on Fedora 15 64-bit.

Is there a special reason that you want to build GCC 4.3.4 instead of using the
GCC/gfortran which is shipped with Fedora 15? (Namely, GCC 4.6.x.)


By the way, for x86_64-unknown-linux-gnu there are unofficial builds available
at http://gcc.gnu.org/wiki/GFortranBinaries - the nightly 4.7 version but also
snapshot builds for 4.3 to 4.7.


[Bug c++/50239] compiled program segfault when -O0 is used to compile

2011-08-30 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50239

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-08-30
 Ever Confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-08-30 
16:38:22 UTC ---
Please follow the normal bug reporting instructions:

  http://gcc.gnu.org/bugs/#report


[Bug bootstrap/50237] [4.7 regression] comparison failure caused by HAVE_INITFINI_ARRAY check

2011-08-30 Thread joseph at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237

--- Comment #10 from joseph at codesourcery dot com joseph at codesourcery dot 
com 2011-08-30 16:39:39 UTC ---
On Tue, 30 Aug 2011, hjl.tools at gmail dot com wrote:

 The main issue is mixing input .ctors sections with .init_array sections
 to generate the single output .init_array section.  Not all linkers support
 it even if they support .init_array section.  How should we properly
 test this?

Is it not possible to link (with -r, maybe) objects and examine the output 
with target objdump to see if .ctors sections are still present?


[Bug fortran/50238] configure: error: GNU Fortran is not working

2011-08-30 Thread silvio.filipe.ubi at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50238

--- Comment #2 from Silvio Filipe silvio.filipe.ubi at gmail dot com 
2011-08-30 16:49:27 UTC ---
Created attachment 25139
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25139
x86_64-unknown-linux-gnu/libgfortran/config.log


[Bug fortran/50238] configure: error: GNU Fortran is not working

2011-08-30 Thread silvio.filipe.ubi at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50238

--- Comment #3 from Silvio Filipe silvio.filipe.ubi at gmail dot com 
2011-08-30 16:56:57 UTC ---
(In reply to comment #1)
 Most of the time it indicates that your MPFR or GMP libary is wrongly
 installed, which is not a GCC problem.


When I installed the GMP and MPFR has not given me any problems.
 
 a) How do you configure GCC?


./configure --prefix=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local
 
 b) Check for the actual error in
 /home/silvio/Downloads/gcc-4.3.4/x86_64-unknown-linux-gnu/libgfortran/config.log
 - or attach it as suggested.
 

I've added the file.

  * * *
 
  I am working on Fedora 15 64-bit.
 
 Is there a special reason that you want to build GCC 4.3.4 instead of using 
 the
 GCC/gfortran which is shipped with Fedora 15? (Namely, GCC 4.6.x.)
 

MATLAB supports only up to this release.

 
 By the way, for x86_64-unknown-linux-gnu there are unofficial builds available
 at http://gcc.gnu.org/wiki/GFortranBinaries - the nightly 4.7 version but also
 snapshot builds for 4.3 to 4.7.


[Bug testsuite/50240] New: [4.7 Regression] ERROR: (DejaGnu) proc ^s does not exist

2011-08-30 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50240

 Bug #: 50240
   Summary: [4.7 Regression] ERROR: (DejaGnu) proc ^s does not
exist
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


On Linux/x86, revision 178322 gave

ERROR: (DejaGnu) proc ^s does not exist.

Revision 178309 is OK.


[Bug fortran/50238] configure: error: GNU Fortran is not working

2011-08-30 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50238

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution||INVALID

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-08-30 
16:58:32 UTC ---
That log file clearly shows that this is a user error:
symbol lookup error:
/home/silvio/Downloads/gcc-4.3.4/host-x86_64-unknown-linux-gnu/gcc/f951:
undefined symbol: mpfr_get_z_exp

That symbol got renamed in mpfr, but mpfr.h has the corresponding #define,
so you are most likely compiling/linking against one mpfr version (some older
one, why?) but running the binaries against a newer mpfr version (assuming the
system mpfr in Fedora 15).

BTW, gcc 4.3 is no longer supported.


[Bug fortran/50238] configure: error: GNU Fortran is not working

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50238

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
17:08:14 UTC ---
(In reply to comment #3)
 ./configure --prefix=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local

I want to add to the comments of Jakub that building GCC in-tree is not
supported. That is:
  ./configure
is wrong. You should create a separate directory, go to this directory and
invoke configure from there. For instance:
  cd ..
  mkdir gcc-build
  cd gcc-build
  ../gcc-4.3.4/configure ...


 MATLAB supports only up to this release.

Interesting to know. Hopefully, the start supporting newer versions soon, given
that the currently supported releases are 4.4, 4.5 and 4.6 (4.7 is currently
developed). Thus, 4.3 is no longer supported and 4.4 will likely become
unsupported in half a year.

(As written, you could also try the existing unofficial builds at
http://gcc.gnu.org/wiki/GFortranBinaries ; for x86-64 Linux there are 4.3
snapshots available.)


[Bug fortran/50227] [4.7 Regression] [OOP] ICE-on-valid with allocatable class variable

2011-08-30 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50227

--- Comment #12 from janus at gcc dot gnu.org 2011-08-30 17:09:22 UTC ---
(In reply to comment #11)
 And indeed it seems to fix the segfault.

... and regtests cleanly.


Unfortunately, there is one more complication: When compiling the two files
from comment #1 one after the other, one gets a linker error:

 gfortran-4.7 -c module.f90
 gfortran-4.7 program.f90
/tmp/ccU0pMIF.o: In function `MAIN__':
program.f90:(.text+0x16): undefined reference to
`__g_nodes_MOD___vtab_g_nodes_T0'
program.f90:(.text+0x87): undefined reference to
`__g_nodes_MOD___vtab_g_nodes_T1'


Note: This seems to happen with trunk and 4.6, while it works with 4.5. I was
hoping we had gotten rid of those for good (cf. e.g. PR44065 and PR45674).


[Bug fortran/50227] [4.7 Regression] [OOP] ICE-on-valid with allocatable class variable

2011-08-30 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50227

--- Comment #13 from Dominique d'Humieres dominiq at lps dot ens.fr 
2011-08-30 17:24:31 UTC ---
 gfortran-4.7 -c module.f90
 gfortran-4.7 program.f90

What about
gfortran-4.7 program.f90 module.o?
AFAIK there is not object in the *.mod files.


[Bug testsuite/50240] [4.7 Regression] ERROR: (DejaGnu) proc ^s does not exist

2011-08-30 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50240

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

   What|Removed |Added

 CC||tocarip.intel at gmail dot
   ||com

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2011-08-30 17:49:14 
UTC ---
It is caused by revision 178311:

http://gcc.gnu.org/ml/gcc-cvs/2011-08/msg01329.html

gcc.target/i386/fma-compile.c has

/* { dg-final { scan-assembler-times vfmadd[^s]..ps 2 } } */
/* { dg-final { scan-assembler-times vfmsub[^s]..ps 2 } } */
/* { dg-final { scan-assembler-times vfnmadd...ps 2 } } */
/* { dg-final { scan-assembler-times vfnmsub...ps 2 } } */
/* { dg-final { scan-assembler-times vfmaddsub...ps 2 } } */
/* { dg-final { scan-assembler-times vfmsubadd...ps 2 } } */
/* { dg-final { scan-assembler-times vfmadd[^s]..pd 2 } } */
/* { dg-final { scan-assembler-times vfmsub[^s]..pd 2 } } */
/* { dg-final { scan-assembler-times vfnmadd...pd 2 } } */
/* { dg-final { scan-assembler-times vfnmsub...pd 2 } } */
/* { dg-final { scan-assembler-times vfmaddsub...pd 2 } } */
/* { dg-final { scan-assembler-times vfmsubadd...pd 2 } } */
/* { dg-final { scan-assembler-times vfmadd[^s]..ss 1 } } */
/* { dg-final { scan-assembler-times vfmsub[^s]..ss 1 } } */
/* { dg-final { scan-assembler-times vfnmadd...ss 1 } } */
/* { dg-final { scan-assembler-times vfnmsub...ss 1 } } */
/* { dg-final { scan-assembler-times vfmadd[^s]..sd 1 } } */
/* { dg-final { scan-assembler-times vfmsub[^s]..sd 1 } } */
/* { dg-final { scan-assembler-times vfnmadd...sd 1 } } */
/* { dg-final { scan-assembler-times vfnmsub...sd 1 } } */

Those [^s] are wrong.


[Bug ada/18762] Illegal program not detected, RM 6.3.1(7), 8.5.4(5), 13.14(3)

2011-08-30 Thread nicolas.boulenguez at free dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18762

nicolas.boulenguez at free dot fr changed:

   What|Removed |Added

 CC||nicolas.boulenguez at free
   ||dot fr

--- Comment #2 from nicolas.boulenguez at free dot fr 2011-08-30 17:54:23 UTC 
---
Gcc 4.6.1 does not detect the problem either.


[Bug testsuite/50240] [4.7 Regression] ERROR: (DejaGnu) proc ^s does not exist

2011-08-30 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50240

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Target||x86
 Status|UNCONFIRMED |RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-08/msg02479.htm
   ||l
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2011-08-30 17:56:07 
UTC ---
Fixed by [1].

[1] http://gcc.gnu.org/ml/gcc-patches/2011-08/msg02479.html


[Bug ada/40185] Segmentation fault on program with typo

2011-08-30 Thread nicolas.boulenguez at free dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40185

nicolas.boulenguez at free dot fr changed:

   What|Removed |Added

 CC||nicolas.boulenguez at free
   ||dot fr

--- Comment #2 from nicolas.boulenguez at free dot fr 2011-08-30 18:09:57 UTC 
---
GCC 4.6.1 does not crash and successfully reports the type size mismatch.


[Bug libgcj/50241] Building from the current branch - 178337 fails.

2011-08-30 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50241

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|classpath   |libgcj
Version|unspecified |4.7.0
Product|classpath   |gcc
   Severity|blocker |normal

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-08-30 
18:43:36 UTC ---
 ./configure 
Building in the source directory is not well supported or tested.


[Bug fortran/45170] [F2003] allocatable character lengths

2011-08-30 Thread damian at rouson dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #30 from Damian Rouson damian at rouson dot net 2011-08-30 
18:46:42 UTC ---
Just out curiosity, what's the reason for the real::rnd line in the
helloworld testcase?  I don't see rnd used anywhere.

Damian

On Tue, Aug 30, 2011 at 8:34 AM, kargl at gcc dot gnu.org 
gcc-bugzi...@gcc.gnu.org wrote:

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

 --- Comment #29 from kargl at gcc dot gnu.org 2011-08-30 15:34:06 UTC ---
 Author: kargl
 Date: Tue Aug 30 15:34:01 2011
 New Revision: 178329

 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178329
 Log:
 2011-08-30  Steven G. Kargl  ka...@gcc.gnu.org

PR fortran/45170
* trans-stmt.c (gfc_trans_allocate): Evaluate the substring.

 2011-08-30  Steven G. Kargl  ka...@gcc.gnu.org

PR fortran/45170
* gfortran.dg/allocate_with_source_2.f90: New test

 Added:
trunk/gcc/testsuite/gfortran.dg/allocate_with_source_2.f90
 Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog

 --
 Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
 --- You are receiving this mail because: ---
 You are on the CC list for the bug.



[Bug c++/50114] ICE with declaration inside for statement

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50114

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.7.0


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

Marc Glisse marc.glisse at normalesup dot org changed:

   What|Removed |Added

  Attachment #25134|0   |1
is obsolete||

--- Comment #29 from Marc Glisse marc.glisse at normalesup dot org 2011-08-30 
18:57:16 UTC ---
Created attachment 25140
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25140
remember linkage of a function type (2)

New version that works with typedefs (I was forgetting extern C in the
canonical type...). The patch also includes a workaround for __stoa. There
seems to still be an issue with argument deduction.

For some reason, -fpermissive already allows all conversions :-)


[Bug fortran/45170] [F2003] allocatable character lengths

2011-08-30 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #31 from Steve Kargl sgk at troutmask dot apl.washington.edu 
2011-08-30 19:31:25 UTC ---
On Tue, Aug 30, 2011 at 06:46:42PM +, damian at rouson dot net wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
 
 --- Comment #30 from Damian Rouson damian at rouson dot net 2011-08-30 
 18:46:42 UTC ---
 Just out curiosity, what's the reason for the real::rnd line in the
 helloworld testcase?  I don't see rnd used anywhere.
 
 Damian
 

When I changed the testcase from the PR into something
suitable for the testsuite, I missed removing the
declaration.


[Bug rtl-optimization/50191] Strange debug insn produced for TOC compiling 416.gamess with profile-generate

2011-08-30 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50191

--- Comment #8 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-08-30 
19:33:42 UTC ---
I built a cross-compiler on gcc10.fsffrance.org that exhibits the problem:

$ cd /home/wschmidt/src/416.gamess
$ /home/wschmidt/gcc/build/gcc-mainline-base/gcc/f951 chgpen.fppized.f -g -O3
-fprofile-generate -ffast-math -funroll-loops -mcpu=power7 -mtune=power7 -m64
-o chgpen.fppized.s -fdump-rtl-vartrack -quiet
$ sed -n '/^(note/,/^$/p' chgpen.fppized.f.214r.vartrack  | grep -i unspec
(const:DI (unspec:DI [
] UNSPEC_TOCREL
(const:DI (unspec:DI [
] UNSPEC_TOCREL))) [23 S8 A8]) [0 MEM[base:
D.8938_616, offset: 0B]+0 S4 A32]))
(const:DI (unspec:DI [
] UNSPEC_TOCREL
(const:DI (unspec:DI [
] UNSPEC_TOCREL
(const:DI (unspec:DI [
] UNSPEC_TOCREL
(high:DI (const:DI (unspec:DI [
] UNSPEC_TOCREL)
(const:DI (unspec:DI [
] UNSPEC_TOCREL)))
(const:DI (unspec:DI [
] UNSPEC_TOCREL
(high:DI (const:DI (unspec:DI [
] UNSPEC_TOCREL)
(const:DI (unspec:DI [
] UNSPEC_TOCREL
(high:DI (const:DI (unspec:DI [
] UNSPEC_TOCREL)
(const:DI (unspec:DI [
] UNSPEC_TOCREL

With this version of the compiler, the funky debug_insn looks like this after
179r.combine:

(debug_insn 9141 9147 9146 5 (var_location:DI D#142 (mem/u/c:DI (lo_sum:DI
(reg/f:DI 2232)
(const:DI (unspec:DI [
(symbol_ref/u:DI (*.LC8) [flags 0x2])
] UNSPEC_TOCREL))) [23 S8 A8])) -1
 (nil))

In case you need to rebuild, the compiler was built with the following
configuration based on r178337:

$ /home/wschmidt/gcc/gcc-mainline-base/configure --target=powerpc64-linux
--host=x86_64-linux --build=x86_64-linux --enable-threads=posix --enable-shared
--enable-__cxa_atexit --enable-languages=c,c++,fortran,objc,obj-c++
--enable-checking=yes --with-gmp=/opt/cfarm/gmp --with-mpfr=/opt/cfarm/mpfr
--with-mpc=/opt/cfarm/mpc --with-libelf=/opt/cfarm/libelf-0.8.12
--prefix=/home/wschmidt/gcc/install/gcc-mainline-base --with-cpu=default64
--with-as=/home/wschmidt/binutils-cross/build/gas/as-new
--with-ld=/home/wschmidt/binutils-cross/build/ld/ld-new --enable-cross
--with-sysroot=/home/wschmidt/ppc-sysroot

(The make fails trying to build the target libraries, but that's of no
consequence for reproducing this problem.)

Please let me know if you have any trouble accessing the files; permissions
should be set properly but I might have missed something.


[Bug c++/50089] [C++0x] ICE when calling a qualified base class member function within a lambda expr without this-

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50089

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.6.2


[Bug c++/50242] New: __attribute__((naked)) is ignored on IA32 (x86)

2011-08-30 Thread congruwer at yahoo dot co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50242

 Bug #: 50242
   Summary: __attribute__((naked)) is ignored on IA32 (x86)
Classification: Unclassified
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: congru...@yahoo.co.uk


Given the follow c++ file:
---(start)---
__attribute__((naked)) void test(int a)
{
asm(//Do stuff);
asm(ret $4);
};

struct myclass
{
__attribute__((naked)) ~myclass()
{
asm(//Do stuff);
asm(ret);
}

virtual void virt() { };
};

void testmyclass()
{
myclass x;
}
---(end)---
The compiler will give the following complaints:
testnaked.cpp:1:39: warning: 'naked' attribute directive ignored
testnaked.cpp:9:34: warning: 'naked' attribute directive ignored
Additionally, prolog and epilog code is generated. The relevant parts of the
assembler output with added commentary follow:
---(start)---
__Z4testi: //test(int)
/APP
 # 3 testnaked.cpp 1
//Do stuff
 # 0  2
 # 4 testnaked.cpp 1
ret $4
 # 0  2
/NO_APP
ret // This ret shouldn't be here.
...(snip)...
__ZN7myclassD1Ev: //myclass::~myclass()
movl4(%esp), %eax // Destructor prolog that restores the vtable.
movl$__ZTV7myclass+8, (%eax) // These 2 lines shouldn't be present.
/APP
 # 11 testnaked.cpp 1
//Do stuff
 # 0  2
 # 12 testnaked.cpp 1
ret
 # 0  2
/NO_APP
ret // This ret shouldn't be here.
---(end)---
My apologies for the ATT syntax, but that's what -S yields.


[Bug target/50182] Performance degradation from gcc 4.1 (x86_64)

2011-08-30 Thread matt at use dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50182

Matt Hargett matt at use dot net changed:

   What|Removed |Added

 CC||matt at use dot net

--- Comment #12 from Matt Hargett matt at use dot net 2011-08-30 20:30:15 UTC 
---
Can you determine which release introduced the regression?


[Bug c++/2316] g++ fails to overload on language linkage

2011-08-30 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316

--- Comment #30 from Marc Glisse marc.glisse at normalesup dot org 2011-08-30 
20:32:57 UTC ---
(In reply to comment #29)
 New version that works with typedefs (I was forgetting extern C in the
 canonical type...). The patch also includes a workaround for __stoa. There
 seems to still be an issue with argument deduction.

Also need to fix strip_typedefs (I am not uploading a new patch right now):

--- gcc/cp/tree.c(revision 178336)
+++ gcc/cp/tree.c(working copy)
@@ -1151,8 +1151,8 @@
   }
 else
   {
-result = build_function_type (type,
-  arg_types);
+result = build_function_type2 (type, arg_types,
+TYPE_MINVAL (t) != 0);
 result = apply_memfn_quals (result, type_memfn_quals (t));
   }


[Bug target/50242] __attribute__((naked)) is ignored on IA32 (x86)

2011-08-30 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50242

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|c++ |target

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-08-30 
20:36:42 UTC ---
naked is a target specific attribute which has not been added for x86 yet.

Is there a reason why you want the naked attribute?


[Bug c++/50234] internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527

2011-08-30 Thread bkoz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50234

--- Comment #4 from Benjamin Kosnik bkoz at gcc dot gnu.org 2011-08-30 
20:48:22 UTC ---

HA! You rule, thanks.


[Bug c++/50243] New: vtable for pure abstract class (interface) shouldn't be emitted

2011-08-30 Thread congruwer at yahoo dot co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50243

 Bug #: 50243
   Summary: vtable for pure abstract class (interface) shouldn't
be emitted
Classification: Unclassified
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: congru...@yahoo.co.uk


Note: this is probably easier to do if ‘Bug 34949 - Dead code in empty
destructors.’ is done.

Consider the following class:

class iface
{
protected:
~iface() { }
public:
virtual void a() = 0;
virtual void b() = 0;
virtual void c() = 0;
};

This class cannot be instantiated, so a, b and c cannot be called from outside.
The only possible call site for them would be the destructor ~iface() but from
the fact that a, b and c are pure and the fact that it compiles, we know that
this doesn't happen. So the vtable for this class shouldn't be emitted.

But it is:

__ZTV5iface:
.long0
.long0
.long___cxa_pure_virtual
.long___cxa_pure_virtual
.long___cxa_pure_virtual

To make matters worse, it's needlessly referenced in destructors of derived
classes:

__ZN4impl1cEv:
pushl%ebx
subl$8, %esp
movl16(%esp), %ebx
testl%ebx, %ebx
jeL3
movl$__ZTV4impl+8, (%ebx) --- Strictly speaking unnecessary
call__Z7dostuffv
movl$__ZTV5iface+8, (%ebx)--- OOPS
movl%ebx, 16(%esp)  What follows is the inlined
addl$8, %espdestructor of iface, the
popl%ebxiface vtable isn't needed.
jmp__ZdlPv

For this example I deliberately used a small interface, but I have found that
in larger software projects the unnecessary vtables can add up.

For reference, the rest of code used to demonstrate the problem follows:

void dostuff();

class impl : public iface
{
private:
~impl() { dostuff(); }
public:
void a() { dostuff(); }
void b() { dostuff(); }
void c() { delete this; }
};

void test()
{
iface * y = new impl();
y-a();
y-b();
y-c();
}


[Bug c++/50243] vtable for pure abstract class (interface) shouldn't be emitted

2011-08-30 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50243

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-08-30 
20:54:34 UTC ---
The vtable is required by the ABI IIRC.


[Bug tree-optimization/50183] ICE in verify_ssa for 416.gamess when optimizing using profile data

2011-08-30 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50183

--- Comment #5 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-08-30 
21:07:03 UTC ---
Here's the relevant gimple following 103t.copyprop5:

==

bb 39:
  err2 = 0.0;
  err2_lsm.820_567 = err2;

bb 40:
  # n_33 = PHI 1(39), n_223(44)
  # err2_lsm.820_313 = PHI err2_lsm.820_567(39), err2_lsm.820_573(44)
  D.6172_213 = (integer(kind=8)) n_33;
  D.6219_214 = D.6172_213 * 12;

bb 41:
  # m_27 = PHI 1(40), m_221(42)
  # err2_lsm.820_353 = PHI err2_lsm.820_313(40), err2.395_219(42)
  D.6218_212 = (integer(kind=8)) m_27;
  D.6220_215 = D.6218_212 + D.6219_214;
  D.6221_216 = D.6220_215 + -13;
  D.6242_217 = s[D.6221_216];
  err2.395_219 = D.6242_217 + err2_lsm.820_353;
  m_221 = m_27 + 1;
  if (m_27 == 12)
goto bb 43;
  else
goto bb 42;

bb 42:
  goto bb 41;

bb 43:
  # err2.395_561 = PHI err2.395_219(41)
  # err2_lsm.820_573 = PHI err2.395_219(41)
  n_223 = n_33 + 1;
  if (n_33 == 12)
goto bb 45;
  else
goto bb 44;

bb 44:
  goto bb 40;

bb 45:
  # err2.395_571 = PHI err2.395_561(43)
  # err2_lsm.820_574 = PHI err2_lsm.820_573(43)
  err2 = err2_lsm.820_574;
  D.6247_225 = ABS_EXPR err2.395_571;
  if (D.6247_225 
1.3643219731549774157916554706559963960899e-10)
goto bb 46;
  else
goto bb 54;

==

At the time of the verify_ssa failure, this has been changed to:

==

bb 39:

bb 74:
  # .MEM_352 = VDEF .MEM_351
  err2 = 0.0;
  # VUSE .MEM_352
  err2_lsm.820_567 = err2;
  # .MEM_170 = VDEF .MEM_352
  Commutative_Associative_Reduction.822[0] = err2_lsm.820_567;

bb 40:
  # n_33 = PHI 1(74), n_223(44)
  # .MEM_291 = PHI .MEM_170(74), .MEM_575(44)
  D.6172_213 = (integer(kind=8)) n_33;
  D.6219_214 = D.6172_213 * 12;

bb 41:
  # m_27 = PHI 1(40), m_221(42)
  # .MEM_292 = PHI .MEM_291(40), .MEM_575(42)
  # VUSE .MEM_292
  err2_lsm.820_353 = Commutative_Associative_Reduction.822[0];
  D.6218_212 = (integer(kind=8)) m_27;
  D.6220_215 = D.6218_212 + D.6219_214;
  D.6221_216 = D.6220_215 + -13;
  # VUSE .MEM_292
  D.6242_217 = s[D.6221_216];
  err2.395_219 = D.6242_217 + err2_lsm.820_353;
  # .MEM_575 = VDEF .MEM_292
  Commutative_Associative_Reduction.822[0] = err2.395_219;
  m_221 = m_27 + 1;
  if (m_27 == 12)
goto bb 43;
  else
goto bb 42;

bb 42:
  goto bb 41;

bb 43:

bb 73:
  n_223 = n_33 + 1;
  if (n_33 == 12)
goto bb 45;
  else
goto bb 44;

bb 44:
  goto bb 40;

bb 45:
  # err2_lsm.820_574 = PHI err2.395_561(73)
  # VUSE .MEM_575
  D.6815_562 = Commutative_Associative_Reduction.822[0];
  err2.395_571 = D.6815_562;

bb 72:
  # .MEM_569 = VDEF .MEM_575
  err2 = err2_lsm.820_574;
  D.6247_225 = ABS_EXPR err2.395_571;
  if (D.6247_225 
1.3643219731549774157916554706559963960899e-10)
goto bb 46;
  else
goto bb 54;

==

The PHI in block 45 is left without a definition.


[Bug c++/50084] [C++0x] ICE: decltype + remove_reference + new

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50084

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
21:27:39 UTC ---
Author: jason
Date: Tue Aug 30 21:27:36 2011
New Revision: 178340

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178340
Log:
PR c++/50084
* cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p
to type_definition_p.
* parser.c (cp_parser_set_decl_spec_type): Likewise.
* decl.c (grokdeclarator): Check it.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/decltype33.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/50089] [C++0x] ICE when calling a qualified base class member function within a lambda expr without this-

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50089

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
21:27:31 UTC ---
Author: jason
Date: Tue Aug 30 21:27:27 2011
New Revision: 178339

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178339
Log:
PR c++/50089
* semantics.c (finish_id_expression): Use
current_nonlambda_class_type for qualified-ids.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-qualified.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/50114] ICE with declaration inside for statement

2011-08-30 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50114

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2011-08-30 
21:27:23 UTC ---
Author: jason
Date: Tue Aug 30 21:27:18 2011
New Revision: 178338

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178338
Log:
PR c++/50114
* decl.c (poplevel): Disable for scope compatibility hack
in C++11 mode.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-for.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/forscope2.C


[Bug fortran/45044] Different named COMMON block size: No warning

2011-08-30 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45044

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2011-08-30 
21:33:18 UTC ---
I was thinking of using:

  gfc_gsymbol *gsym;
  gsym = gfc_get_gsymbol (com-name);
  gcc_assert (gsym-type == GSYM_COMMON);
  gfc_warning (Named COMMON block '%s' at %L shall be of the 
   same size as at %L (%lu vs %lu bytes), com-name,
   com-where, gsym-where,

But that won't work reliably:

a) The byte size changes, while the position of (2) remains the same, e.g:
Warnung: Named COMMON block 'xx' at (1) shall be of the same size as at (2) (24
vs 4 bytes)
Warnung: Named COMMON block 'xx' at (1) shall be of the same size as at (2) (8
vs 24 bytes)

b) One get's even strange results if one has 4 bytes, 30 bytes, 4 bytes as then
(1) and (2) have the same bytes size but the error message claims that one is 4
and the other is 30 bytes wide.


I defer this and now only print the byte-size, cf.
  http://gcc.gnu.org/ml/fortran/2011-08/msg00254.html


[Bug libfortran/50192] Wrong character comparision with wide strings

2011-08-30 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50192

--- Comment #5 from Thomas Koenig tkoenig at gcc dot gnu.org 2011-08-30 
21:36:53 UTC ---
Author: tkoenig
Date: Tue Aug 30 21:36:48 2011
New Revision: 178341

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178341
Log:
2011-08-30  Thomas Koenig  tkoe...@gcc.gnu.org

Backport from trunk
PR libfortran/50192
* intrinsics/string_intrinsics.c (memcmp_char4):  New function.
* intrinsics/string_intrinsics_inc.c:  New macro MEMCMP, either
set to memcmp or memcmp_char4.
(compare_string):  Use MEMCMP, with correct size for it.
* libgfortran.h:  Add prototype for memcmp_char4.

2011-08-30  Thomas Koenig  tkoe...@gcc.gnu.org

Backport from trunk
PR libfortran/50192
* gfortran.dg/widechar_compare_1.f90:  New test.


Added:
branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/widechar_compare_1.f90
Modified:
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog
branches/gcc-4_5-branch/libgfortran/ChangeLog
branches/gcc-4_5-branch/libgfortran/intrinsics/string_intrinsics.c
branches/gcc-4_5-branch/libgfortran/intrinsics/string_intrinsics_inc.c
branches/gcc-4_5-branch/libgfortran/libgfortran.h


  1   2   >