Re: how to convince someone about migrating from gcc-2.95 to gcc-3.x

2007-04-02 Thread Chris Lattner


On Apr 1, 2007, at 10:42 PM, Joe Buck wrote:


On Sun, Apr 01, 2007 at 02:20:10PM +0200, Marcin Dalecki wrote:


Wiadomość napisana w dniu 2007-04-01, o godz13:58, przez Paul  
Brook:



If you're already switching compilers, moving to an already
obsolete release
(3.3) seems a strange choice. At this point I'd recommend  
skipping 3.x

altogether and going straight to gcc4.1/4.2.

Many of the improvements in c++ code generation were as a result of
tree-ssa,
you only get with 4.x.


I wouldn't recommend it. One has to adapt gradually to the patience
required to
use the later compiler editions.


No, one does not have to adapt gradually.  It is no harder to  
switch from
2.95 to 4.1.2 than it is to switch from 2.95 to 3.3.  Either way,  
you'll
have to get out a C++ book, learn C++, and recode your code in  
actual C++.
There will be some cases where going to 3.3 will require fewer  
changes,

but the majority of the work is going to have to be done anyway.


I believe the point being made was about compile times, not conformance.

-Chris


RE: Information regarding -fPIC support for Interix gcc

2007-04-02 Thread Mayank Kumar
Hi Murali/Everybody

1: I am keen on understanding how does the offset of L32 from 
_GLOBAL_OFFSET_TABLE_ generated ? I mean if assembly is

Movl [EMAIL PROTECTED](%ebx,%eax),%eax then how does is gets converted to mov  
0xbd14(%eax,%ebx,1),%eax. I guessed that L32 is at start of .rodata section 
which is the only section of its type. So in my opinion it should have been
Address of .got section  - address of .rodata section. But I am not getting the 
generated offset seen in objdump as the same as I calculate from the above 
method on a FreeBSD box. Can anyone help here ? On interix, the offset is being 
calculated as .got - .rodata only, so is there anything wrong in this? I am 
assuming that this is the only thing that could be going wrong.

2: Murali, Interix generated pecoff binaries have _GLOBAL_OFFSET_TABLE_ 
defined. We also have .got section/.plt section etc which are present in a pic 
compiled code, hence your patch may fix the problem in an alternate way but may 
not be the correct fix for Interix. Yes , you are right that the generated 
assembly is for a switch case and is actually a jump table.

3: Also, after further investigation, I found that Interix compiled shared 
libraries with fPIC flag only cause a crash when there is a jump table being 
created for a switch case. I compiled the same shared library which was 
crashing with ---fPIC and -fno-jump-table on 4.3 and it worked great. So are 
there any jump table experts out there who could help me investigate what is 
going wrong in there? I have attached objdump -D output and gcc -S output for 
the shared library(repro code which is basically a small dummy library).
--Ass contains objdump -D output
--lib1.s contains gcc -S output
Look at the jump table generated for switch case inside func1_1? This causes 
the crash because the control jumps to invalid location thru jmp*%eax.


Thanks
Mayank


-Original Message-
From: Murali Vemulapati [mailto:[EMAIL PROTECTED]
Sent: Saturday, March 31, 2007 9:57 PM
To: Mayank Kumar
Cc: gcc@gcc.gnu.org
Subject: Re: Information regarding -fPIC support for Interix gcc

On 3/31/07, Mayank Kumar [EMAIL PROTECTED] wrote:
 Further to this email, I did some more investigation, here is some more 
 detailed information about what I am doing:-

 1: Compiled a shared library(tcl8.4.14) using -fPIC on gcc4.3.0 for 
 interix(was able to compile gcc 4.3.0 for interix)
 2: The assembly generated for a particular region of code which causes a jmp 
 to an invalid location, obtained using gcc -S -fPIC is as follows:-
 movl-20(%ebp), %eax
 sall$2, %eax
 movl[EMAIL PROTECTED](%ebx,%eax), %eax
 addl%ebx, %eax
 jmp *%eax
 .section.rdata,r
 .balign 4
 L32:
 .long   [EMAIL PROTECTED]

 3:the assembly generated while executing the binary linked with the shared 
 library
 0x100889dc Tcl_ConvertCountedElement+246: mov0xffec(%ebp),%eax
 0x100889df Tcl_ConvertCountedElement+249: shl$0x2,%eax
 0x100889e2 Tcl_ConvertCountedElement+252: mov
 0xbd14(%eax,%ebx,1),%eax
 0x100889e9 Tcl_ConvertCountedElement+259: add%ebx,%eax
 0x100889eb Tcl_ConvertCountedElement+261: jmp*%eax

 4:Similar code compiled and run on a FreeBsd box using gcc shared library and 
 fPIC produces the following assembly:-
 0x2810a1a8 Tcl_ConvertCountedElement+244: mov0xffec(%ebp),%eax
 0x2810a1ab Tcl_ConvertCountedElement+247: shl$0x2,%eax
 0x2810a1ae Tcl_ConvertCountedElement+250: mov
 0x4f14(%eax,%ebx,1),%eax
 0x2810a1b5 Tcl_ConvertCountedElement+257: add%ebx,%eax
 0x2810a1b7 Tcl_ConvertCountedElement+259: jmp*%eax

 5:So corresponding to
 ---movl[EMAIL PROTECTED](%ebx,%eax), %eax,
 The assembly generated on interix is
 --- mov0xbd14(%eax,%ebx,1),%eax
 Whereas on bsd box, it is
 --- mov0x4f14(%eax,%ebx,1),%eax

 Here the offset bd14 in case of interix is wrong which is causing the jmp 
 *eax to jump to a different function.

 Now my questions are:-
 1: What does [EMAIL PROTECTED] mean ? Is it at offset L32 in GOTOFF table ?

It means the offset of L32 from the symbol GLOBAL_OFFSET_TABLE. It looks
like this refers to a switch table. It is  indexing into a jump table and jmping
to that label.

 2: Shld the value of [EMAIL PROTECTED] remain same for all machines for which 
 the same library/binary is compiled?
 3: Does the above mean that the GLOBAL_OFFSET_TABLE is not being populated 
 correctly ? If that is so, why would this be interix specific?

The Global Offset Table (GOT) is generated by the linker. But this is
specific to Elf
binaries. The PECOFF ABI does not define a GOT. Nor does it support
the relocation types R_386_GOTOFF and R_386_GOT32.

 4: I can see these offset's with objdump -D also, so I concluded that this 
 could not be a linker or loader issue but a compiler issue only. Which part 
 of gcc code should I refer for 

Re: how to convince someone about migrating from gcc-2.95 to gcc-3.x

2007-04-02 Thread ganesh subramonian
hi

if not for the real compiler as such, what advantages would i get on using 
newer glibc, libstdc++ ??
would these features be tied to some kernel version linux-2.4 vs 2.6 ( 
something like thread support).

thanks
ganesh

- Original Message 
From: Chris Lattner [EMAIL PROTECTED]
To: Joe Buck [EMAIL PROTECTED]
Cc: Marcin Dalecki [EMAIL PROTECTED]; Paul Brook [EMAIL PROTECTED]; 
gcc@gcc.gnu.org; Dave Korn [EMAIL PROTECTED]; ganesh subramonian [EMAIL 
PROTECTED]
Sent: Monday, April 2, 2007 11:32:43 AM
Subject: Re: how to convince someone about migrating from gcc-2.95 to gcc-3.x


On Apr 1, 2007, at 10:42 PM, Joe Buck wrote:

 On Sun, Apr 01, 2007 at 02:20:10PM +0200, Marcin Dalecki wrote:

 Wiadomość napisana w dniu 2007-04-01, o godz13:58, przez Paul  
 Brook:

 If you're already switching compilers, moving to an already
 obsolete release
 (3.3) seems a strange choice. At this point I'd recommend  
 skipping 3.x
 altogether and going straight to gcc4.1/4.2.

 Many of the improvements in c++ code generation were as a result of
 tree-ssa,
 you only get with 4.x.

 I wouldn't recommend it. One has to adapt gradually to the patience
 required to
 use the later compiler editions.

 No, one does not have to adapt gradually.  It is no harder to  
 switch from
 2.95 to 4.1.2 than it is to switch from 2.95 to 3.3.  Either way,  
 you'll
 have to get out a C++ book, learn C++, and recode your code in  
 actual C++.
 There will be some cases where going to 3.3 will require fewer  
 changes,
 but the majority of the work is going to have to be done anyway.

I believe the point being made was about compile times, not conformance.

-Chris




 

No need to miss a message. Get email on-the-go 
with Yahoo! Mail for Mobile. Get started.
http://mobile.yahoo.com/mail


Re: Extension for a throw-like C++ qualifier

2007-04-02 Thread Brendon Costa
I have for a while been working on a tool that performs static analysis
of exception propagation through C/C++ code. It is very close to
complete (I estimate the first release within the month).

Implementing static analysis of C++ exception propagation in g++ alone
is not really possible well at least not really feasible. The tool i
have been developing uses g++/gcc to obtain information about the code
so i can construct a complete pessimistic callgraph along with info
about exception usage, but it does not do it at compile time, rather it
has to perform the analysis at the equivalent to the linking stage to
get ALL the necessary information to construct this callgraph accurately.

The problem is for things like function pointers/virtual functions,
until you know exactly what code goes into a particular application you
can not be sure exactly what to expand the calls to. I.e. you will only
get a subset of possible calls from a single translation unit. To get
the full set of possible calls you need to look at ALL code that goes
into a particular application. (This becomes a nightmare to manage with
especially plugins and the like)

If ALL C++ code implemented a thing like in Java (Which i think is what
you are describing) where you can be guaranteed that a function only
throws certain exceptions and the compiler mandates this, then you can
achieve the same sort of results in a single translation unit, however
getting every project that uses C++ to adopt such techniques is just not
going to happen and without having all projects adopt this the usage
will become very difficult. I.e. you will either have to wrap the
function calls inside of try/catch blocks to meet the strict requirements.

Using something like that could be a nightmare... There would be catch
blocks all over the place that are used to filter out possible
exceptions from other peoples code that you just don't know if they are
going to occur. And what do you do if an exception does occur that you
were not expecting?

I think the idea is a great one. It works very well in Java. I still
dont understand why the C++ standard adopted the current throws()
mechanism (Who thought that terminating a program based on that
particular exceptoin condition that the compiler cant check for you was
a good idea? Hmm. I dont know a anyone who make use of the throws()
clauses very often unless they usually do throws() and do a catch all
and are not necessarily sure what exactly to do with what they caught
anyway) I think the whole mechanism comes from the history of the
language and so it has a semi-useful technique unlike Java where the
throws() clause works well.

I have written this application so that i can use the standard C++
mechanisms for indicating the exceptions that can occur, then i can run
my code through this tool and it will notify me of places where an
exception may occur that is contrary to what i have specified. This
means i can use the standard mechanisms and get the equivalent of a
compile error from my application when my assumptions are incorrect.
It basically assures me that I wont have my program terminate because of
this problem.


Anyhow, I could talk for a while about this... But if you are interested
more in this application then there is a partially complete website:

http://edoc.sourceforge.net/

As i said it is not yet complete but it is getting close. I will be
updating the website and the documentation again once i have completed
modifying the code. The only way to download the code at the moment is
from CVS and i would not recommend that just now. So it might be best to
wait and give it a try. You can read the rough manual for now to get
an idea of what EDoc++ can and cant do and how to use it.

I will hopefully be posting to this list later a shameless plug for this
application when it is all ready (I was going to ask the maintainer
first). I am interested in feedback on how it can be improved, but this
thread came up and i just could not pass the opportunity...

Brendon.

Sergio Giro wrote:
 Maybe that the option you suggest
 
 This is best
 done with something like -fstatic-exception-specifications or maybe -
 Wexception-specifications -Werror.
 
 is ideal, but it seems to me not practical at all. Every stuff using
 the throw qualifier as specified in the standards will not work. If an
 inline method in a standard header is
   theInlineMethod (void) throw () { throw theException(); };
 this will not even compile...
   Of course, using an extension as the one I propose, some of the
 standard methods must be wrapped if you want to use the new qualifier
 in order to track the possible exceptions that the methods may arise,
 but I think it is quite more practical to wrap such methods than to
 modify the headers...
   In addition, the semantic meaning is not the same: a
 throw (a,b,c)  qualifier indicates that you are able only to catch the
 exceptions a, b and c, and that every other exception will be seen as
 std::unexpected. 

Re: how to convince someone about migrating from gcc-2.95 to gcc-3.x

2007-04-02 Thread Benjamin Kosnik

 if not for the real compiler as such, what advantages would i get on
 using newer glibc, libstdc++ ??  would these features be tied to
 some kernel version linux-2.4 vs 2.6 ( something like thread
 support).

Let's step back a bit.

If you look at this page: 
http://gcc.gnu.org/releases.html

The age differences and new features between releases become clear
with some digging.

From this, one sees the inception dates for various gcc releases:

2.95.x == July 31, 1999
3.4.x == April 18, 2004
4.1.x == February 28, 2006

If you clink on the version name link (say GCC 4.1.0), you'll go to an
informative page (http://gcc.gnu.org/gcc-4.1/) that gives details on
the release series. Clicking on the link that says changes will give
you details about what changed in the GCC 4.1.0 release from the last
release.

Hopefully that makes answering this kind of question easier for you.

For your specific questions:

1) between gcc-2.95.x and gcc-3.2.x, libstdc++ has been completely
   replaced.  This new library is called libtdc++-v3 and implements
   the ISO standard. Noticeable differences between 2.95 are
   templatized iostreams, wide-character support, localization,
   namespace support, etc etc. Later versions include a Safe STL
   component in the libstdc++ debug mode, abstractions for threads,
   implementations for TR1, a performant std::string class in
   ext/__versa_string, various optimizing replacements for std::
   allocators, etc. etc.

2) between gcc-2.95.x and gcc-3.2.x, gcc-3.2.x to gcc-3.3.x, and
   gcc-3.3.x to gcc-3.4.x, the C++ ABI implemented by the g++ compiler
   changed. This has been changed to implement and industry-standard
   C++ ABI. This is advantageous to you because with this ABI, g++ and
   other compilers can now inter-operate (assuming you are using
   compatible libstdc++ versions.) Ie, you can use both g++ and
   non-GNU compilers to compile your application, or parts of your
   application.

