[Bug c++/52816] New: Access to private members inside decltype in the signature of a member template causes access control error

2012-04-01 Thread jewillco at osl dot iu.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52816

 Bug #: 52816
   Summary: Access to private members inside decltype in the
signature of a member template causes access control
error
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jewil...@osl.iu.edu


When using decltype inside the return type of a member function template, I
receive access control errors for references to private member variables.  Here
is a simple example of a failing program:

class c {
  int f;
  public:
  template typename A
  decltype(f) m(A) const;
};

decltype(c{}.m(0)) i;

The use of old- vs. new-style function declarations does not change the
behavior; neither does whether the class itself is a template.  The error I get
from GCC 4.7.0 is:

test.cpp:2:7: error: ‘int c::f’ is private
test.cpp:8:20: error: within this context

I think that is likely to be incorrect since the reference to f is from inside
the body of the class definition itself.


[Bug rtl-optimization/44141] Redundant loads and stores generated for AMD bdver1 target

2012-04-01 Thread venkataramanan.kumar at amd dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44141

--- Comment #15 from Venkataramanan venkataramanan.kumar at amd dot com 
2012-04-01 07:55:24 UTC ---
Hi Uros,

I had a look at reload pass.

I have an RTL sequence that look like this.

(insn 32 31 33 2 (set (subreg:V4SF (reg:V2DF 284) 0) == psuedo reguster 
(unspec:V4SF [
(mem/c:V4SF (plus:DI (reg/f:DI 20 frame)
(const_int -568 [0xfdc8])) [3
MEM[(real(kind=8)[26] *)dsroo + 120B]+0 S16 A64])
] UNSPEC_MOVU)) test.f90:16 1106 {*sse_movups}
 (nil))

(insn 33 32 371 2 (set (reg:V2DF 285) = pseudo register 
(div:V2DF (reg:V2DF 284) == pseudo register
(mem/c:V2DF (plus:DI (reg/f:DI 20 frame)
(const_int -576 [0xfdc0])) [3
MEM[(real(kind=8)[26] *)dsroo + 112B]+0 S16 A128]))) test.f90:16 1146
{sse2_divv2df3}
 (nil))

Now reload examines the first RTL. 

(insn 32 31 33 2 (set (subreg:V4SF (reg:V2DF 284) 0) == psuedo reguster 
(unspec:V4SF [
(mem/c:V4SF (plus:DI (reg/f:DI 20 frame)
(const_int -568 [0xfdc8])) [3
MEM[(real(kind=8)[26] *)dsroo + 120B]+0 S16 A64])
] UNSPEC_MOVU)) test.f90:16 1106 {*sse_movups}
 (nil))

This did not get an Hard register and so at reload it chooses xmm0 and
generates an output reload as follows.