3) between gcc-3.3.x and gcc-3.4.x, the C++ parser in g++ has been
   completely replaced. This results in clearer error messages, and
   faster, more correct parsing.

4) between gcc-3.4.x and gcc-4.0.x, the underlying optimizers for GCC
   have been replaced, moving to an SSA form. 

As you can see, there has been considerable change in compilers and
libraries in the almost 8 years since you changed tools.

I'd suggest you start moving to a new toolset, if only on an
experimental or provisional basis. Furthermore, I'd recommend a
strategy of trying to update your toolset every two years or so, in
order to spread out the work required to stay current with compilation
technology.

There will no doubt continue to be major advances in the C++ toolset
with the upcoming C++0x ISO standard. And there will no doubt also be
advances in language support (Open MP is added in gcc-4.2.x), and
optimizer efficiency.

best,
benjamin




Re: Gcc and gfortran installation on MacBook Pro

2007-04-02 Thread Aurélien Benoit-Lévy

Hi again,

Here is the err_make file.

Thanks,

Aurélien

2007/3/30, François-Xavier Coudert [EMAIL PROTECTED]:

 out_make is the output of the make. In fact it is the output of the
 make launch a second time. (To big otherwise.)

Yes, but it's missing the standard error file. Please use:
 make  out_make 2 err_make
or something similar.

FX



err_make
Description: Binary data


Re: Gcc and gfortran installation on MacBook Pro

2007-04-02 Thread Aurélien Benoit-Lévy

Hi,

I have no idea of what is a gcc-4.2 snapshot ?

Could you explain a bit.

Thanks,

Aurélien

2007/3/30, Mike Stump [EMAIL PROTECTED]:

On Mar 30, 2007, at 7:45 AM, Aurélien Benoit-Lévy wrote:
 Do you have any idea of what went wrong and any idea of what should
 I do ?

Hum, I'd be tempted to say, try a gcc-4.2 snapshot.  If it doesn't
work, we'll fix it for you.  :-)


Re: How can I get VRP information for an RTX?

2007-04-02 Thread Andrew Haley
Andrew Pinski writes:
  On 4/1/07, David Daney [EMAIL PROTECTED] wrote:
   The issue is that for some things (the java front-end) we need the
   trapping behavior.  I just want to optimize it if the divisor is known
   to be non-zero.  VRP knows, but by the time we generate the code it
   seems that we have forgotten.
  
  The java front-end as far as I know emits a functon call always for
  targets that don't trap on divide by zero.

I's sure David knows that.

  And as far as I know that is the x86 back-end which is the only
  target which traps really on divide by zero.

We have handlers for GNU/Linux on PPC, x86, MIPS, S/390, and x86-64.
For a while we didn't have a divide overflow handler on x86-64 because
I didn't think it was worthwhile, but to my amazement the divide
subroutine was taking up severeal percent of CPU time in real-world
code.  I think this is because divisions are used a lot to generate
hash indexes.

  It seems wrong that the java front-end thinks we don't have to use
  the divide subroutine for MIPS.  Really I think it is wrong that
  the mips back-end thinks it should enable by default trap on divide
  by zero.

I'm not sure about that: the MIPS conditional trap instruction is
quite efficient.  Before making any change we should do some
benchmarking.

Andrew.

-- 
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 
1TE, UK
Registered in England and Wales No. 3798903


Re: Gcc and gfortran installation on MacBook Pro

2007-04-02 Thread Andrew Haley
Aurélien Benoit-Lévy writes:

  I have no idea of what is a gcc-4.2 snapshot ?
  
  Could you explain a bit.

Why, instead, do you not simply go to http://gcc.gnu.org/ and follow
thw link marked snapshots?

Andrew.

-- 
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 
1TE, UK
Registered in England and Wales No. 3798903


Re: error: no newline at end of file

2007-04-02 Thread Manuel López-Ibáñez

On 01/04/07, Martin Michlmayr [EMAIL PROTECTED] wrote:

We have some real numbers about these new errors now.  I've compiled
the whole Debian archive in the last week for Gelato to test GCC 4.3
on IA64.  Out of just slightly under 7000 packages in Debian, we have
the following new failures:

missing newline: 42
error: xxx redefined: 33


Martin, are those programs compiled with -pedantic or -pedantic-errors enabled?

Cheers,

Manuel.


Re: error: no newline at end of file

2007-04-02 Thread Martin Michlmayr
* Manuel López-Ibáñez [EMAIL PROTECTED] [2007-04-02 12:58]:
 missing newline: 42
 error: xxx redefined: 33
 
 Martin, are those programs compiled with -pedantic or -pedantic-errors 
 enabled?

Nope.
-- 
Martin Michlmayr
http://www.cyrius.com/


Re: wide chars with 16 BITS_PER_UNIT

2007-04-02 Thread Thomas Gill
On Fri, Mar 30, 2007 at 09:52:22AM -0700, Richard Henderson wrote:

 I think the problem is that we've not told libcpp what the correct
 narrow character set is.  I suggest adding something like
 
   if (BITS_PER_UNIT = 32)
 cpp_opts-narrow_charset = BYTES_BIG_ENDIAN ? UTF-32BE : UTF-32LE;
   else if (BITS_PER_UNIT = 16)
 cpp_opts-narrow_charset = BYTES_BIG_ENDIAN ? UTF-16BE : UTF-16LE;
 

Ah! That seems to do the trick. I'm still getting problems with numeric
escapes, but I notice this comment in emit_numeric_escape:

 /* Note: this code does not handle the case where the target
and host have a different number of bits in a byte.  */

So my guess is that needs a fix too. I'm also seeing warnings from
character literals like:

 warning: character constant too long for its type

I should be able to chase this down too, though.


Thanks for the help,
Ned.


Re: error: no newline at end of file

2007-04-02 Thread Manuel López-Ibáñez

On 02/04/07, Martin Michlmayr [EMAIL PROTECTED] wrote:

* Manuel López-Ibáñez [EMAIL PROTECTED] [2007-04-02 12:58]:
 missing newline: 42
 error: xxx redefined: 33

 Martin, are those programs compiled with -pedantic or -pedantic-errors
 enabled?

Nope.


Then, if the warnings are not very useful but are mandated by the
standard, I think that the sensible thing is to make them conditional
on -pedantic. This way, people wanting strict diagnostics for
nonconformant code can get them, while people that don't care about it
don't need to suffer even a warning.

Just out of curiosity, does any of those programs use -Werror?

Thanks again,

Manuel.


Re: error: no newline at end of file

2007-04-02 Thread Martin Michlmayr
* Manuel López-Ibáñez [EMAIL PROTECTED] [2007-04-02 13:57]:
 Just out of curiosity, does any of those programs use -Werror?

No, otherwise the problems would have been found and fixed before.
Remember, there has always been a warning about this, but now it's an
error.
-- 
Martin Michlmayr
http://www.cyrius.com/


x86-64 -mcx16, picky __sync_val_compare_and_swap?

2007-04-02 Thread tbp

While doing (or trying to) some cleanup thanks to -mcx16, i've been a
bit surprised that
-- cut --
typedef int TItype __attribute__ ((mode (TI)));
TItype m_128;

void test(TItype x_128)
{
m_128 = __sync_val_compare_and_swap (m_128, x_128, m_128);
}

#include xmmintrin.h
typedef __m128i foo_t;
//typedef TItype foo_t;
foo_t foo;

void test2(foo_t x_128)
{
foo = __sync_val_compare_and_swap (foo, x_128, foo);
}

int main() { return 0; }
-- cut --

# /usr/local/gcc-4.3-20070323/bin/gcc -O2 -mcx16 xchg16.c -o xchg16
xchg16.c: In function 'test2':
xchg16.c:16: error: incompatible type for argument 1 of
'__sync_val_compare_and_swap'

# /usr/local/gcc-4.3-20070323/bin/gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc-4.3-20070323
--enable-languages=c++ --enable-threads=posix --with-system-zlib
--enable-__cxa_atexit --disable-checking --disable-nls
--disable-multilib --enable-bootstrap --with-gcc --with-gnu-as
--with-gnu-ld
Thread model: posix
gcc version 4.3.0 20070323 (experimental)

Am i just wrong believing that ought to work?


Re: error: no newline at end of file

2007-04-02 Thread Manuel López-Ibáñez

On 02/04/07, Martin Michlmayr [EMAIL PROTECTED] wrote:

* Manuel López-Ibáñez [EMAIL PROTECTED] [2007-04-02 13:57]:
 Just out of curiosity, does any of those programs use -Werror?

No, otherwise the problems would have been found and fixed before.
Remember, there has always been a warning about this, but now it's an
error.


Yes, you are right. Sorry, I forgot that Werror also affects pedwarns.

Cheers,

Manuel.


Re: How can I get VRP information for an RTX?

2007-04-02 Thread David Daney

Andrew Haley wrote:

Andrew Pinski writes:
  It seems wrong that the java front-end thinks we don't have to use
  the divide subroutine for MIPS.  Really I think it is wrong that
  the mips back-end thinks it should enable by default trap on divide
  by zero.

I'm not sure about that: the MIPS conditional trap instruction is
quite efficient.  Before making any change we should do some
benchmarking.



There are two issues:

1) Should the compiler generate a trap on division by zero?

As far as I can tell, most mips compilers can be configured to generate 
a trap on division by zero.  We should not remove this capability, just 
make it as efficient as possible.


2) Should the mips[el]-linux port of libgcj use trapping division?

The JLS requires that an exception be thrown on division by zero.  For 
the mips a division + conditional trap = 2 instructions and no 
branching.  Calling the special libgcj divide function executes at least 
4 times as many instructions and involves at least two jumps (call and 
return).  I am not going to benchmark it.  If you think there is a 
better way, you can benchmark it and report your findings.


David Daney


Re: Extension for a throw-like C++ qualifier

2007-04-02 Thread Mike Stump

On Apr 2, 2007, at 2:32 AM, Brendon Costa wrote:
I have for a while been working on a tool that performs static  
analysis


Ah, yeah, that I suspect would be a even better way to do this...   
Itt would be nice if gcc/g++ had more support for static analysis  
tools...  Maybe with LTO.


Re: x86-64 -mcx16, picky __sync_val_compare_and_swap?

2007-04-02 Thread Richard Henderson
On Mon, Apr 02, 2007 at 04:23:21PM +0200, tbp wrote:
 Am i just wrong believing that ought to work?

Yes.


r~


Re: how to convince someone about migrating from gcc-2.95 to gcc-3.x

2007-04-02 Thread Robert Dewar

Joe Buck wrote:


No, one does not have to adapt gradually.  It is no harder to switch from
2.95 to 4.1.2 than it is to switch from 2.95 to 3.3.  Either way, you'll
have to get out a C++ book, learn C++, and recode your code in actual C++.
There will be some cases where going to 3.3 will require fewer changes,
but the majority of the work is going to have to be done anyway.  And
4.1.x is much closer to what the textbooks say C++ is than 3.3 is.  Why
add to your pain?  Furthermore, if you find that your progress is hampered
by a bug in 3.3.x, no one is going to be interested in fixing it.


I agree with Joe here, migrating to 3.3.x is the worst of both worlds,
all the pain, and not all the gain!


Re: How can I get VRP information for an RTX?

2007-04-02 Thread Ian Lance Taylor
Andrew Pinski [EMAIL PROTECTED] writes:

 Maybe one of the MIPS maintainers can explain why this option exists
 in the first place.
 As far as I can tell this has option has existed before the egcs/gcc
 split.  I still say the back-end should not worry about this and
 divide by zero should always be declared as undefined.

The GNU compiler acts as it does because that is how the old MIPS and
SGI compilers acted.

Ian


RE: -Wswitch-enum and -Wswitch-default

2007-04-02 Thread Ching, Jimen \(US SSA\)
 Therefore, only -Wswitch is enabled by -Wall but neither of 
 Wswitch-default or Wswitch-enum are.

The statement for -Wall says:

-Wall
All of the above `-W' options combined. This enables all the warnings about 
constructions that some users consider questionable, and that are easy to avoid 
(or modify to prevent the warning), even in conjunction with macros. This also 
enables some language-specific warnings described in C++ Dialect Options and 
Objective-C and Objective-C++ Dialect Options. 

Note; a bunch of -W options has the sentence This warning is enabled by -Wall.
But there are a few that doesn't, but they are in the All of the above list.  
Perhaps
the description for -Wall shouldn't include All of the above '-W' options 
combined.
Or move the descriptions that doesn't include the This warning is enabled by 
-Wall
below the -Wall description.

It is confusing to read All of the above when it doesn't mean all of the 
above.

--jc


Re: -Wswitch-enum and -Wswitch-default

2007-04-02 Thread Manuel López-Ibáñez

On 02/04/07, Ching, Jimen  (US SSA) [EMAIL PROTECTED] wrote:

 Therefore, only -Wswitch is enabled by -Wall but neither of
 Wswitch-default or Wswitch-enum are.

Note; a bunch of -W options has the sentence This warning is enabled by -Wall.
But there are a few that doesn't, but they are in the All of the above list.  
Perhaps
the description for -Wall shouldn't include All of the above '-W' options 
combined.
Or move the descriptions that doesn't include the This warning is enabled by 
-Wall
below the -Wall description.



No, it shouldn't. I think it should include just a list of options
enabled by it á la -O1, -O2, etc.


It is confusing to read All of the above when it doesn't mean all of the 
above.


You are completely right.

Cheers,

Manuel.


Re: -Wswitch-enum and -Wswitch-default

2007-04-02 Thread Joe Buck
On Mon, Apr 02, 2007 at 09:34:39PM +0100, Manuel López-Ibáñez wrote:
 On 02/04/07, Ching, Jimen  (US SSA) [EMAIL PROTECTED] wrote:
  Therefore, only -Wswitch is enabled by -Wall but neither of
  Wswitch-default or Wswitch-enum are.
 
 Note; a bunch of -W options has the sentence This warning is enabled by 
 -Wall.
 But there are a few that doesn't, but they are in the All of the above 
 list.  Perhaps
 the description for -Wall shouldn't include All of the above '-W' options 
 combined.
 Or move the descriptions that doesn't include the This warning is enabled 
 by -Wall
 below the -Wall description.
 
 
 No, it shouldn't. I think it should include just a list of options
 enabled by it á la -O1, -O2, etc.
 
 It is confusing to read All of the above when it doesn't mean all of the 
 above.
 
 You are completely right.

If there are any options listed above -Wall that are not enabled by
-Wall, then this is a bug in the manual.


RFC: Enable __declspec for Linux/x86

2007-04-02 Thread H. J. Lu
Many x86 SSE source codes use __declspec. I'd like to make
__declspec available for Linux/x86. We can do one of the
following:

1. Define TARGET_DECLSPEC for Linux/x86.
2. Define TARGET_DECLSPEC for x86.
3. Add -mdeclspec.

Any comments?


H.J.


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Andrew Pinski

On 4/2/07, H. J. Lu [EMAIL PROTECTED] wrote:

Many x86 SSE source codes use __declspec. I'd like to make
__declspec available for Linux/x86. We can do one of the
following:


Do the following in the sources:
#ifndef __WIN32__
#define __declspec(x)
#endif

or in the makefiles:
Add -D__declspec(x)= to CFLAGS/CXXFLAGS.

There is nothing special that __declspec does for Linux really.

-- Pinski


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread H. J. Lu
On Mon, Apr 02, 2007 at 02:06:15PM -0700, Andrew Pinski wrote:
 On 4/2/07, H. J. Lu [EMAIL PROTECTED] wrote:
 Many x86 SSE source codes use __declspec. I'd like to make
 __declspec available for Linux/x86. We can do one of the
 following:
 
 Do the following in the sources:
 #ifndef __WIN32__
 #define __declspec(x)
 #endif
 
 or in the makefiles:
 Add -D__declspec(x)= to CFLAGS/CXXFLAGS.

It won't work with

__declspec(align(16)) double x [4];


H.J.


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Andrew Pinski

On 4/2/07, H. J. Lu [EMAIL PROTECTED] wrote:

It won't work with

__declspec(align(16)) double x [4];


And the code should be converted over to use GCC style attributes.
So really the code should be something like:

#ifndef __WIN32__
#define __align16  __attribute__((align(16) ))
#else
#define __align16 __declspec(align(16) )
#endif

And then use __align16 all the way through the code.  There is no
reason why GCC on Linux should be emulating MS's compiler.

-- Pinski


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Mike Stump

On Apr 2, 2007, at 2:03 PM, H. J. Lu wrote:

Many x86 SSE source codes use __declspec. I'd like to make
__declspec available for Linux/x86. We can do one of the
following:

1. Define TARGET_DECLSPEC for Linux/x86.
2. Define TARGET_DECLSPEC for x86.
3. Add -mdeclspec.

Any comments?


I suspect I'd want this for x86 darwin as well.


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Andrew Pinski

On 4/2/07, Mike Stump [EMAIL PROTECTED] wrote:


I suspect I'd want this for x86 darwin as well.


Why emulate Windows compilers on non windows machine?  That is wrong.
GCC for Linux/Darwin/any other OS besides Windows is not a Windows
compiler and should not act like one.  If people want to port their
code, they should write their code to be portable way instead of
depending on Windows or GCC stuff.

-- Pinski


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Andrew Pinski

On 4/2/07, Andrew Pinski [EMAIL PROTECTED] wrote:

Why emulate Windows compilers on non windows machine?  That is wrong.
GCC for Linux/Darwin/any other OS besides Windows is not a Windows
compiler and should not act like one.  If people want to port their
code, they should write their code to be portable way instead of
depending on Windows or GCC stuff.


I should make a mention this is most likely for the Cell (for both
sides PPC and SPU),  we actually define and document a way to do
aligned on variables (yes using GCC's attribute syntax) but this
documentation is generic to all compiler implementations and they have
to follow it.  I have not seen a documentation from Intel about this
or really any other intrinsics to explain how they are defined.

I wish Intel gets the message here and actually documents the
intrinsics and syntax, etc. for their vector extensions.

-- Pinski


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Steven Bosscher

On 4/2/07, Andrew Pinski [EMAIL PROTECTED] wrote:

On 4/2/07, Mike Stump [EMAIL PROTECTED] wrote:

 I suspect I'd want this for x86 darwin as well.

Why emulate Windows compilers on non windows machine?  That is wrong.
GCC for Linux/Darwin/any other OS besides Windows is not a Windows
compiler and should not act like one.  If people want to port their
code, they should write their code to be portable way instead of
depending on Windows or GCC stuff.


And what if whatever declspec is (I don't know) actually makes sense?

Don't be Windows is not 42.

Gr.
Steven


Re: VAX backend status

2007-04-02 Thread Toon Moene

Matt Thomas wrote:


For instance, gcc emits:

movab rpb,%r0
movab 100(%r0),%r1
cvtwl (%r1),%r0

but the movab 100(%r0),%r1 is completely unneeded, this should have
been emitted as:

movab rpb,%r0
cvtwl 100(%r0),%r0


Ah !  A clear case of all the world's a RISC syndrome.

--
Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.indiv.nluug.nl/~toon/
Who's working on GNU Fortran: 
http://gcc.gnu.org/ml/gcc/2007-01/msg00059.html


gcc-4.1-20070402 is now available

2007-04-02 Thread gccadmin
Snapshot gcc-4.1-20070402 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.1-20070402/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.1 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch 
revision 123435

You'll find:

gcc-4.1-20070402.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.1-20070402.tar.bz2 C front end and core compiler

gcc-ada-4.1-20070402.tar.bz2  Ada front end and runtime

gcc-fortran-4.1-20070402.tar.bz2  Fortran front end and runtime

gcc-g++-4.1-20070402.tar.bz2  C++ front end and runtime

gcc-java-4.1-20070402.tar.bz2 Java front end and runtime

gcc-objc-4.1-20070402.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.1-20070402.tar.bz2The GCC testsuite

Diffs from 4.1-20070326 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.1
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Re: VAX backend status

2007-04-02 Thread Andrew Pinski

On 4/2/07, Toon Moene [EMAIL PROTECTED] wrote:


Ah !  A clear case of all the world's a RISC syndrome.


Actually I think it is a case of CSE/frowprop not doing the correct
thing for the addressing modes.  So it might be the real problem is
the back-end's addressing mode cost are incorrect or just not doing
anything.  I really think you should debug this better and start with
4.3.0 with frowprop being there which does so much better with
addressing modes.


-- Pinski


Questions/Comments regarding my SoC application

2007-04-02 Thread Dennis Weyland

Hi!

I've applied for Google's Summer of Code 2007 with GCC as mentor 
organization. I want to make GCC working faster on the algorithmic 
level. I left out the detailed aims of the project, since i want to 
discuss them with gcc developers/mentors first. Do you have any 
suggestions what I should do? Are there any slow algorithms that should 
be replaced with high priority? Or shall i pick out the goals myself. 
But then I cannot estimate the expected time for finishing that project, 
I think you have a better overview in this case...


I hope you can help me! Thx a lot,
Dennis


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Joe Buck
On Mon, Apr 02, 2007 at 11:26:16PM +0200, Steven Bosscher wrote:
 On 4/2/07, Andrew Pinski [EMAIL PROTECTED] wrote:
 On 4/2/07, Mike Stump [EMAIL PROTECTED] wrote:
 
  I suspect I'd want this for x86 darwin as well.
 
 Why emulate Windows compilers on non windows machine?  That is wrong.
 GCC for Linux/Darwin/any other OS besides Windows is not a Windows
 compiler and should not act like one.  If people want to port their
 code, they should write their code to be portable way instead of
 depending on Windows or GCC stuff.
 
 And what if whatever declspec is (I don't know) actually makes sense?
 
 Don't be Windows is not 42.

If the Windows version of GCC has to recognize __declspec to function
as a hosted compiler on Windows, then the work already needs to be done
to implement it.  So what's the harm in allowing it on other platforms?
If it makes it easier for Windows programmers to move to free compilers
and OSes, isn't that something that should be supported?



Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Andrew Pinski

On 4/2/07, Joe Buck [EMAIL PROTECTED] wrote:

If the Windows version of GCC has to recognize __declspec to function
as a hosted compiler on Windows, then the work already needs to be done
to implement it.  So what's the harm in allowing it on other platforms?
If it makes it easier for Windows programmers to move to free compilers
and OSes, isn't that something that should be supported?


The only problem is that we have to be bug compatiable with all
__declspec issues and having no documentation is going to make this
harder.  This is why Intel/AMD really should define a real language
extension documentation for programming for SSE.

-- Pinski


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread H. J. Lu
On Mon, Apr 02, 2007 at 03:11:06PM -0700, Andrew Pinski wrote:
 On 4/2/07, Joe Buck [EMAIL PROTECTED] wrote:
 If the Windows version of GCC has to recognize __declspec to function
 as a hosted compiler on Windows, then the work already needs to be done
 to implement it.  So what's the harm in allowing it on other platforms?
 If it makes it easier for Windows programmers to move to free compilers
 and OSes, isn't that something that should be supported?
 
 The only problem is that we have to be bug compatiable with all
 __declspec issues and having no documentation is going to make this
 harder.  This is why Intel/AMD really should define a real language
 extension documentation for programming for SSE.

I believe __declspec in Intel C++ compiler comes from:

http://msdn2.microsoft.com/en-us/library/dabb5z75.aspx


H.J.


Re: x86-64 -mcx16, picky __sync_val_compare_and_swap?

2007-04-02 Thread tbp

On 4/2/07, Richard Henderson [EMAIL PROTECTED] wrote:

On Mon, Apr 02, 2007 at 04:23:21PM +0200, tbp wrote:
 Am i just wrong believing that ought to work?

Yes.

It's hard to argue with a terse compiler or maintainer. Perhaps i
should have picked an easier target like
http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html: GCC will
allow any integral scalar or pointer type that is 1, 2, 4 or 8 bytes
in length of which that TItype from the testsuite testcase is not.

In any case thanks for the clarification.


Re: RFC: Enable __declspec for Linux/x86

2007-04-02 Thread Andrew Pinski

On 4/2/07, H. J. Lu [EMAIL PROTECTED] wrote:

I believe __declspec in Intel C++ compiler comes from:

http://msdn2.microsoft.com/en-us/library/dabb5z75.aspx


How is Microsoft documentation, the real documentation for Intel C++
compiler?  Have you seen the Cell language extension document [1]?  We
document everything that is needed to be supported where does
Intel/AMD document those?  I have not seen a document like that for
SSE/3DNow programming at all.

In your patch, you forgot to document that you now accept __declspec
for all x86 targets and the extra attribute you now accept there.  The
documentation for align attribute should have in bold this is only for
__declspec.  You should also mention what __declspecs are supported
because right now you don't mention anything.

[1] 
http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/30B3520C93F437AB87257060006FFE5E
or
http://cell.scei.co.jp/pdf/Language_Extensions_for_CBEA_v23.pdf

-- Pinski


Re: x86-64 -mcx16, picky __sync_val_compare_and_swap?

2007-04-02 Thread Richard Henderson
On Tue, Apr 03, 2007 at 01:54:16AM +0200, tbp wrote:
  Am i just wrong believing that ought to work?
 
 Yes.
 It's hard to argue with a terse compiler or maintainer. Perhaps i
 should have picked an easier target like
 http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html: GCC will
 allow any integral scalar or pointer type that is 1, 2, 4 or 8 bytes
 in length of which that TItype from the testsuite testcase is not.

But __m128{,i,d} is a vector type, and it doesn't apply.


r~


libcc_s.so and libc.so curcular dependency on FreeBSD

2007-04-02 Thread Alexander Kabaev
Hi,

I am working on integrating GCC 4.1.x series into FreeBSD src/ tree.
I've been running with the new compiler on FreeBSD 7.0 for quite a while
now, but was hesitant to commit my changes because of a couple of
unsolved issues. I would really appreciate your input on the way to
overcome them.

One of the main goals for the upcoming compiler refresh in FreeBSD was
to start using shared libgcc_s.so.1, something we did not do before.
Ideally I want libgcc_s.so.1 built from FreeBSD src/ tree to be 100%
binary compatible with the library build from stock GCC sources as
checked out from FSF SVN repository. This is where the first problem
lies.

libgcc_s.so.1 depends on libc.so.1 (and libpthread.so) for symbols like
malloc, free, pthread_once, pthread_mutex_lock, etc.

libc in turn depends on libgcc_s.so.1 due to the default way exception
frame info information registration is implemented in FreeBSD.  Each
shared object is expected to issue calls to __register_frame_info and
__deregister_frame_info in its startup/shutdown code in order for
exception handlers to work across shared library boundaries.

This creates a dependency cycle that I need to break. The simplest way
to go appears to follow Linux's lead and eliminate the need for shared
modules to have explicit frame into registration calls at startup and
allow exception handling code to locate necessary info with the help of
dynamic loader using dl_iterate_phdr call. I went ahead and implemented
necessary code in FreeBSD's ld-elf.so.1 and with little changes in gcc
crtstuff.c and unwind-dw2-fde-glibc.c I was able to get things working.
I did not find any breakage yet and everything seems to run smoothly so
far.

I wonder if you could confirm that this is a good resolution for the
circular dependency issue or is there a better way. Since both libc and
libgcc_s will both have symbol version support turned on on them, I
cannot import the new compiler into FreeBSD until this dilemma is
solved in one way or another.

I also noticed that on Linux glibc implements some of the libgcc
symbols, namely _Unwind_Find_FDE and __register_frame_info_bases family
of functions. I wonder why it is done and if I missed something obvious
here.

I wonder if GCC team will be willing to accept gcc part of my changes
into mainstream sources if I submit a patch. What are chances of
something like this to be committed into not only trunk, but also GCC
4.1, 4.2 and 4.3 branches? FreeBSD 7.0 wants to ship with GCC 4.1, but
newer version is likely to be imported into trunk shortly after CVS is
branched for 7.0 release.

All I had to do is to extend checks for GLIBC 2.2.4 in above mentioned
GCC files to also check for suitable __FreeBSD_version__ and they
compile just fine. I also had to add Linux-compatible definition for
struct dl_phdr_info along with dl_iterate_phdr function prototype into
FreeBSD's link.h header file.

-- 
Alexander Kabaev


signature.asc
Description: PGP signature


[Bug libfortran/31052] [4.2 only] Bad IOSTAT values when readings NAMELISTs past EOF

2007-04-02 Thread anlauf at gmx dot de


--- Comment #41 from anlauf at gmx dot de  2007-04-02 08:42 ---
(In reply to comment #40)
 New Revision: 123404
 
 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123404
 Log:
 2007-04-01  Jerry DeLisle  [EMAIL PROTECTED]

Jerry,

thanks so far, but now I am back to the situation described
in comment #23.  I will try to produce a new reduced testcase
that leads to this crash in the next days.  I'd like to ask you
to keep this PR open for a few more days until we know whether
the other problem is related or unrelated to this PR.

Thanks,
-ha


-- 


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



[Bug fortran/31424] New: ICE involving transfer function, and passing function return to subroutine

2007-04-02 Thread drewmccormack at mac dot com
I get the following ICE:

test.f90: In function ‘MAIN__’:
test.f90:29: internal compiler error: in gfc_get_symbol_decl, at
fortran/trans-decl.c:877
Please submit a full bug report,


when compiling this code:


module InternalCompilerError

   type Byte
  private 
  character(len=1) :: singleByte
   end type

   type (Byte) :: BytesPrototype(1)

   type UserType
  real :: r
   end type

contains

   function UserTypeToBytes(user) result (bytes) 
  type(UserType) :: user 
  type(Byte) :: bytes(size(transfer(user, BytesPrototype)))
  bytes = transfer(user, BytesPrototype) 
   end function

   subroutine DoSomethingWithBytes(bytes)
  type(Byte), intent(in) :: bytes(:)
   end subroutine

end module


program main
   use InternalCompilerError
   type (UserType) :: user 

   ! The following line causes the ICE 
   call DoSomethingWithBytes( UserTypeToBytes(user) )

end program 


As indicated in the comments, the ICE is caused by the line passing a function
result to a subroutine.

Kind regards,
Drew


-- 
   Summary: ICE involving transfer function, and passing function
return to subroutine
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drewmccormack at mac dot com
 GCC build triplet: gcc version 4.3.0 20070325 (experimental)
GCC target triplet: powerpc-apple-darwin8


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



Re: gcc-3.4.6 and sh-unknown-linux-gnu build error

2007-04-02 Thread Andrew STUBBS

Motohisa Moriya wrote:

-#if defined (__SH3E__) || defined (__SH4__)
+#if defined (__SH4E__) || defined (__SH4__)


There's no such thing as an SH4E. There is an SH3E and it shares the 
same single-precision support as SH4, thus there are some places where I 
would expect to see such an #if.


I don't understand what your problem really is, but it isn't what you 
think it is.


Andrew


[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2007-04-02 Thread bkoz at redhat dot com


--- Comment #65 from bkoz at redhat dot com  2007-04-02 09:49 ---
Subject: Re:  __cplusplus defined to 1, should be 199711L


 Weird, when solaris is the easiest one.

That's certainly a matter of perspective.

 Based on Solaris 11 x86, I don't see a way for say cstdlib to have only the
 namespace std versions of functions, and not also the global scoped ones.
 
 #include iso/stdlib_iso.h
 
 (this is how sun studio compiler does it)
 If you also want the C99 functions, then you have to wait for the next c++
 standard to actually exist before solaris changes its headers accordingly.

Ah. Thanks for pointing this out to me.

Figuring out how to map these files correctly just for solaris will be 
interesting.

 My RFC message about C++0x headers had the details on my implementation 
 plan, 
 I think.
 
 Sorry for the dumb question, but where is it?

Sorry, I cannot find this at the moment. The plan is to correct the 
includes/c implementation.

-benjamin


-- 


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



RE: gcc-3.4.6 and sh-unknown-linux-gnu build error

2007-04-02 Thread Motohisa Moriya
Andrew STUBBS  wrote:

There's no such thing as an SH4E. There is an SH3E and it shares the 
same single-precision support as SH4, thus there are some places where I 
would expect to see such an #if.

It is said that the libgcc.a multi-library cannot be made because an impossible
register is referred for SH3 if I say easily. 
It is said that it makes an error of making the multi library in
sh-unknown-linux-gnu on the way so that the register definition of 2.4 factions
Linux may refer to an impossible combination for this because define is done
with SH4E and SH4. 
Therefore, if this patch is put away without recapitulating as --
target=sh-unknown-linux-gnu, it is sure to become an error. 
The header file was made here based on crosstools 0.84, and it succeeded in
making of all libraries since it had it of seeing the header file. 

It ..said extent alone.. is not thought that the SH architecture can be basic in
my understanding big endian and set little endian to the end. 
Endian is not seen on the linux side but the SH3 architecture or the SH4
architecture is not passed though the register for SH4 is referred when the
header file on the linux side sees the register of SH4 ..seeing... 
At least, only refer to SH4E SH4 when you see the register added with SH4 on the
linux side. 




[Bug c++/31164] Problem with GCC 4.1 and Boost signals

2007-04-02 Thread pluto at agmk dot net


--- Comment #4 from pluto at agmk dot net  2007-04-02 10:13 ---
attached testcase works fine with vs2k3/boost-1.33/stlport.
it also works with g++-4.0.0/20050519(RH 4.0.0-8)/boost/libstdc++
on x86_64-gnu-linux. in the other. indeed, it fails with 4.1.2
and 4.2.0 (4.3 not tested).


-- 


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



Re: gcc-3.4.6 and sh-unknown-linux-gnu build error

2007-04-02 Thread Andrew STUBBS

Motohisa Moriya wrote:

Andrew STUBBS  wrote:

There's no such thing as an SH4E. There is an SH3E and it shares the 
same single-precision support as SH4, thus there are some places where I 
would expect to see such an #if.


It is said that the libgcc.a multi-library cannot be made because an impossible
register is referred for SH3 if I say easily. 
It is said that it makes an error of making the multi library in

sh-unknown-linux-gnu on the way so that the register definition of 2.4 factions
Linux may refer to an impossible combination for this because define is done
with SH4E and SH4. 
Therefore, if this patch is put away without recapitulating as --
target=sh-unknown-linux-gnu, it is sure to become an error. 
The header file was made here based on crosstools 0.84, and it succeeded in
making of all libraries since it had it of seeing the header file. 


It ..said extent alone.. is not thought that the SH architecture can be basic in
my understanding big endian and set little endian to the end. 
Endian is not seen on the linux side but the SH3 architecture or the SH4

architecture is not passed though the register for SH4 is referred when the
header file on the linux side sees the register of SH4 ..seeing... 
At least, only refer to SH4E SH4 when you see the register added with SH4 on the
linux side. 


Sorry, I find this very hard to read. I think you found it very hard to 
write. :)


I do not say that the code is right. I say that changing SH3E to SH4E is 
wrong. It might be that completely removing SH3E is right. Perhaps the 
error is somewhere else.


Kaz, I don't know if you have already seen this message. Perhaps you can 
help Motohisa, both with the compiler and the language barrier?


Andrew


[Bug libstdc++/31413] FAIL: 22_locale/time_get/get_date/wchar_t/4.cc execution test

2007-04-02 Thread pcarlini at suse dot de


--- Comment #11 from pcarlini at suse dot de  2007-04-02 10:32 ---
Ok, therefore we cannot consider anymore the issue a libstdc++ issue.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug libstdc++/31401] string find behaves strange when searching from npos

2007-04-02 Thread paolo at gcc dot gnu dot org


--- Comment #5 from paolo at gcc dot gnu dot org  2007-04-02 11:09 ---
Subject: Bug 31401

Author: paolo
Date: Mon Apr  2 11:08:50 2007
New Revision: 123422

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123422
Log:
2007-04-02  Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/31401 (vstring bits)
* include/ext/vstring.tcc (find(const _CharT*, size_type,
size_type)): Avoid unsigned overflow.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/ext/vstring.tcc


-- 


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



[Bug libstdc++/31401] string find behaves strange when searching from npos

2007-04-02 Thread paolo at gcc dot gnu dot org


--- Comment #6 from paolo at gcc dot gnu dot org  2007-04-02 11:09 ---
Subject: Bug 31401

Author: paolo
Date: Mon Apr  2 11:09:07 2007
New Revision: 123423

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123423
Log:
2007-04-02  Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/31401 (vstring bits)
* include/ext/vstring.tcc (find(const _CharT*, size_type,
size_type)): Avoid unsigned overflow.

Modified:
branches/gcc-4_2-branch/libstdc++-v3/ChangeLog
branches/gcc-4_2-branch/libstdc++-v3/include/ext/vstring.tcc


-- 


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



[Bug libstdc++/31370] resizing bugs in std::vectorbool

2007-04-02 Thread paolo at gcc dot gnu dot org


--- Comment #9 from paolo at gcc dot gnu dot org  2007-04-02 11:16 ---
Subject: Bug 31370

Author: paolo
Date: Mon Apr  2 11:15:50 2007
New Revision: 123424

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123424
Log:
2007-04-02  Matthew Levine  [EMAIL PROTECTED]
Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/31370
* include/bits/stl_bvector.h (vectorbool::max_size): Fix.
(vectorbool::_M_check_len): Add.
* include/bits/vector.tcc (_M_fill_insert(iterator, size_type, bool),
_M_insert_range(iterator, _ForwardIterator, _ForwardIterator,
std::forward_iterator_tag), _M_insert_aux(iterator, bool)): Use it.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: New.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust.

* include/bits/stl_vector.h (vector::_M_check_len): Add.
* include/bits/vector.tcc (_M_insert_aux(iterator, const _Tp),
_M_fill_insert(iterator, size_type, const value_type),
_M_range_insert(iterator, _ForwardIterator, _ForwardIterator,
std::forward_iterator_tag)): Use it.

Added:
   
trunk/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_bvector.h
trunk/libstdc++-v3/include/bits/stl_vector.h
trunk/libstdc++-v3/include/bits/vector.tcc
trunk/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc


-- 


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



[Bug libstdc++/31370] resizing bugs in std::vectorbool

2007-04-02 Thread pcarlini at suse dot de


--- Comment #10 from pcarlini at suse dot de  2007-04-02 11:19 ---
Fixed for 4.3.0.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

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


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



[Bug fortran/31424] ICE involving transfer function, and passing function return to subroutine

2007-04-02 Thread pault at gcc dot gnu dot org


--- Comment #1 from pault at gcc dot gnu dot org  2007-04-02 11:33 ---
(In reply to comment #0)

 As indicated in the comments, the ICE is caused by the line passing a function

Sort of: In order to find out the size of the function result, gfortran
evaluates transfer(user, BytesPrototype). Since BytesPrototype is not
referenced in the main program, the ICE Results.  Strangely, if we do reference
BytesPrototype in MAIN, the program compiles but segfaults at run-time.  This
appears to be a double bug:)

A workaround that is neat and gives the correct result is:

module InternalCompilerError

   type Byte
  private 
  integer(1) :: singleByte
   end type

   type (Byte) :: BytesPrototype(1)

   type UserType
  real :: r
   end type

contains

   function UserTypeToBytes(user) result (bytes) 
  type(UserType) :: user 
  type(Byte) :: bytes(size_of_user (user))
  bytes = transfer(user, BytesPrototype) 
   end function

   subroutine DoSomethingWithBytes(bytes)
  type(Byte), intent(in) :: bytes(:)
  print *, bytes
   end subroutine

   pure integer function size_of_user ( arg )
  type(UserType), intent(in) :: arg
  size_of_user = size(transfer(arg, BytesPrototype))
   end function size_of_user
end module


program main
   use InternalCompilerError
   type (UserType) :: user = UserType (1.0)
   ! The following line causes the ICE 
   call DoSomethingWithBytes( UserTypeToBytes(user) )

end program 

Thanks for the report

Paul Thomas




-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-02 11:33:38
   date||


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



RE: gcc-3.4.6 and sh-unknown-linux-gnu build error

2007-04-02 Thread Motohisa Moriya
Andrew STUBBS wrote:
Sorry, I find this very hard to read. I think you found it very hard to 
write. :)
I do not say that the code is right. I say that changing SH3E to SH4E is 
wrong. It might be that completely removing SH3E is right. Perhaps the 
error is somewhere else.
Kaz, I don't know if you have already seen this message. Perhaps you can 
help Motohisa, both with the compiler and the language barrier?

Sorry. 
I am not good at English. 

I do not think that it is correct to detach SH3E. 

I transplanted linux to TMM-1000 and TMM-1200. 

I am wishing that all of SH2,SH2E, SH3, SH3E, SH4, and SH4E can be compiled with
sh-unknown-linux-gnu-gcc. 

Sorry Mr. Kojima. 




Re: gcc-3.4.6 and sh-unknown-linux-gnu build error

2007-04-02 Thread Andrew STUBBS

Motohisa Moriya wrote:

I am wishing that all of SH2,SH2E, SH3, SH3E, SH4, and SH4E can be compiled with
sh-unknown-linux-gnu-gcc. 


SH4E does not exist.

Perhaps you mean SH4A?


[Bug fortran/31424] ICE involving transfer function, and passing function return to subroutine

2007-04-02 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2007-04-02 12:51 ---
To my amazement, the brute force:

Index: gcc/fortran/trans-decl.c
===
*** gcc/fortran/trans-decl.c(révision 122688)
--- gcc/fortran/trans-decl.c(copie de travail)
*** gfc_get_symbol_decl (gfc_symbol * sym)
*** 874,879 
--- 874,880 
int byref;

gcc_assert (sym-attr.referenced
+|| sym-attr.use_assoc
 || sym-ns-proc_name-attr.if_source == IFSRC_IFBODY);

if (sym-ns  sym-ns-proc_name-attr.function)

fixes the problem. I have just set it regtesting.

Paul


-- 


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



[Bug libf2c/31425] New: gcc 3.4.6 and gcc 4.1.2 on HP 11.23 Itinium (ia64)URGENT

2007-04-02 Thread npawa at csc dot com
Hi All,

I am trying to compile cfengine. I was using gcc version 4.0.2 and was facing
an error. I found that the my problem is due to a bug that has been fixed and
in version 4.1 onwards.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26189

I rebuild it with gcc version 4.1.2 (binary available on
http://hpux.connect.org.uk/)

I recompiled, however the issue didnt go off.. 

--

I decided to build a lower version of gcc . Was able to build gcc-3.4.6 with
gnu binutils-2.14., flex and bison(latest GNU versions).
My machine does'nt  have yacc or lex. I ensured i have gnu make (2.18)too.

 I got a Warning message while compiling this gcc version as 

gcc -g -O2 -Wreturn-type -Wmissing-prototypes -Wuninitialized -D_REENTRANT
-pthread -g -O2 -I/home/soetest1/cfengine/db-install/include   -D_REENTRANT
-pthread -g -O2 -I/home/soetest1/cfengine/db-install/include
-L/home/soetest1/cfengine/db-install/lib
-L/home/soetest1/cfengine/openssl-install/lib   -L/opt/dce/lib -L/opt/dce/lib
-o cfshow  cfshow.o globals.o popen.o log.o errors.o filenames.o patches.o -ll
-ll -ldb -lcrypto -L../pub -lpub -lpthread -lm  -lc
ld: (Warning) Unsatisfied symbol yyleng in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yylenguc in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyinput in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyunput in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyolsp in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yytext in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyoutput in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yytextuc in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyextra in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyfnd in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyprevious in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yylex in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yylsp in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyout in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yylstate in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yytextarr in file /usr/lib/hpux32/libl.so
ld: (Warning) Unsatisfied symbol yyback in file /usr/lib/hpux32/libl.so
17 warnings.
--

I was able to compile cfengine with above however the binaries do not seem to
work and give me same error.

# /opt/soe/local/soe_cfengine/sbin/cfagent
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yylsp' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yyolsp' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yyfnd' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yytextuc' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yylenguc' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yylstate' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yyprevious' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yytextarr' in load module
'/usr/lib/hpux32/libl.so.1'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'yyextra' in load module
'/usr/lib/hpux32/libl.so.1'.
Killed



I noticed there is another bug raised and fixed in gcc version 3.4. 3

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

However it should not give me any issue with 3.4.6. why am I getting the same
error?

Please advice?

Neetee


-- 
   Summary: gcc 3.4.6 and gcc 4.1.2 on HP 11.23 Itinium (ia64)URGENT
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libf2c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: npawa at csc dot com


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



RE: gcc-3.4.6 and sh-unknown-linux-gnu build error

2007-04-02 Thread Motohisa Moriya
Andrew STUBBS wrote:

Perhaps you mean SH4A?

yes

Because my debian environment has crashed, -m option cannot be confirmed
Please point it out if the mistake is found in my idea. 

SH2A Core
SH2,SH3
SH4A Core
SH4

(SH5 is unknown)

Motohisa



Re: gcc-3.4.6 and sh-unknown-linux-gnu build error

2007-04-02 Thread Kaz Kojima
Hi Andrew,

Andrew STUBBS [EMAIL PROTECTED] wrote:
 I do not say that the code is right. I say that changing SH3E to SH4E is 
 wrong. It might be that completely removing SH3E is right. Perhaps the 
 error is somewhere else.
 
 Kaz, I don't know if you have already seen this message. Perhaps you can 
 help Motohisa, both with the compiler and the language barrier?

I've missed it.  Moriya-san, could you write your real problem
in japanese to me.

Regards,
kaz


[Bug libfortran/31052] [4.2 only] Bad IOSTAT values when readings NAMELISTs past EOF

2007-04-02 Thread jvdelisle at gcc dot gnu dot org


--- Comment #42 from jvdelisle at gcc dot gnu dot org  2007-04-02 14:35 
---
Will keep open until we get them all!.  Looks like I need another test case. :)


-- 


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



[Bug fortran/31213] ICE on valid code with gfortran

2007-04-02 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-04-02 14:43 ---
(In reply to comment #2)

 an ICE in the same place, but it appears it isn't fixed. Paul, since the
 previous PRs were really related, you might understand this one easily?

I had hoped so, but the problem here turns out to be in resolution.  I can fix
the reduced testcase but the original is still eluding me.

Paul


-- 


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



[Bug middle-end/30704] [4.2/4.3 Regression] Incorrect constant generation for long long

2007-04-02 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-02-05 19:43:22 |2007-04-02 14:58:41
   date||


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



[Bug libstdc++/31426] New: TR1 includes do not work with -std=c++0x

2007-04-02 Thread dgregor at gcc dot gnu dot org
When the compiler is provided with -std=c++0x to enable the experimental C++0x
mode, includes of TR1 facilities (e.g., tr1/tuple) do not put TR1 functionality
into namespace std::tr1, breaking backward compatibility. Here's an example
program that compiles without -std=c++0x but does not compile with it:

#include tr1/tuple

int main()
{
  std::tr1::tupleint, double x(17, 3.14);
  return 0;
}


-- 
   Summary: TR1 includes do not work with -std=c++0x
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dgregor at gcc dot gnu dot org


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



[Bug target/31380] [4.1/4.2]: Typo in gcc/config/i386/sse.md

2007-04-02 Thread hjl at gcc dot gnu dot org


--- Comment #3 from hjl at gcc dot gnu dot org  2007-04-02 15:54 ---
Subject: Bug 31380

Author: hjl
Date: Mon Apr  2 15:53:48 2007
New Revision: 123428

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123428
Log:
2007-04-02  H.J. Lu  [EMAIL PROTECTED]

* Backport from mainline:
2007-03-28  Grigory Zagorodnev [EMAIL PROTECTED]

PR target/31380
* config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.

Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/config/i386/sse.md


-- 


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



[Bug target/31380] [4.1/4.2]: Typo in gcc/config/i386/sse.md

2007-04-02 Thread hjl at gcc dot gnu dot org


--- Comment #4 from hjl at gcc dot gnu dot org  2007-04-02 15:55 ---
Subject: Bug 31380

Author: hjl
Date: Mon Apr  2 15:55:17 2007
New Revision: 123429

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123429
Log:
2007-04-02  H.J. Lu  [EMAIL PROTECTED]

* Backport from mainline:
2007-03-28  Grigory Zagorodnev [EMAIL PROTECTED]

PR target/31380
* config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.

Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/config/i386/sse.md


-- 


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



[Bug target/31380] [4.1/4.2]: Typo in gcc/config/i386/sse.md

2007-04-02 Thread hjl at lucon dot org


--- Comment #5 from hjl at lucon dot org  2007-04-02 15:57 ---
Fixed in gcc 4.1.3 and 4.2.0.


-- 

hjl at lucon dot org changed:

   What|Removed |Added

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


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



[Bug libstdc++/31426] TR1 includes do not work with -std=c++0x

2007-04-02 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-04-02 16:18 ---
isn't that a feature?


-- 


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



[Bug rtl-optimization/323] optimized code gives strange floating point results

2007-04-02 Thread bonzini at gnu dot org


--- Comment #94 from bonzini at gnu dot org  2007-04-02 16:20 ---
I think that Uros' patch to add a -mpc switch for precision control would fix
this.

The real fix would be to automatically insert fldcw instructions before
float/double operations, in order to limit the precision of the operations. 
But I think that it would kill speed even more than -ffloat-store.


-- 


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



[Bug fortran/31114] Consistent floating point arithmetic model option

2007-04-02 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2007-04-02 16:21 ---
Reopened...


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|DUPLICATE   |


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



[Bug fortran/31114] Consistent floating point arithmetic model option

2007-04-02 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2007-04-02 16:22 ---
... because GCC now has -mpc to limit precision for float/double operations. 
Even as far as x86 is concerned, this is a special case of PR323, and thus
I'm closing it as fixed.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

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


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



[Bug libstdc++/31426] TR1 includes do not work with -std=c++0x

2007-04-02 Thread dgregor at gcc dot gnu dot org


--- Comment #2 from dgregor at gcc dot gnu dot org  2007-04-02 16:32 ---
I don't think it is a feature. 

In C++0x mode, if one includes tuple, one should get std::tuple. That's what
the C++0x working paper says.

In any mode, if one includes tr1/tuple, one should get std::tr1::tuple.
That's what TR1 says (well, TR1 might say that you get std::tr1::tuple from
including tuple; different vendors have done different things, here). 

I don't think support for C++0x precludes support for TR1. They coexist very
well, especially because TR1 was designed to be compatible with C++0x. For
example, C++0x-conforming implementations of the TR1 facilities also meet the
requirements of TR1.


-- 


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



[Bug target/26792] [4.2 Regression] need to use autoconf when using newly-added libgcc functions

2007-04-02 Thread sje at cup dot hp dot com


--- Comment #31 from sje at cup dot hp dot com  2007-04-02 16:36 ---
When configuring with --with-system-libunwind, GCC should not include
unwind-compat.o (or any unwind code) in the build of libgcc_s.  Then the
configure check will work correctly.


-- 


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



[Bug fortran/31293] Implicit character and array returning functions

2007-04-02 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2007-04-02 16:38 ---
This fixes the problem and regtests:

Index: gcc/fortran/parse.c
===
*** gcc/fortran/parse.c (révision 123426)
--- gcc/fortran/parse.c (copie de travail)
*** static void
*** 2896,2901 
--- 2896,2902 
  parse_progunit (gfc_statement st)
  {
gfc_state_data *p;
+   gfc_symbol *proc = NULL;
int n;

st = parse_spec (st);
*** parse_progunit (gfc_statement st)
*** 2913,2918 
--- 2914,2940 

  default:
break;
+ }
+
+   proc = gfc_current_ns-proc_name;
+   if (gfc_current_state () == COMP_FUNCTION
+proc-attr.contained
+(proc-attr.implicit_type
+ || proc-result-ts.type == BT_UNKNOWN))
+ {
+   if (gfc_set_default_type (proc-result, 0, gfc_current_ns)
+   == SUCCESS)
+   {
+ if (proc-result != proc)
+   proc-ts = proc-result-ts;
+   }
+   else
+   {
+ gfc_error (unable to implicitly type the function result 
+'%s' at %L, proc-result-name,
+proc-result-declared_at);
+ proc-result-attr.untyped = 1;
+   }
  }

  loop:

It has the same behaviour as LF95, in respect of interface1.f90 - ie. no errors
or warnings, in respect of explcit typing being needed for the function.  This
is just a matter of getting the condition right. 


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-02 16:38:36
   date||


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



[Bug c++/31423] Improve upon invalid use of member (did you forget the '' ?)

2007-04-02 Thread bangerth at dealii dot org


--- Comment #1 from bangerth at dealii dot org  2007-04-02 17:09 ---
Confirmed.
W.


-- 

bangerth at dealii dot org changed:

   What|Removed |Added

 CC||bangerth at dealii dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-02 17:09:15
   date||


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



[Bug libstdc++/31426] TR1 includes do not work with -std=c++0x

2007-04-02 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2007-04-02 17:26 ---
Ah, I see.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-02 17:26:11
   date||


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



[Bug preprocessor/29851] Need to strip trailing slashes on include pathnames

2007-04-02 Thread eweddington at cso dot atmel dot com


--- Comment #3 from eweddington at cso dot atmel dot com  2007-04-02 17:41 
---
Can someone please commit this patch? I need this for mingw-hosted cross
toolchains.


-- 

eweddington at cso dot atmel dot com changed:

   What|Removed |Added

 CC||eweddington at cso dot atmel
   ||dot com


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



[Bug fortran/31067] MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)

2007-04-02 Thread tkoenig at gcc dot gnu dot org


--- Comment #14 from tkoenig at gcc dot gnu dot org  2007-04-02 17:44 
---
I'll give this another shot.

Maybe inlining isn't even necessary for good performance...


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |tkoenig at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-03-07 21:09:53 |2007-04-02 17:44:28
   date||


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



[Bug fortran/31427] New: When I compile the following program I get the message GNU MP: Cannot reallocate memory

2007-04-02 Thread michael dot a dot richmond at nasa dot gov
When I compile the following program I get the message GNU MP: Cannot
reallocate memory

PROGRAM test
INTEGER(KIND=1) :: i(1)
i = (/ TRANSFER(a, 0) /)
END PROGRAM test


-- 
   Summary: When I compile the following program I get the message
GNU MP: Cannot reallocate memory
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: michael dot a dot richmond at nasa dot gov


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



[Bug c++/31187] [4.2/4.3 regression] extern declaration of variable in anonymous namespace prevents use of its address as template argument

2007-04-02 Thread jason at gcc dot gnu dot org


--- Comment #7 from jason at gcc dot gnu dot org  2007-04-02 18:49 ---
Subject: Bug 31187

Author: jason
Date: Mon Apr  2 18:49:21 2007
New Revision: 123432

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123432
Log:
PR c++/31187
* typeck.c (cp_type_readonly): New fn.  
* cp-tree.h: Declare it.
* decl.c (start_decl): Set implicit DECL_THIS_STATIC here.  
(cp_finish_decl): Not here. 

* g++.dg/ext/visibility/anon3.C: New test.  

Added:
trunk/gcc/testsuite/g++.dg/ext/visibility/anon3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/31428] New: When I compile the following program I get the message GNU MP: Cannot reallocate memory

2007-04-02 Thread michael dot a dot richmond at nasa dot gov
When I compile the following program I get the message GNU MP: Cannot
reallocate memory

PROGRAM test
INTEGER(KIND=1) :: i(1)
i = (/ TRANSFER(a, 0) /)
END PROGRAM test


-- 
   Summary: When I compile the following program I get the message
GNU MP: Cannot reallocate memory
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: michael dot a dot richmond at nasa dot gov


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



[Bug fortran/31427] When I compile the following program I get the message GNU MP: Cannot reallocate memory

2007-04-02 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2007-04-02 19:06 ---
*** Bug 31428 has been marked as a duplicate of this bug. ***


-- 


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



[Bug fortran/31428] When I compile the following program I get the message GNU MP: Cannot reallocate memory

2007-04-02 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2007-04-02 19:06 ---


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


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c/31429] New: Is anybody monitoring the daily regression tests on Darwin 8.5?

2007-04-02 Thread dominiq at lps dot ens dot fr



-- 
   Summary: Is anybody monitoring the daily regression tests on
Darwin 8.5?
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr
GCC target triplet: powerpc-apple-darwin7


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



[Bug c/31430] New: Is anybody monitoring the daily regression tests on Darwin 8.5?

2007-04-02 Thread dominiq at lps dot ens dot fr
(~100) of regressions: gcc.c-torture/execute/builtins/memcpy-chk.c, ...,
gcc.c-torture/execute/built-in-setjmp.c. Looking at the list, I have found 
that this has started on 20070325 for Darwin8:

http://gcc.gnu.org/ml/gcc-testresults/2007-03/msg01225.html

Note that the errors are all of the following kind:

output is:
/var/tmp//cceFaqh1.s:2000:non-relocatable subtraction expression,
L006$pb minus LSJR191
/var/tmp//cceFaqh1.s:2000:symbol: LSJR191 can't be undefined in a subtraction
expression
...


-- 
   Summary: Is anybody monitoring the daily regression tests on
Darwin 8.5?
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr
GCC target triplet: powerpc-apple-darwin7


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



[Bug target/31429] [4.3 Regression] __builtin_setjmp/__builtin_longjmp is broken on ppc-darwin

2007-04-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-04-02 20:05 ---
This was caused by the conversion of l constaint to hard registers.  I sent a
patch to Andreas T. to test as I don't have an up todate sources on my
ppc-darwin machine that I use to test patches.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
  Component|c   |target
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-04-02 20:05:27
   date||
Summary|Is anybody monitoring the   |[4.3 Regression]
   |daily regression tests on   |__builtin_setjmp/__builtin_l
   |Darwin 8.5? |ongjmp is broken on ppc-
   ||darwin
   Target Milestone|--- |4.3.0


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



[Bug c/31430] Is anybody monitoring the daily regression tests on Darwin 8.5?

2007-04-02 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-04-02 20:05 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug target/31429] [4.3 Regression] __builtin_setjmp/__builtin_longjmp is broken on ppc-darwin

2007-04-02 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-04-02 20:05 ---
*** Bug 31430 has been marked as a duplicate of this bug. ***


-- 


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



[Bug fortran/31427] When I compile the following program I get the message GNU MP: Cannot reallocate memory

2007-04-02 Thread dfranke at gcc dot gnu dot org


--- Comment #2 from dfranke at gcc dot gnu dot org  2007-04-02 20:10 ---
Can confirm a crash in f951. Since there were quite a lot of TRANSFER related
reports lately, I can not tell if this a new one.

Backtrace:
Starting program:
/home/daniel/i686-pc-linux-gnu/gcc/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951 -g
-Wall 31427.f90

Program received signal SIGSEGV, Segmentation fault.
0xb7f36571 in __gmpn_copyi () from /usr/lib/libgmp.so.3
(gdb) bt
#0  0xb7f36571 in __gmpn_copyi () from /usr/lib/libgmp.so.3
#1  0xb7f238b4 in __gmpz_set () from /usr/lib/libgmp.so.3
#2  0x0804d9d6 in gfc_int2int (src=0x8894930, kind=1)
at ../../../gcc/gcc/fortran/arith.c:2006
#3  0x0809b1dd in gfc_convert_constant (e=0x8894758, type=BT_INTEGER, kind=1)
at ../../../gcc/gcc/fortran/simplify.c:4035
#4  0x08068134 in do_simplify (specific=0x888a3f8, e=0x8894898)
at ../../../gcc/gcc/fortran/intrinsic.c:3112
#5  0x08068305 in gfc_convert_type_warn (expr=0x8894898, ts=0x88945ac,
eflag=1, wflag=1) at ../../../gcc/gcc/fortran/intrinsic.c:3579
#6  0x08068578 in gfc_convert_type (expr=0x8894898, ts=0x88945ac, eflag=1)
at ../../../gcc/gcc/fortran/intrinsic.c:3491
#7  0x0809633f in resolve_code (code=value optimized out, ns=0x885a1e8)
at ../../../gcc/gcc/fortran/resolve.c:5163
#8  0x08097a24 in gfc_resolve (ns=0x885a1e8)
at ../../../gcc/gcc/fortran/resolve.c:7343
#9  0x0808c0ca in gfc_parse_file () at ../../../gcc/gcc/fortran/parse.c:3245
#10 0x080ab660 in gfc_be_parse_file (set_yydebug=0)
at ../../../gcc/gcc/fortran/f95-lang.c:305
#11 0x0830042d in toplev_main (argc=4, argv=0xbfd587f4)
at ../../../gcc/gcc/toplev.c:1050
#12 0x080ed162 in main (argc=49, argv=0xa000) at ../../../gcc/gcc/main.c:35


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||31237
  nThis||


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



[Bug c++/31187] [4.2/4.3 regression] extern declaration of variable in anonymous namespace prevents use of its address as template argument

2007-04-02 Thread jason at gcc dot gnu dot org


--- Comment #8 from jason at gcc dot gnu dot org  2007-04-02 20:12 ---
Subject: Bug 31187

Author: jason
Date: Mon Apr  2 20:12:15 2007
New Revision: 123434

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123434
Log:
PR c++/31187
* typeck.c (cp_type_readonly): New fn.  
* cp-tree.h: Declare it.
* decl.c (start_decl): Set implicit DECL_THIS_STATIC here.  
(cp_finish_decl): Not here. 

* g++.dg/ext/visibility/anon3.C: New test.  

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/ext/visibility/anon3.C
  - copied unchanged from r123432,
trunk/gcc/testsuite/g++.dg/ext/visibility/anon3.C
Modified:
branches/gcc-4_2-branch/gcc/cp/ChangeLog
branches/gcc-4_2-branch/gcc/cp/cp-tree.h
branches/gcc-4_2-branch/gcc/cp/decl.c
branches/gcc-4_2-branch/gcc/cp/typeck.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31431] New: [4.3 regression] ICE with invalid parameter pack

2007-04-02 Thread reichelt at gcc dot gnu dot org
The following (IMHO invalid) code snippet triggers an ICE on mainline:

===
templatetypename..., typename void foo();

void bar()
{
  fooint();
}
===

bug.cc: In function 'void bar()':
bug.cc:5: internal compiler error: tree check: expected class 'expression',
have 'type' (integer_type) in fn_type_unification, at cp/pt.c:11058
Please submit a full bug report, [etc.]

The slightly modified version below triggers a segfault:

===
templatetypename, typename..., typename void foo();

void bar()
{
  fooint();
}
===

bug.cc: In function 'void bar()':
bug.cc:5: internal compiler error: Segmentation fault
Please submit a full bug report, [etc.]

Doug, looks like fallout from your variadic template patch.

Btw., although it's not easter yet, I found a couple of more
variadic easter eggs. They should appear on bugzilla soon. ;-)


-- 
   Summary: [4.3 regression] ICE with invalid parameter pack
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/31431] [4.3 regression] ICE with invalid parameter pack

2007-04-02 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug c++/31432] New: [4.3 regression] ICE with invalid parameter pack for template struct

2007-04-02 Thread reichelt at gcc dot gnu dot org
More fallout from the variadic templates on mainline:

===
templatetypename..., typename struct A
{
  enum { N };
};

Aint,int a;
===

bug.cc:1: error: parameter pack 'template-parameter-1-1' must be at the end
of the template parameter list
bug.cc: In instantiation of 'Aint, int':
bug.cc:6:   instantiated from here
bug.cc:2: error: template argument 1 is invalid
bug.cc:2: error: template argument 1 is invalid
bug.cc:3: error: template argument 1 is invalid
bug.cc:3: error: template argument 1 is invalid
bug.cc:3: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in tsubst_decl, at cp/pt.c:7889
Please submit a full bug report, [etc.]

Btw, why do we have to emit error: template argument 1 is invalid
four times?


-- 
   Summary: [4.3 regression] ICE with invalid parameter pack for
template struct
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug fortran/31257] ICE in gfc_conv_expr_descriptor

2007-04-02 Thread dfranke at gcc dot gnu dot org


--- Comment #1 from dfranke at gcc dot gnu dot org  2007-04-02 20:27 ---
Adding this to TRANSFER meta-bug, as frame 3 in the backtrace indicates a
relation. No confirmation as I can not tell whether it is a dupe or not.

(gdb) bt
#0  fancy_abort (file=0x86e4fec ../../../gcc/gcc/fortran/trans-array.c,
line=4472, function=0x86e54c7 gfc_conv_expr_descriptor)
at ../../../gcc/gcc/diagnostic.c:656
#1  0x080baf5c in gfc_conv_expr_descriptor (se=0xbfa27ad4, expr=0x8894850,
ss=0x8895b80) at ../../../gcc/gcc/fortran/trans-array.c:4472
#2  0x080bc19f in gfc_conv_array_parameter (se=0xbfa27ad4, expr=0x8894850,
ss=0x8895b80, g77=1) at ../../../gcc/gcc/fortran/trans-array.c:4786
#3  0x080d68fa in gfc_conv_intrinsic_transfer (se=0xbfa281ec, expr=0x8894770)
at ../../../gcc/gcc/fortran/trans-intrinsic.c:3111
#4  0x080cc3c2 in gfc_conv_function_expr (se=0xbfa281ec, expr=0x8894850)
at ../../../gcc/gcc/fortran/trans-expr.c:2689
#5  0x080cc8e9 in gfc_conv_expr (se=0xbfa281ec, expr=0x8894770)
at ../../../gcc/gcc/fortran/trans-expr.c:3129
#6  0x080ce928 in gfc_trans_assignment (expr1=0x8894270, expr2=0x8894770,
init_flag=0 '\0') at ../../../gcc/gcc/fortran/trans-expr.c:3823
#7  0x080cf131 in gfc_trans_assign (code=0x8895af8)
at ../../../gcc/gcc/fortran/trans-expr.c:3985
#8  0x080b07dd in gfc_trans_code (code=0x8895af8)
at ../../../gcc/gcc/fortran/trans.c:473
#9  0x080c7d06 in gfc_generate_function_code (ns=0x885a1e8)
at ../../../gcc/gcc/fortran/trans-decl.c:3217
#10 0x0808c2b4 in gfc_parse_file () at ../../../gcc/gcc/fortran/parse.c:3261
#11 0x080ab660 in gfc_be_parse_file (set_yydebug=0)
at ../../../gcc/gcc/fortran/f95-lang.c:305
#12 0x0830042d in toplev_main (argc=4, argv=0xbfa284c4)
at ../../../gcc/gcc/toplev.c:1050
#13 0x080ed162 in main (argc=2, argv=0x6) at ../../../gcc/gcc/main.c:35


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||31237
  nThis||


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



[Bug c++/31432] [4.3 regression] ICE with invalid parameter pack for template struct

2007-04-02 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug c++/31433] New: [4.3 regression] ICE with invalid parameter pack for template struct

2007-04-02 Thread reichelt at gcc dot gnu dot org
More fallout from the variadic templates on mainline:

===
templatetypename..., typename struct A
{
  static int i;
};

Aint, int a;
Achar,int b;
===

bug.cc:1: error: parameter pack 'template-parameter-1-1' must be at the end
of the template parameter list
bug.cc: In instantiation of 'Aint, int':
bug.cc:6:   instantiated from here
bug.cc:2: error: template argument 1 is invalid
bug.cc:2: error: template argument 1 is invalid
bug.cc:3: error: template argument 1 is invalid
bug.cc: In instantiation of 'Achar, int':
bug.cc:7:   instantiated from here
bug.cc:2: error: template argument 1 is invalid
bug.cc:2: error: template argument 1 is invalid
bug.cc:3: error: template argument 1 is invalid
bug.cc:3: internal compiler error: in finish_member_declaration, at
cp/semantics.c:2270
Please submit a full bug report, [etc.]

This is very similar to PR31432, but needs two instantiations of
the template to trigger an ICE.


-- 
   Summary: [4.3 regression] ICE with invalid parameter pack for
template struct
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, error-recovery, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



[Bug c++/31433] [4.3 regression] ICE with invalid parameter pack for template struct

2007-04-02 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug c++/31434] New: [4.3 regression] ICE with invalid use of parameter pack in function arg

2007-04-02 Thread reichelt at gcc dot gnu dot org
More fallout from the variadic templates on mainline:

===
templatetypename... T void foo(const T...) {}

void bar()
{
  foo(0);
}
===

bug.cc: In function 'void foo(T ...) [with T = int]':
bug.cc:5:   instantiated from here
bug.cc:1: internal compiler error: tree check: expected tree_vec, have
error_mark in regenerate_decl_from_template, at cp/pt.c:13791
Please submit a full bug report, [etc.]

The code is (IMHO wrongfully) accepted if I replace the definition of foo by a
declaration.


-- 
   Summary: [4.3 regression] ICE with invalid use of parameter pack
in function arg
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code, accepts-invalid, monitored
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org


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



  1   2   >