(insn 393 0 0 (set (reg:V2DF 284)
 
(reg:V2DF 21 xmm0)) -1

There is possiblity of reload inheritenace and we can avoid input reload for
the next RTL insn 33

(insn 33 32 371 2 (set (reg:V2DF 285)
(div:V2DF (reg:V2DF 284)
(mem/c:V2DF (plus:DI (reg/f:DI 20 frame)
(const_int -576 [0xfdc0])) [3
MEM[(real(kind=8)[26] *)dsroo + 112B]+0 S16 A128]))) test.f90:16 1146
{sse2_divv2df3}
 (nil))

But It is not happening and input reload gets generated again before this RTL
as follows:

(insn 395 0 0 (set (reg:V2DF 21 xmm0)
   
 (reg:V2DF 284)

Also another outpout reload gets emitted after the insn 33 for its output
reload as  

(insn 394 0 0 (set (reg:V2DF 285)
 
(reg:V2DF 21 xmm0)) -1. But I am not sure If this computation prevented input
reload inheritence in the insn 33 .

I suspect emit_reload_insns is not preserving output reloads in insn32 for
further inheritence insn33. 

Please povide your opinion.


[Bug c++/52817] New: g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread nospamname at web dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

 Bug #: 52817
   Summary: g++ do not call a method with same name on some
platforms(see small example source attached)
Classification: Unclassified
   Product: gcc
   Version: 4.5.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: nospamn...@web.de


See below testprogram for C++.this give on X86 cygwin correct output and i
guess it work on some other platforms too
( this codestyle is used in dunelegacy game). All Compiler i test run on same
OS (windows - cygwin).Only Compiler Options that use. -Wall and -Wextra. But
they give no report on all compilers.

BTW: this is no April joke, i ask about Problem in GCC ML, and i get the answer
to write a Bugreport.




Output from X86 cygwin build (this is ok)

constructor wsafile
readdata 1 called
readdata 2 called
12345678 ( should be 0x12345678) 1 (should be 1)


But with all 68k compilers for amigaos (i test from GCC 3.4.0 to 4.5.x Version
and some between) this execute always wrong.readdata 1 Funtion
is never called and the transfer of the adrress fail


Output from all m68k amigaos g++ cygwin hostet (this is wrong)

constructor wsafile
readdata 2 called 
0 ( should be 0x12345678) 1 (should be 1) 


What can be the problem.I dont understand wy the backend can cause such a
problem. How is that possible

here is the test program

#include stdarg.h
#include stdio.h
class Wsafile
{
public:
Wsafile(long* RWop);
Wsafile(long* RWop0, long* RWop1);
Wsafile(int num,...);
virtual ~Wsafile();
private:
void readdata(int NumFiles, ...);
void readdata(int NumFiles, va_list args);
};

/// Constructor
/**
The constructor reads from the RWop all data and saves them internal. The
SDL_RWops can be readonly but must support
seeking. Immediately after the Wsafile-Object is constructed RWop can be
closed. All data is saved in the class.
\paramRWopSDL_RWops to the wsa-File. (can be readonly)
*/
Wsafile::Wsafile(long *RWop)
{
printf(constructor wsafile\n);
readdata(1,RWop);
}

/// Destructor

Wsafile::~Wsafile()
{
printf(free reach\n);
}


void Wsafile::readdata(int NumFiles, ...) {
printf(readdata 1 called \n);
va_list args;
va_start(args,NumFiles);
readdata(NumFiles,args);
va_end(args);

}

void Wsafile::readdata(int NumFiles, va_list args) {
 long * RWop;
 printf(readdata 2 called \n);
 RWop = va_arg(args,long *);
 printf (%x ( should be 0x12345678) %d (should be 1) \n,(unsigned
int)RWop,NumFiles);  // should print 0x12345678
}

int
main()
{

  long * addr = ( long *)0x12345678;
  new Wsafile(addr);
}


[Bug inline-asm/52813] %rsp in clobber list is silently ignored

2012-04-01 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2012-04-01 09:21:09 
UTC ---
The compiler doesn't analyse asm string.


temacs segfaults w/MALLOC_PERTURB_!=0 when compiling with gcc-4.8.0

2012-04-01 Thread Jim Meyering
I bootstrap emacs from bzr every two or three days, using whatever
gcc happens to be in my PATH.

The last successful build/install was on March 28th.
However, as far as I can see, the new problem is coming
from the tools I'm using, and not from emacs, since attempting
to build that previously-succeeding commit now evokes a segfault.

It's easy to paper over the problem.
My (failing) build procedure does this to cancel the effect
of my always-set MALLOC_CHECK_ envvar:

make bootstrap RUN_TEMACS='MALLOC_CHECK_=0 ./temacs'

also making it turn off MALLOC_PERTURB_ works around the immediate problem.
With this, the build completes normally:

make bootstrap RUN_TEMACS='MALLOC_PERTURB_=0 MALLOC_CHECK_=0 ./temacs'

But that probably just masks the real problem.

This is happening on an x86_64 F17 system, when I use built-from-svn
gcc-4.8.0 20120327 or newer (confirmed segfault also with today's
4.8.0 20120401).

However, using the stock gcc, (aka gcc-4.7.0-1.fc17.x86_64),
there is no problem.

Using valgrind the problem does not arise.
Same story when using gdb directly, so below I let
it generate a core file and ran gdb on that.
It suggests that alloc.c's mark_object is dereferencing a freed
pointer, due to the pattern of 0x22 bytes scribbled into the pointer:

  #0  mark_object (arg=optimized out) at 
/h/j/w/co/emacs/trunk/src/alloc.c:5616
  5616if (ptr-gcmarkbit)

  (gdb) p *ptr
  Cannot access memory at address 0x2220

I.e., to reproduce this failure, you would run this:

./configure CC=/path-to-gcc-4.8.0/bin \
   env MALLOC_PERTURB_=88 \
make bootstrap RUN_TEMACS='MALLOC_CHECK_=0 ./temacs'

If no one beats me to it, later in the week I'll bisect gcc until
I find the commit that changes whether ./temacs segfaults.

Here's the tail of the build log and the temacs backtrace:
---
cd ../lisp; make -w --jobserver-fds=3,4 - --jobserver-fds=3,4 - 
--jobserver-fds=3,4 - --jobserver-fds=3,4 -j update-subdirs
make[3]: Entering directory `/t/jt-dzv4F3/emacs/lisp'
cd /h/j/w/co/emacs/trunk/lisp; subdirs=`(find . -type d -print)`; for file in 
$subdirs; do case $file in */.* | */.*/* | */=* | */cedet* ) ;; *) wins=$wins 
$file ;; esac; done; \
for file in $wins; do \
   /h/j/w/co/emacs/trunk/update-subdirs $file; \
done;
make[3]: Leaving directory `/t/jt-dzv4F3/emacs/lisp'
if test no = yes; then \
  ln -f temacs bootstrap-emacs; \
else \
  MALLOC_CHECK_=0 ./temacs --batch --load loadup bootstrap || exit 1; \
  mv -f emacs bootstrap-emacs; \
fi
Loading loadup.el (source)...
Using load-path (/h/j/w/co/emacs/trunk/lisp 
/h/j/w/co/emacs/trunk/lisp/emacs-lisp /h/j/w/co/emacs/trunk/lisp/language 
/h/j/w/co/emacs/trunk/lisp/international /h/j/w/co/emacs/trunk/lisp/textmodes)
Loading emacs-lisp/byte-run (source)...
Loading emacs-lisp/backquote (source)...
Loading subr (source)...
Loading version.el (source)...
Loading widget (source)...
Loading custom (source)...
Loading emacs-lisp/map-ynp (source)...
Loading cus-start (source)...
Loading international/mule (source)...
Loading international/mule-conf (source)...
Loading env (source)...
Loading format (source)...
Loading bindings (source)...
Loading window (source)...
Loading /h/j/w/co/emacs/trunk/lisp/files.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/cus-face.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/faces.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/button.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/startup.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/ldefs-boot.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/minibuffer.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/abbrev.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/simple.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/help.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/jka-cmpr-hook.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/epa-hook.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/international/mule-cmds.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/case-table.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/international/charprop.el (source)...
Loading /h/j/w/co/emacs/trunk/lisp/international/characters.el (source)...
/bin/sh: line 5: 22643 Segmentation fault  (core dumped) MALLOC_CHECK_=0 
./temacs --batch --load loadup bootstrap
make[2]: *** [bootstrap-emacs] Error 1
make[2]: Leaving directory `/t/jt-dzv4F3/emacs/src'
make[1]: *** [src] Error 2
make[1]: Leaving directory `/t/jt-dzv4F3/emacs'
make: *** [bootstrap] Error 2
[2]  + exit 2 ( prefix=/p/p/$pkg-$date ; set -e; local cc; cc=gcc ; 
cc=/usr/bin/gcc ;   ;
$ rlo ioui11
$ rlo iou11
$ pwd
/t/jt-dzv4F3/emacs
$ cvu
$
[Exit 1]
$ cd src
$ ulimit -c unlimited
$ MALLOC_CHECK_=0 ./temacs --batch --load loadup bootstrap
Loading loadup.el (source)...
Using load-path (/h/j/w/co/emacs/trunk/lisp 
/h/j/w/co/emacs/trunk/lisp/emacs-lisp /h/j/w/co/emacs/trunk/lisp/language 
/h/j/w/co/emacs/trunk/lisp/international /h/j/w/co/emacs/trunk/lisp

[Bug c++/52818] New: printf format %lf is erroneously rejected by C++11

2012-04-01 Thread joedoefawnbuck at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52818

 Bug #: 52818
   Summary: printf format %lf is erroneously rejected by C++11
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: trivial
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: joedoefawnb...@googlemail.com


C99, and thus C++11, allow %lf as a synonym for %f as a printf format
specifier. However, with `-pedantic -Wformat -std=c++11`, GCC 4.7. emits a
warning:

#include cstdio
int main() { return std::printf(%lf, 0.0); }

warning: ISO C++ does not support the ‘%lf’ gnu_printf format [-Wformat]

The same holds for -std=c99 and -std=c11.


[Bug c++/49152] Unhelpful diagnostic for iterator dereference

2012-04-01 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152

--- Comment #26 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-04-01 
11:24:14 UTC ---
(In reply to comment #24)
 Personally, I don't believe Gaby is open to other solutions outside the
 full-fledged caret diagnostics context, thus for the time being at least I'm
 personally going to stand to his judgment (as diagnostics maintainer).

The caret is not a solution to this problem, because what Gabriel wants is to
not reconstruct expressions ONLY when the caret is shown, but he has said in
the past that the caret should default to OFF to not change the current output
for IDEs and other software parsing the output of gcc like emacs, so we are
back to printing the monsters mentioned above by default.

This is another reason why I am not motivated to keep working on the caret.
What is the point if it is going to default to OFF anyway? That and that moving
line-map out of libcpp to create a source-location library has been rejected in
the past.

And there is no compromise solution. The only argument in favor of
pretty-printing expressions is to help identify the culprit in a complex
expression, so printing only expressions that have non-expression operands will
surely be rejected by Gabriel.

Even if the caret was the solution, nobody has worked on it in the last 25
years, and now that we have good column information, I don't expect that there
will be anyone working on it in the next 25. Specially now that there is a
better alternative, because if you want nice diagnostics, why don't just use
Clang?


[Bug c++/52818] printf format %lf is erroneously rejected by C++11

2012-04-01 Thread joedoefawnbuck at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52818

--- Comment #1 from Kerrek SB joedoefawnbuck at googlemail dot com 2012-04-01 
12:09:34 UTC ---
Correction: The warnings do NOT appear (correctly so) for C99 and C11.


[Bug c++/52819] New: ICE: tree check: expected tree that contains 'decl minimal' structure, have 'nop_expr' in decl_linkage, at cp/tree.c:3136

2012-04-01 Thread gessos.paul at yahoo dot gr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52819

 Bug #: 52819
   Summary: ICE: tree check: expected tree that contains 'decl
minimal' structure, have 'nop_expr' in decl_linkage,
at cp/tree.c:3136
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: gessos.p...@yahoo.gr


--- g++ -v ---
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=../libexec/gcc/x86_64-w64-mingw32
/4.7.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: .../build/gcc/src/configure --target=x86_64-w64-mingw32 --
prefix=/c/bb/vista64-mingw32/mingw-x86-x86_64/build/build/root
--with-sysroot=/c
/bb/vista64-mingw32/mingw-x86-x86_64/build/build/root
--enable-languages=all,obj
-c++ --enable-fully-dynamic-string --disable-multilib
Thread model: win32
gcc version 4.7.0 20111220 (experimental) (GCC)
--

--- g++ -std=c++11 code.cpp ---
typedef void (*cfi)(void*);

void function(int *a) {}

templatecfi Func
void get() { Func(0); }

int main()
{
get(cfi) function();
return 0;
}



[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-01 
12:37:00 UTC ---
(In reply to comment #0)
 void Wsafile::readdata(int NumFiles, va_list args) {
  long * RWop;
  printf(readdata 2 called \n);
  RWop = va_arg(args,long *);
  printf (%x ( should be 0x12345678) %d (should be 1) \n,(unsigned
 int)RWop,NumFiles);  // should print 0x12345678

This line is probably the problem, unsigned int is too small to hold a pointer
value, so the value is not preserved.  

Stop using unsafe casts between incompatible types.


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-01 
12:43:56 UTC ---
(In reply to comment #1)
 (In reply to comment #0)
  void Wsafile::readdata(int NumFiles, va_list args) {
   long * RWop;
   printf(readdata 2 called \n);
   RWop = va_arg(args,long *);
   printf (%x ( should be 0x12345678) %d (should be 1) \n,(unsigned
  int)RWop,NumFiles);  // should print 0x12345678
 
 This line is probably the problem, unsigned int is too small to hold a pointer
 value, so the value is not preserved.  
 
 Stop using unsafe casts between incompatible types.

Or it could just be the difference between pointer and integer modes for m68k,
does it help if you change it to this?

printf (%p ( should be 0x12345678) %d (should be 1) \n, RWop,NumFiles);


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2012-04-01 
12:46:58 UTC ---
(In reply to comment #1)
 Stop using unsafe casts between incompatible types.

That is the least of the worries here.

The real issue is how is va_list implemented on some target.  There is no one
right way of implementing va_list.  It could be implemented as an array or a
struct.

Can you provide the preprocessed source?  It might be a bug in the headers you
are using or it could be just the way va_list is implemented (as a void*).


[Bug c++/49152] Unhelpful diagnostic for iterator dereference

2012-04-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152

--- Comment #27 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-01 
12:55:34 UTC ---
(In reply to comment #26)
 because if you want nice diagnostics, why don't just use
 Clang?

Because G++ gives much better diagnostics for template argument deduction
failures, so just use clang isn't a solution even if all you care about is
better diagnostics.


[Bug middle-end/52820] New: [4.8 Regression] ICE in create_preheader, at cfgloopmanip.c:1363

2012-04-01 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52820

 Bug #: 52820
   Summary: [4.8 Regression] ICE in create_preheader, at
cfgloopmanip.c:1363
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mar...@trippelsdorf.de


% cat test.i
int **fn1 () __attribute__ ((__const__));
main () {
  int i;
  i = 0;
  for (;; i++)
if (*fn1 ()[i]  !'a' = 0  i = 'z' || *fn1 ()[0]  'a' = 'z')
  return;
}

 % gcc -c -O2 -fprofile-use test.i
test.i: In function ‘main’:
test.i:8:1: note: file /var/tmp/test.gcda not found, execution counts estimated
test.i:2:1: internal compiler error: in create_preheader, at
cfgloopmanip.c:1363


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

Andreas Schwab sch...@linux-m68k.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #4 from Andreas Schwab sch...@linux-m68k.org 2012-04-01 13:20:36 
UTC ---
Not a bug.  An ellipses conversion sequence is worse than a standard conversion
sequence, thus readdata(int,void*) is preferred over readdata(int,...) when the
actual arguments are (int,long*).


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread nospamname at web dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #5 from bernd_afa nospamname at web dot de 2012-04-01 13:22:22 
UTC ---
Created attachment 27057
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27057
preproc file


[Bug c++/49152] Unhelpful diagnostic for iterator dereference

2012-04-01 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152

--- Comment #28 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-04-01 
13:23:01 UTC ---
(In reply to comment #27)
 (In reply to comment #26)
  because if you want nice diagnostics, why don't just use
  Clang?
 
 Because G++ gives much better diagnostics for template argument deduction
 failures, so just use clang isn't a solution even if all you care about is
 better diagnostics.

I am talking about the perspective of a new contributor that starts from zero
knowledge in both Clang and GCC. Then, it looks easier and it is in fact much
less effort to fix Clang to give the same diagnostics as g++ for template
argument deduction than to add caret diagnostics to GCC.

But my main point is that it is not a matter of effort: Even if g++ indeed
gives better diagnostics in some cases, this is either recognized as a bug in
Clang that can be fixed or it is a matter of opinion (more information versus
conciseness, assume users know the language standard terminology vs. use less
precise but more widely understandable language).

On the other hand, the current status is that the output of G++ is broken by
design and no patches will be accepted to change the design. Quoting
http://clang.llvm.org/diagnostics.html:

No Pretty Printing of Expressions in Diagnostics

Since Clang has range highlighting, it never needs to pretty print your code
back out to you. GCC can produce inscrutible error messages in some cases when
it tries to do this. In this example P and Q have type int*:

  $ gcc-4.2 -fsyntax-only t.c
  #'exact_div_expr' not supported by pp_c_expression#'t.c:12: error: called
object  is not a function
  $ clang -fsyntax-only t.c
  t.c:12:8: error: called object type 'int' is not a function or function
pointer
(P-Q)();
~^

This can be particularly bad in G++ which often emits errors containing lowered
vtable references:

  $ gcc-4.2 t.cc
  t.cc: In function 'void test(foo*)':
  t.cc:9: error: no match for 'operator+' in '(((a*)P) + (*(long
int*)(P-foo::anonymous.a::_vptr$a + -0x00020)))-a::bar() + * P'
  t.cc:9: error: return-statement with a value, in function returning 'void'
  $ clang t.cc
  t.cc:9:18: error: invalid operands to binary expression ('int' and 'foo')
return P-bar() + *P;
    ^ ~~


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread nospamname at web dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #6 from bernd_afa nospamname at web dot de 2012-04-01 13:26:40 
UTC ---
Not a bug.  An ellipses conversion sequence is worse than a standard conversion
sequence, thus readdata(int,void*) is preferred over readdata(int,...) when the
actual arguments are (int,long*).

The bad cast i only do to avoid extern include files. normaly it use SDL.
The problem happen because the address of the SDL_RWops structure is transfer
wrong. Same in the SDL program, because the 1. method Wsafile::readdata(int
NumFiles, ...) is not call on amigaos target. 

Wsafile::Wsafile(SDL_RWops* RWop)
{
readdata(1,RWop);
}

I attach complete preprocessed file, va-list is used with
__builtin_va_list.currently i have test with 4.5.0 now but other compiler have
same include.

The include for stdarg.h come from the compiler build.

command line was this:
m68k-amigaos-g++ eh-vararg-3.cpp -Wall -Wextra -E  preproc

the result

# 1 eh-vararg-3.cpp

# 1 built-in
# 1 command-line

# 1 eh-vararg-3.cpp

# 1 /usr/local/amiga/lib/gcc/m68k-amigaos/4.5.0/include/stdarg.h 1 3 4

# 43 /usr/local/amiga/lib/gcc/m68k-amigaos/4.5.0/include/stdarg.h 3 4

typedef __builtin_va_list __gnuc_va_list;

# 105 /usr/local/amiga/lib/gcc/m68k-amigaos/4.5.0/include/stdarg.h 3 4

typedef __gnuc_va_list va_list;

# 2 eh-vararg-3.cpp 2

...

this is the mail i write to GCC ML. This show more code about the real program
that fail

hello

there is a C++ game called dunelegacy which work on other GCC architecture ok
On G++ 68k it compile ok, but produce wrong code, because there seem something
diffrent in
va_list. The value of
SDL_RWops is transfer wrong.

I do not understand what backend problem is possible to cause this. Please
help.va_list use the
builtin GCC functions

this happen on all 68k compilers i test. (3.x and some 4.x)

See also the source attached of this class

the program flow of the critical part begin here. 

Wsafile::Wsafile(SDL_RWops* RWop)
{
readdata(1,RWop);
}

..


now there are 2 Methods named readdata, and gcc call the 2. one. This work
wrong. Only when called
the first is ok.

.

void Wsafile::readdata(int NumFiles, ...) {
va_list args;
va_start(args,NumFiles);
readdata(NumFiles,args);
va_end(args);
}

/// Helper method for reading and concatinating various WSA-Files.
/**
This methods reads from the RWops all data and concatinates all the frames
to one animation. The
SDL_RWops
can be readonly but must support seeking.
\param  NumFilesNumber of SDL_RWops
\param  argsSDL_RWops for each wsa-File should be in this va_list.
(can be readonly)
*/
void Wsafile::readdata(int NumFiles, va_list args) {
unsigned char** Filedata;
Uint32** Index;
Uint16* NumberOfFrames;
bool* extended;

if((Filedata = (unsigned char**) malloc(sizeof(unsigned char*) * NumFiles))
== NULL) {
fprintf(stderr, Wsafile::readdata(): Unable to allocate memory!\n);
exit(EXIT_FAILURE);
}


.


when i change code to this and rename the first readdata method to
readdata_first then it work

Wsafile::Wsafile(SDL_RWops* RWop)
{
readdata_first(1,RWop);    I change that line
}

now there is called this method before and all work ok


void Wsafile::readdata_frist(int NumFiles, ...) {    I rename readdata to
readdata_first.
va_list args;
va_start(args,NumFiles);
readdata(NumFiles,args);
va_end(args);
}

/// Helper method for reading and concatinating various WSA-Files.
/**
This methods reads from the RWops all data and concatinates all the frames
to one animation. The
SDL_RWops
can be readonly but must support seeking.
\param  NumFilesNumber of SDL_RWops
\param  argsSDL_RWops for each wsa-File should be in this va_list.
(can be readonly)
*/
void Wsafile::readdata(int NumFiles, va_list args) {
unsigned char** Filedata;
Uint32** Index;
Uint16* NumberOfFrames;
bool* extended;

if((Filedata = (unsigned char**) malloc(sizeof(unsigned char*) * NumFiles))
== NULL) {
fprintf(stderr, Wsafile::readdata(): Unable to allocate memory!\n);
exit(EXIT_FAILURE);
}

..

   int WsaFilesize;
RWop = va_arg(args,SDL_RWops*);   
Filedata[i] = readfile(RWop,WsaFilesize); --- here crash, when not
the 1. method is called
before

Bye


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #7 from Andrew Pinski pinskia at gcc dot gnu.org 2012-04-01 
13:33:25 UTC ---
there is a C++ game called dunelegacy which work on other GCC architecture ok

Yes so the ABI for the 68k says va_list is a void* which is a valid choice as
far as the C++ standard is concerned.

I think you need to rethink the function names so that ... is chosen over
void*.  as Andreas said, the conversion to void* is chosen over a ... function.


[Bug c++/9050] [DR 147] Can't explicitly specialize C++ constructor templates

2012-04-01 Thread schaub.johannes at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9050

Johannes Schaub schaub.johannes at googlemail dot com changed:

   What|Removed |Added

 CC||schaub.johannes at
   ||googlemail dot com

--- Comment #13 from Johannes Schaub schaub.johannes at googlemail dot com 
2012-04-01 14:03:40 UTC ---
Jason, does http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1435
not render the explicit specialization ill-formed for C++11TC1? It only allows
a simple identifier, and not a template-id.


[Bug c++/9050] [DR 147] Can't explicitly specialize C++ constructor templates

2012-04-01 Thread schaub.johannes at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9050

--- Comment #14 from Johannes Schaub schaub.johannes at googlemail dot com 
2012-04-01 14:14:46 UTC ---
(In reply to comment #13)
 Jason, does http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1435
 not render the explicit specialization ill-formed for C++11TC1? It only allows
 a simple identifier, and not a template-id.

FWIW I don't like the resolution of that issue. For a qualified-id, the
injected-class-name is an excellent way for us to know when and when not we
name a constructor, and it is entirely based on name-lookup rules; I don't see
the need to dictate that in clause 12. Only for an unqualified-id, we actually
need the rule to know when we declare a constructor. The allowed
decl-specifiers in a constructor declaration can be stated separately.


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread nospamname at web dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #8 from bernd_afa nospamname at web dot de 2012-04-01 14:16:15 
UTC ---
(In reply to comment #7)
 there is a C++ game called dunelegacy which work on other GCC architecture ok
 
 Yes so the ABI for the 68k says va_list is a void* which is a valid choice as
 far as the C++ standard is concerned.
 
 I think you need to rethink the function names so that ... is chosen over
 void*.  as Andreas said, the conversion to void* is chosen over a ... 
 function.

I think you need to rethink the function names so that ... is chosen over
void*.  as Andreas said, the conversion to void* is chosen over a ... function.

I like to change this for the compiler, to be compatible and at least to test
if there run more C++ Programs on 68k. How is that possible when i use buildin
va_list ?

there is AROS a amiga replacement OS.It is platform independent and run
currently on X86, arm, ppc and 68k and use GCC as compiler on all
platforms.here can see what platforms it support

http://aros.sourceforge.net/download.php

But the OWB webbrowser and dunelegacy do not work on 68k.
OWB is based on webkit engine.

somebody else compile it for amiga OS. It compile ok, but crash. it was too
hard to find the Problem in this big program. I search not long and give up.

some weeks later i get a report, that dunelegacy do not work on 68k.
It was not so large and i find the problems.I see OWB use lots va_list.

maybe change va_list to mainstraim behavior in the amigaos or AROS compiler
build let more C++ programs get working without changes.

A problem too is that GCC give no warning, about a unused depatcher method or
sow.

So please help and tell me what i can do.
I can compile GCC 68k


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #9 from Andrew Pinski pinskia at gcc dot gnu.org 2012-04-01 
14:31:37 UTC ---
 maybe change va_list to mainstraim behavior in the amigaos or AROS compiler
 build let more C++ programs get working without changes.

You cannot change va_list without changing the ABI and that is not going to fly
anywhere.

You just need to take better into account what va_list can be (which is mostly
anything from char* to void* to an array of a struct to a struct).


[Bug java/52810] gcj -C -g failed

2012-04-01 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52810

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|classpath   |java
Version|0.98|4.7.0
 Resolution||INVALID
Product|classpath   |gcc

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-04-01 
14:56:24 UTC ---
You need to install the Eclipse front-end.  There is a script in contrib in
GCC's sources which does this.


[Bug inline-asm/52813] %rsp in clobber list is silently ignored

2012-04-01 Thread jhaberman at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813

Josh Haberman jhaberman at gmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |

--- Comment #2 from Josh Haberman jhaberman at gmail dot com 2012-04-01 
15:54:27 UTC ---
I don't expect the compiler to analyze the asm string.  I expect the compiler
to respect my clobber list.

I told GCC that I would clobber %rsp.  Any other register that I put in the
clobber list causes GCC to save that register to the stack or to another
register before the asm and restore it from the stack/register after the asm. 
For example:

--

#include stdlib.h
int main() {
  int x = rand();
  asm volatile (movq $0, %%rax : : : %rax);
  return x;
}

$ gcc -Wall -O3 -fomit-frame-pointer -c -o test.o test.c
$ objdump -d -r -M intel test.o
test.o: file format elf64-x86-64


Disassembly of section .text.startup:

 main:
   0:48 83 ec 08  subrsp,0x8
   4:e8 00 00 00 00   call   9 main+0x9
5: R_X86_64_PC32rand-0x4
   9:89 c2movedx,eax
   b:48 c7 c0 00 00 00 00 movrax,0x0
  12:89 d0moveax,edx
  14:48 83 c4 08  addrsp,0x8
  18:c3   ret

--

Notice that it saved eax to edx before my asm and restored it afterwards.  This
works for every register except %rsp, which is silently ignored if you try to
list it in the clobber list.  This is a bug.


[Bug middle-end/52820] [4.8 Regression] ICE in create_preheader, at cfgloopmanip.c:1363

2012-04-01 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52820

--- Comment #1 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-04-01 16:04:29 UTC ---
Most likely a dup of PR52808.


[Bug bootstrap/52808] [4.8 Regression] LTO bootstrap failed with bootstrap-profiled

2012-04-01 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52808

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #4 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-04-01 16:09:09 UTC ---
Most likely PR52820 is also a dup.


[Bug c++/52817] g++ do not call a method with same name on some platforms(see small example source attached)

2012-04-01 Thread nospamname at web dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52817

--- Comment #10 from bernd_afa nospamname at web dot de 2012-04-01 16:12:28 
UTC ---
(In reply to comment #9)

 You cannot change va_list without changing the ABI and that is not going to 
 fly
anywhere.

 You just need to take better into account what va_list can be (which is mostly
 anything from char* to void* to an array of a struct to a struct).

I see in the amigaos _G_config.h this

typedef void * _G_va_list; 

Are there other mainstream targets with webkit and many C++ programs running
that use void * for va_list ?

And what type va_list is on most mainstream OS /ABI ?


[Bug bootstrap/52808] [4.8 Regression] LTO bootstrap failed with bootstrap-profiled

2012-04-01 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52808

--- Comment #5 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-04-01 16:14:15 UTC ---
*** Bug 52820 has been marked as a duplicate of this bug. ***


[Bug middle-end/52820] [4.8 Regression] ICE in create_preheader, at cfgloopmanip.c:1363

2012-04-01 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52820

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #2 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-04-01 16:14:15 UTC ---
dup

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


[Bug middle-end/52821] New: [4.8 Regression] 191.fma3d in SPEC CPU 2000 failed to build with LTO

2012-04-01 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52821

 Bug #: 52821
   Summary: [4.8 Regression] 191.fma3d in SPEC CPU 2000 failed to
build with LTO
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com
CC: areg.melikadam...@gmail.com


On Linux/x86-64, revision 186029 failed to build
191.fma3d in SPEC CPU 2000 with LTO:

gfortran -O3 -funroll-loops -ffast-math -fwhole-program -flto=jobserver
-fuse-linker-plugin -DSPEC_CPU2000_LP64 fma3d.o beam_.o include_file_.o
penta_.o segment_set_.o body_force_.o indx_.o periodic_bc_.o
sliding_interface_.o constrained_node_.o layering_.o plate_pair_.o
sliding_node_.o contact_node_.o location_.o platq_.o spot_weld_.o
contact_surface_.o lsold_.o platt_.o spring_.o coord_.o massprop_.o
pressure_bc_.o spring_bc_.o damper_.o material_.o property_.o
state_variables_.o damper_bc_.o mean_stress_.o shared_common_data.o stress_.o
displacement_bc_.o membq_.o qa_record_.o tabulated_function_.o element_set_.o
membt_.o relink_scratch_.o tetra_.o enumerated_sets_.o motion_.o results_.o
tied_bc_.o force_.o nodal_point_mass_.o rigid_body_.o truss_.o force_bc_.o
node_.o rigid_body_mass_.o value_.o gauge1d_.o node_set_.o rigid_wall_bc_.o
velocity_ic_.o gauge2d_.o nonreflecting_bc_.o section_1d_.o gauge3d_.o
nrbc_data_.o section_2d_.o hexah_.o output_.o segment_.o lsold.o damper.o
spring.o material_00.o material_10.o material_11.o material_17.o material_22.o
material_25.o material_32.o material_33.o material_34a.o material_36.o
material_38.o material_dm.o material_sp.o sort.o pdb.o beam.o membq.o membt.o
penta.o tetra.o hexah.o platq.o truss.o platt.o fma1.o getirv.o relink.o
output.o fma2.o partition.o strain.o slide.o -o fma3d
...
sort.f90: In function 'ivsort_.constprop.16':
sort.f90:172:0: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
make[4]: *** [/tmp/ccFwYfY7.ltrans5.ltrans.o] Error 1
lto-wrapper: make returned 2 exit status
/usr/local/bin/ld: lto-wrapper failed
collect2: error: ld returned 1 exit status
specmake[3]: *** [fma3d] Error 1

Revision 185836 is OK.


[Bug java/52805] [4.8 Regression] 243 new GCC HEAD@185977 regressions (libjava failures)

2012-04-01 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52805

--- Comment #2 from Iain Sandoe iains at gcc dot gnu.org 2012-04-01 17:28:47 
UTC ---
I suspect you might have altered the priority of class discovery methods
inadvertently.

e.g. AFAICT, although darwin defines JCR_SECTION_NAME, there is no crt
machinery to deal with it [darwin has it's own crt code] - it's on my TODO to
look at that  confirm/deny/fix as appropriate.

not sure why i686-pc-linux is failing tho (since crtstuff does seem to have
provision for JCR - but not checked in any depth).

Darwin folks might like to try:

Index: gcc/config/darwin.h
===
--- gcc/config/darwin.h (revision 186018)
+++ gcc/config/darwin.h (working copy)
@@ -847,6 +847,7 @@ enum machopic_addr_class {

 /* Java runtime class list.  */
 #define JCR_SECTION_NAME __DATA,jcr,regular,no_dead_strip
+#define TARGET_USE_JCR_SECTION 0

 #undef ASM_PREFERRED_EH_DATA_FORMAT
 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)  \


[Bug c++/52818] printf format %lf is erroneously rejected by C++11

2012-04-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52818

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-04-01
 Ever Confirmed|0   |1

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-01 
17:35:16 UTC ---
Confirmed.

The format checking code doesn't currently distinguish between C++ standards:

/* The C standard version C++ is treated as equivalent to
   or inheriting from, for the purpose of format features supported.  */
#define CPLUSPLUS_STD_VER   STD_C94


[Bug libstdc++/52822] New: [C++11] stable_partition destroys sequence due to inappropriate self-move-assignment

2012-04-01 Thread jyasskin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52822

 Bug #: 52822
   Summary: [C++11] stable_partition destroys sequence due to
inappropriate self-move-assignment
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jyass...@gcc.gnu.org


The following test program should print 1 twice, since stable_partition is
only supposed to rearrange values, not modify them.

$ cat test.cc
#include vector
#include utility
#include algorithm
#include iostream
using namespace std;

bool pred(const vectorint) { return true; }

int main() {
  vectorvectorint  v(1);
  v[0].push_back(7);
  cout  v[0].size()  '\n';
  stable_partition(v.begin(), v.end(), pred);
  cout  v[0].size()  '\n';
}
$ g++-4.6pre --version
g++-4.6pre (GCC) 4.6.4 20120330 (prerelease)
$ g++-4.6pre -std=c++98 -g3 test.cc -o test  ./test
1
1
$ g++-4.6pre -std=c++0x -g3 test.cc -o test  ./test
1
0
$ g++-4.7pre --version
g++-4.7pre (GCC) 4.7.1 20120330 (prerelease)
$ g++-4.7pre   -std=c++0x -g3 test.cc -o test  ./test
1
0
$ g++-4.8pre --version
g++-4.8pre (GCC) 4.8.0 20120330 (experimental)
$ g++-4.8pre -std=c++0x -g3 test.cc -o test  ./test
1
0


I believe this happens because
http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/include/bits/stl_algo.h?revision=184997view=markup#l1827
move-assigns *__result1 from *__first even when those are the same object,
which violates
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1204.

I haven't audited the rest of the library to look for more instances of this
mistake. I'm planning to switch the default compilation mode to c++0x and run
the gcc-4.6 test suite to look for more problems, but I'm not currently
planning to do the same for 4.7 or trunk.


[Bug inline-asm/52813] %rsp in clobber list is silently ignored

2012-04-01 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813

--- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2012-04-01 18:58:27 
UTC ---
(In reply to comment #2)
 I don't expect the compiler to analyze the asm string.  I expect the compiler
 to respect my clobber list.
 
 I told GCC that I would clobber %rsp.  Any other register that I put in the
 clobber list causes GCC to save that register to the stack or to another
 register before the asm and restore it from the stack/register after the asm. 
 For example:

%rsp is considered a fixed register, used for fixed purposes all throughout
the compiled code and are therefore not available for general allocation.

So, save %rsp at the beginning of your asm code and restore it at the end.


[Bug inline-asm/52813] %rsp in clobber list is silently ignored

2012-04-01 Thread jhaberman at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813

--- Comment #4 from Josh Haberman jhaberman at gmail dot com 2012-04-01 
19:23:14 UTC ---
I understand that GCC may not be able to save/restore %rsp like it does other
registers.  But if that's the case, GCC should throw an error if the user puts
%rsp in the clobber list, instead of silently ignoring it.  Otherwise how is
the user supposed to know that %rsp will not be saved except through trial and
error?


[Bug c++/49152] Unhelpful diagnostic for iterator dereference

2012-04-01 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152

Marc Glisse marc.glisse at normalesup dot org changed:

   What|Removed |Added

 CC||marc.glisse at normalesup
   ||dot org

--- Comment #29 from Marc Glisse marc.glisse at normalesup dot org 2012-04-01 
20:28:14 UTC ---
(In reply to comment #24)
 Personally, I don't believe Gaby is open to other solutions outside the
 full-fledged caret diagnostics context,

He didn't seem opposed to _adding_ the type information (without removing the
current information).


[Bug middle-end/52823] New: [4.8 Regression] FAIL: gnat.dg/renaming5.adb scan-tree-dump-times optimized goto 2

2012-04-01 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52823

 Bug #: 52823
   Summary: [4.8 Regression] FAIL: gnat.dg/renaming5.adb
scan-tree-dump-times optimized goto 2
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: domi...@lps.ens.fr
CC: ebotca...@gcc.gnu.org, ia...@gcc.gnu.org,
rgue...@gcc.gnu.org


At revision 185913, the test gnat.dg/renaming5.adb fails on
x86_64-apple-darwin10:

FAIL: gnat.dg/renaming5.adb scan-tree-dump-times optimized goto 2

[macbook] f90/bug% grep goto renaming5.adb.149t.optimized 
goto bb 5;
goto bb 4;
  goto bb 3;

AFAICT the test passes at r185912 on s390-ibm-linux-gnu default (see
http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg03204.html), but fails at
r185969 (see http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg03354.html) as
well as on x86_64-unknown-linux-gnu (see
http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg03405.html).

Note that gnat.dg/return3.adb fails on s390-ibm-linux-gnu default and
x86_64-unknown-linux-gnu:

FAIL: gnat.dg/return3.adb scan-assembler loc 1 6

I did not checked if a pr has already been filled for it or not. If not, since
I don't see it on darwin, I'll let a linux user fill it.


[Bug libstdc++/52822] [C++11] stable_partition destroys sequence due to inappropriate self-move-assignment

2012-04-01 Thread jyasskin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52822

--- Comment #1 from Jeffrey Yasskin jyasskin at gcc dot gnu.org 2012-04-01 
20:41:43 UTC ---
Running the 4.6 testsuite with -std=c++0x as the default was unsuccessful, in
that it found only one error in an execution test, which was already known, and
didn't find the stable_partition bug. Manual inspection it is. :(


[Bug libstdc++/52822] [C++11] stable_partition destroys sequence due to inappropriate self-move-assignment

2012-04-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52822

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-04-01
 Ever Confirmed|0   |1

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-01 
21:14:46 UTC ---
Yeah, I run the whole testsuite with -std=c++0x every now and then, and I think
Paolo does so more often.  Confirming this one though - thanks for finding it.


[Bug c++/52824] New: [C++11] expanding variadic template arguments into non-variadic template

2012-04-01 Thread zeratul976 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52824

 Bug #: 52824
   Summary: [C++11] expanding variadic template arguments into
non-variadic template
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zeratul...@hotmail.com


The fix to PR 35722 fixed many cases of expanding variadic template arguments
into a non-variadic template. 

However, the following example (a simple modification of the PR 35722 example,
I just removed the default template arguments from 'foo') gives a bogus error:

templatetypename G, typename H
struct foo
{};

templatetypename... G
struct bar : fooG...
{};

int main() {
  barint, float f;
}

The error is:

test.cpp:6:22: error: wrong number of template arguments (1, should be 2)
test.cpp:2:8: error: provided for 'templateclass G, class H struct foo'


[Bug libstdc++/52822] [C++11] stable_partition destroys sequence due to inappropriate self-move-assignment

2012-04-01 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52822

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-04-01 
21:50:42 UTC ---
Lately, in 4.6 too, in the occasion of a similar issue, we also added a check
for self-move assignment to __gnu_test::rvalstruct. Evidently, the small
testcases we have got already do not trigger the offending case, unfortunately.

Anyway, luckily these issues are normally easy to fix. If Jeffrey, you are able
to quickly prepare a patch and send it to the mailing list, Jon can approve and
commit it (I will be traveling for a few days). Should be definitely suited for
4.7.1 and maybe 4.6 too, if small enough.


[Bug libstdc++/52591] [C++0x] [4.7 Regression] moving std::vector relies on movable elements

2012-04-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52591

--- Comment #11 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-01 
22:04:59 UTC ---
Author: redi
Date: Sun Apr  1 22:04:54 2012
New Revision: 186057

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=186057
Log:
PR libstdc++/52591
* include/bits/stl_vector.h (vector::operator=(vector)): Dispatch
to _M_move_assign depending on whether allocator is moved.
(vector::_M_move_assign): Add overloaded functions.
* testsuite/23_containers/vector/52591.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

Added:
trunk/libstdc++-v3/testsuite/23_containers/vector/52591.cc
  - copied, changed from r186055,
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_vector.h
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc


[Bug libstdc++/52822] [C++11] stable_partition destroys sequence due to inappropriate self-move-assignment

2012-04-01 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52822

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2012-04-01 
22:09:45 UTC ---
PS: then shall we just do the assignment only when __result1 != __first, or
algorithmically we can do better? In case we can also imagine having the
trivial fix for 4.6 and maybe even 4.7.1 and committing it to mainline too
without considering the issue resolved, in case later on somebody figures out
something smarter algorithmically.


[Bug libstdc++/52591] [C++0x] [4.7 Regression] moving std::vector relies on movable elements

2012-04-01 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52591

--- Comment #12 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-01 
22:12:29 UTC ---
fixed on the trunk so far


[Bug java/52805] [4.8 Regression] 243 new GCC HEAD@185977 regressions (libjava failures)

2012-04-01 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52805

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-04-01 
22:30:33 UTC ---
Nice working patch! Though I doubt it'll work for linux;-) (both i686 and
x86_64).

=== libjava Summary for unix/-m64 ===

# of expected passes2574

=== libjava Summary ===

# of expected passes5148


[Bug middle-end/52823] [4.8 Regression] FAIL: gnat.dg/renaming5.adb scan-tree-dump-times optimized goto 2

2012-04-01 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52823

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX

--- Comment #1 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-04-01 
23:00:07 UTC ---
 AFAICT the test passes at r185912 on s390-ibm-linux-gnu default (see
 http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg03204.html), but fails at
 r185969 (see http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg03354.html) as
 well as on x86_64-unknown-linux-gnu (see
 http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg03405.html).

It probably fails everywhere, this is known, no point in opening a PR for such
a benign regression during stage #1.

 Note that gnat.dg/return3.adb fails on s390-ibm-linux-gnu default and
 x86_64-unknown-linux-gnu:
 
 FAIL: gnat.dg/return3.adb scan-assembler loc 1 6
 
 I did not checked if a pr has already been filled for it or not. If not, since
 I don't see it on darwin, I'll let a linux user fill it.

Likewise, let's avoid cluttering up the database for this.


[Bug tree-optimization/52797] [4.8 Regression] Revision 185913 causes ICE in get_loop_body, at cfgloop.c:831 on PowerPC

2012-04-01 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52797

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

 CC||dje at gcc dot gnu.org

--- Comment #4 from David Edelsohn dje at gcc dot gnu.org 2012-04-01 23:05:07 
UTC ---
powerpc-aix as well.


[Bug c/52825] New: incorrect message for incompatible pointer type with typedeffed structs

2012-04-01 Thread guest at mailinator dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52825

 Bug #: 52825
   Summary: incorrect message for incompatible pointer type with
typedeffed structs
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: gu...@mailinator.com


presented with the following code:


typedef struct
{
/*doesn't matter what's here*/
}
foo;

void f(foo*);

void main(int argc, char** argv)
{
struct foo* bar;
f(bar);
}


compiled with gcc -c test.c, the following warning is produced:

test.c: In function 'main':
test.c:12:2: warning: passing argument 1 of 'f' from incompatible pointer type
[enabled by default]
test.c:7:6: note: expected 'struct foo *' but argument is of type 'struct foo
*'

The two types printed are the same, but the actual types are more like foo*
vs struct foo* (which are what clang mentions in its warning here).


[Bug c++/52826] New: Implement core/1170

2012-04-01 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52826

 Bug #: 52826
   Summary: Implement core/1170
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: paolo.carl...@oracle.com


Another internal reminder:

  http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1170

Should be also rather doable...


[Bug c++/50043] [C++0x] Implement core/1123

2012-04-01 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50043

--- Comment #9 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2012-04-02 00:13:35 UTC ---
Author: paolo
Date: Mon Apr  2 00:13:30 2012
New Revision: 186058

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=186058
Log:
/cp
2012-04-01  Paolo Carlini  paolo.carl...@oracle.com

PR c++/50043
* class.c (deduce_noexcept_on_destructor,
deduce_noexcept_on_destructors): New.
(check_bases_and_members): Call the latter.
* decl.c (grokfndecl): Call the former.
* method.c (implicitly_declare_fn): Not static.
* cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
Declare

/testsuite
2012-04-01  Paolo Carlini  paolo.carl...@oracle.com

PR c++/50043
* g++.dg/cpp0x/noexcept17.C: New.
* g++.old-deja/g++.eh/cleanup1.C: Adjust.
* g++.dg/tree-ssa/ehcleanup-1.C: Likewise.
* g++.dg/cpp0x/noexcept01.C: Likewise.
* g++.dg/eh/init-temp1.C: Likewise.
* g++.dg/eh/ctor1.C: Likwise.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/noexcept17.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/method.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/noexcept01.C
trunk/gcc/testsuite/g++.dg/eh/ctor1.C
trunk/gcc/testsuite/g++.dg/eh/init-temp1.C
trunk/gcc/testsuite/g++.dg/tree-ssa/ehcleanup-1.C
trunk/gcc/testsuite/g++.old-deja/g++.eh/cleanup1.C


[Bug c++/50043] [C++0x] Implement core/1123

2012-04-01 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50043

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2012-04-02 
00:19:43 UTC ---
Done. Library clean-ups will follow.


[Bug c/52827] New: -mx32 is not recognized

2012-04-01 Thread jengelh at medozas dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52827

 Bug #: 52827
   Summary: -mx32 is not recognized
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jeng...@medozas.de


Observed:
$ gcc-4.7 -mx32 -c clock.c
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/as:
unrecognized option '--x32'

Expected:
Either recognize option, or say -mx32 is unknown. But --x32 is not what I
specified, in any case.

$ gcc-4.7 -v
Using built-in specs.
COLLECT_GCC=gcc-4.7
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.7/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --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=yes
--with-gxx-include-dir=/usr/include/c++/4.7 --enable-ssp --disable-libssp
--disable-libitm --disable-plugin --with-bugurl=http://bugs.opensuse.org/
--with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap
--with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit
--enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --enable-linker-build-id
--program-suffix=-4.7 --enable-linux-futex --without-system-libunwind
--with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux
Thread model: posix
gcc version 4.7.0 20120322 [gcc-4_7-branch revision 185687] (SUSE Linux)


[Bug c/52827] -mx32 is not recognized

2012-04-01 Thread jengelh at medozas dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52827

Jan Engelhardt jengelh at medozas dot de changed:

   What|Removed |Added

 CC||hjl.tools at gmail dot com
   Severity|normal  |minor


[Bug c/52827] Document requirements for -mx32

2012-04-01 Thread jengelh at medozas dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52827

Jan Engelhardt jengelh at medozas dot de changed:

   What|Removed |Added

Summary|-mx32 is not recognized |Document requirements for
   ||-mx32
   Severity|minor   |enhancement

--- Comment #1 from Jan Engelhardt jengelh at medozas dot de 2012-04-02 
01:57:38 UTC ---
Guess I missed the requirement for binutils = 2.22. If this could be
documented in the gcc manpage for -mx32 that would be welcome. (As would a
canonicalization of the path to as which, since it has been so long, kinda gets
ignored.)


[Bug c/52827] Document requirements for -mx32

2012-04-01 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52827

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-04-02 
02:00:31 UTC ---
You need more than just a binutils that is able to assemble x32 code, you will
need a glibc which also supports it too.  No distro has that yet.


[Bug libstdc++/52822] [C++11] stable_partition destroys sequence due to inappropriate self-move-assignment

2012-04-01 Thread jyasskin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52822

--- Comment #5 from Jeffrey Yasskin jyasskin at gcc dot gnu.org 2012-04-02 
02:15:24 UTC ---
Created attachment 27058
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27058
Fix by skipping past true-predicate values

Here's an algorithmic fix that passes check-c++. As a side-effect, it makes
__find_if_not available outside C++11 mode. Look good for trunk? Would you want
the simpler __result1!=__first fix for 4.6 and/or 4.7, or is this approach good
for them too?


[Bug target/52828] New: powerpc -m32 -Os writes register saves below stack

2012-04-01 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52828

 Bug #: 52828
   Summary: powerpc -m32 -Os writes register saves below stack
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: amo...@gmail.com


An example is gcc.c-torture/compile/20020604-1.c compiled with -m32 -g -Os
-fno-omit-frame-pointer.  (The -fno-omit-frame-pointer is there just to get a
reg saved.  An asm volatile reg clobber gives the same result.)
The relevant part of the prologue code looks like

 lis 0,0x
 mr 12,1
 ori 0,0,32736
 stw 31,-4(12)
 stwux 1,1,0
 .cfi_def_cfa_offset 32800
 .cfi_offset 31, 32796

Notice the r31 save before the stack adjust.  Another consequence of the
reordering is wrong debug/eh_frame info for r31.


[Bug c/52829] New: gcc releases up to 4.6.2 triggers ICE when compiling Gambit Scheme at -O2 on ppc64

2012-04-01 Thread salimma at fedoraproject dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52829

 Bug #: 52829
   Summary: gcc releases up to 4.6.2 triggers ICE when compiling
Gambit Scheme at -O2 on ppc64
Classification: Unclassified
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: sali...@fedoraproject.org


Created attachment 27059
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27059
Build log for Gambit 4.6.5

With GCC 4.4.6 (used by Red Hat Enterprise Linux 6) and GCC 4.6.2 (installed on
Fedora's test PowerPC machine's Fedora 16 target), building Gambit Scheme with
-O2 -- which is the default since their 4.6.4 release -- triggers an internal
compiler error.

This is fixed in GCC 4.7.0 (as tested on our PowerPC machine's Rawhide target).

For reference:
Gambit bug report:
http://www.iro.umontreal.ca/~gambit/bugzilla/show_bug.cgi?id=155
Red Hat bug report: https://bugzilla.redhat.com/show_bug.cgi?id=808285


[Bug c/52829] gcc releases up to 4.6.2 triggers ICE when compiling Gambit Scheme at -O2 on ppc64

2012-04-01 Thread salimma at fedoraproject dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52829

--- Comment #1 from Michel Alexandre Salim salimma at fedoraproject dot org 
2012-04-02 04:10:22 UTC ---
Created attachment 27060
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27060
Preprocessed source file that triggers ICE


[Bug c++/49152] Unhelpful diagnostic for iterator dereference

2012-04-01 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152

--- Comment #30 from Jason Merrill jason at gcc dot gnu.org 2012-04-02 
05:16:05 UTC ---
(In reply to comment #26)
 The caret is not a solution to this problem, because what Gabriel wants is to
 not reconstruct expressions ONLY when the caret is shown, but he has said in
 the past that the caret should default to OFF to not change the current output
 for IDEs and other software parsing the output of gcc like emacs, so we are
 back to printing the monsters mentioned above by default.

I think I've said before that caret should default to on when the output is a
terminal.

 That and that moving
 line-map out of libcpp to create a source-location library has been rejected 
 in
 the past.

I don't remember the discussion about this.  What was the goal?

 Even if the caret was the solution, nobody has worked on it in the last 25
 years, and now that we have good column information, I don't expect that there
 will be anyone working on it in the next 25.

Well, we didn't have the competitive pressure from clang in the past 25 years;
now we do.

Good column information is equivalent to caret diagnostics; the column number
tells you where the caret goes, so an IDE can put the cursor there.  As I've
suggested before, one quick way to get caret diagnostics given the column
information would be to write a quick perl postprocessor that just prints the
designated line and puts a caret under the designated column.

Range highlighting like clang has is something further; we would need two
source locations per expression, rather than the one we currently have.

And G++ still needs some work to track expression locations better, it hasn't
gotten as much work on that as the C front end.


[Bug c++/9050] [DR 147] Can't explicitly specialize C++ constructor templates

2012-04-01 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9050

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

  Known to fail||

--- Comment #15 from Jason Merrill jason at gcc dot gnu.org 2012-04-02 
05:41:08 UTC ---
(In reply to comment #14)

Good point, I've pointed out the problem with the proposed resolution.