Re: Release Schedule issues and doubts

2006-06-04 Thread Richard Sandiford
Andrew Pinski [EMAIL PROTECTED] writes:
 Now for the fix I have in mind (which might or might not work):

 If you are a maintainer of an area and you approve a patch which
 causes a regression in that new code, you have to fix it or have the
 person whos patch it was fix it or face losing your maintainer-ship if
 it is not handled 2 months after the regression was (openly) reported
 (which means either to the gcc email lists or to bugzilla).

 If the patch exposes a latent bug in some other code, the person who
 approved the code is let off the hook and maintainers of that area
 would be required to look into the problem if the patch's own is not
 able to figure out the fix.

 [snip]

 The other problem I see currently is not getting patches reviewed in a
 timely fashion but that is for a different email and it looks like it
 is getting fixed.

I think the two issues are closely related though.  One of the reasons
that it's difficult to get a patch reviewed is that, to be really
confident in a patch, a reviewer has to understand what every line does,
and be fairly sure that it's doing it in the right way.  Some of the
new feature patches that have been posted recently have been very big,
and must have taken the reviewers a long time to review.

Even if it's not intended that way, your proposal is probably going to
be interpreted at some stage as a way of punishing maintainers.  If by
accepting a patch, you take on the responsibility of organising fixes
for every problem that gets traced to that patch, there's going to be
even less incentive to review the thing in the first place.

Richard


Re: Expansion of __builtin_frame_address

2006-06-04 Thread Richard Sandiford
Mark Mitchell [EMAIL PROTECTED] writes:
 I'd suggest we leave backtrace() aside, and just talk about
 __builtin_frame_address(0), which does have well-defined semantics.
 _b_f_a(0) is currently broken on ARM, and we all agree we should fix it.

I don't want to fan the flames here, but I'm not sure either statement
is true.  Does __builtin_frame_address(0) really have well-defined
semantics on a target for which the ABI does not specify a frame layout?
I think that's Richard's point.

If I've understood the ARM case, then ARM is in the same boat as MIPS:
everything about the frame is an internal implementation detail.  I don't
think you can deference anything relative to __builtin_frame_address(0) on
MIPS and assume that it contains a particular value.

(Ironically, on MIPS, the soft frame pointer is if anything more stable
than the hard frame pointer.  The way things are set up in gcc, the soft
frame pointer always points to the bottom of the initial frame, whereas
in MIPS16 code, the hard frame pointer is offset from the soft frame
pointer by the size of the outgoing arguments.)

I'm probably going over old ground here, but:

The frame is the area on the stack which holds local variables and saved
registers.  The frame address is normally the address of the first word
pushed on to the stack by the function.  However, the exact definition
depends upon the processor and the calling convention.  If the processor
has a dedicated frame pointer register, and the function has a frame,
then @code{__builtin_frame_address} will return the value of the frame
pointer register.

doesn't seem very well-defined from a predictability point of view,
since a user cannot in general know if the function has a frame.
In some sense though, it argues that MarkS's patch isn't quite doing
what the documentation implies, since his patch effectively forces
_every_ caller of __builtin_frame_address to have a frame.

You can then argue about whether $30 on MIPS counts as the _processor_
having a dedicated frame pointer register.  I'd say no, but...

(FWIW, MIPS is also like ARM in that MIPS gcc uses a different hard
frame pointer -- $17 -- for MIPS16 code.)

Richard


Re: Release Schedule issues and doubts

2006-06-04 Thread Steven Bosscher

On 6/4/06, Richard Sandiford [EMAIL PROTECTED] wrote:

Even if it's not intended that way, your proposal is probably going to
be interpreted at some stage as a way of punishing maintainers.


And what is wrong with that?  Maybe it would help clean up the long
list of maintainers who don't actually do any maintenance.  Then, at
last, you get a more fair picture of the number of
reviewersmaintainers that we really have. Maybe it turns out that
patches don't get reviewed not because there are not enough
maintainers, but not enough _active_ maintainers.


 If by
accepting a patch, you take on the responsibility of organising fixes
for every problem that gets traced to that patch, there's going to be
even less incentive to review the thing in the first place.


With power comes responsibility.  If you can't handle the
responsibility, you shouldn't accept the power.  Being a maintainer of
some part of the compiler should be more than just being listed in
MAINTAINERS.

Gr.
Steven


TLS on windows (was: Re: Gfortran on Windows (mingw32) with OpenMP)

2006-06-04 Thread FX Coudert
[First, a warning: I'm neither an expert in TLS, nor in Windows nor  
in GCC guts



can we have chance to solve the
problem of threadprivate by adding the TLS support to
mingw32?


The support for TLS (Thread Local Storage) would probably come from  
the compiler itself. Windows has TLS (see for example http:// 
dotnet.di.unipi.it/Content/sscli/docs/doxygen/pal/localstorage_8c- 
source.html and http://www.ddj.com/dept/cpp/184403874, or the MSDN  
documentation at http://msdn.microsoft.com/library/default.asp?url=/ 
library/en-us/dllproc/base/tlsalloc.asp), so you'd only need to  
teach GCC how to call that.


Now, I don't have competence, time and motivation to do that. So, if  
my analysis above is correct, there are three things you can do: ask  
around here if someone is interested in this and is planning to do  
it; do it yourself, if you have the competence; find someone you  
know, that you have leverage on, to do it :)


Now, for an idea of how much work it represents... perhaps someone  
here can tell us?


FX


Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Wolfgang Mües
Hello Rask,

On Friday 02 June 2006 09:24, Rask Ingemann Lambertsen wrote:
 There may be a faster way of seeing if the modification is going to
 work for the DS at all. I noticed from the output template
 swp%?b\\t%1, %1, [%M0] that swp takes three operands. I don't
 know ARM assembler, but you may be able to choose to always clobber a
 specific register. Make it a fixed register (see FIXED_REGISTERS),
 refer to this register directly in the output template and don't add
 a clobber to the movqi patterns. IMHO, that's an acceptable hack at
 an experimental stage. If the resulting code runs correctly on the
 DS, you can then undo the FIXED_REGISTERS change and add the clobber
 statements.

I have tried this. No luck. Problem is the lack of addressing modes for 
the swp instruction. Only a simple pointer in a register (no offset, no 
auto-increment is allowed).

After reading most of the gcc rtl documentation (and forgetting way too 
much..) I came up to the following conclusion:

Splitting the insn

(define_insn *arm_movqi_insn
  [(set (match_operand:QI 0 nonimmediate_operand =r,r,r,m)
(match_operand:QI 1 general_operand rI,K,m,r))]

into 4 different insns:

(define_insn *arm_movqi_insn
  [(set (match_operand:QI 0 register_operand )
 (match_operand:QI 1 register_operand ))]

(define_insn *arm_movnqi_insn
  [(set (match_operand:QI 0 register_operand )
 (match_operand:QI 1 constant_operand ))]

(define_insn *arm_loadqi_insn
  [(set (match_operand:QI 0 register_operand )
 (match_operand:QI 1 memory_operand ))]

(define_insn *arm_storeqi_insn
  [(set (match_operand:QI 0 memory_operand )
 (match_operand:QI 1 register_operand ))]

This should give the same function as before, but I then I can do

(define_insn *arm_storeqi_insn
  [(set (match_operand:QI 0 simple_memory_operand )
 (match_operand:QI 1 register_operand ))]

etc

to limit the addressing modes of the store insn to the limits of the 
swpb instruction.

And then I can recode the 

(define_expand movqi
  [(set (match_operand:QI 0 general_operand )
(match_operand:QI 1 general_operand ))]

to cope with the movqi requirements defined in the gcc manual.

Hmmm... wondering who all these xxx_operand functions are defined, and 
where they are documented...

Is this the right way to go?

regards

Wolfgang
-- 
We're back to the times when men were men 
and wrote their own device drivers.

(Linus Torvalds)


Re: TLS on windows

2006-06-04 Thread Ross Ridge
FX Coudert wrote:
 Now, for an idea of how much work it represents... perhaps someone
here can tell us?

It's not too hard but it requires changing GCC and binutils, plus a
bit of library support.  In my implementation (more or less finished,
but I have had time to test it yet), I did the following:

- Used the existing __thread support in the front-end.  Silently
  ignore the ELF TLS models, because Windows only has one model.
- Added target specific (cygming) support for __attribute__((thread))
  aka __declspec(thread) for MSC compatibility.
- Created an legitimize_win32_tls_address() to replace
  legitimize_tls_address() in i386.c.  It outputs RTL like:
(set (reg:SI tp) (mem:SI (unspec [(const_int 44)] WIN32_TIB)))
(set (reg:SI index) (mem:SI (symbol_ref:SI __tls_index__)))
(set (reg:SI base) (mem:SI (add:SI (reg:SI tp)
   (mult:SI (reg:SI index)
(const_int 4)
(plus:SI (reg:SI base)
 (const:SI (unspec:SI [(symbol_ref:SI foo)]
  SECREL
- Handled the WIN32_TIB unspec by outputting %fs:44 and the
  SECREL unspec by outputting foo`SECREL.  I couldn't use
  [EMAIL PROTECTED] because @ is valid in identifiers with PECOFF.
- Support .tls sections in PECOFF by creating an
  i386_pe_select_section() based on the generic ELF version.
- Added an -mfiber-safe-tls target specific option that makes
  the references to the WIN32 TIB non-constant.
- Modified gas to handle foo`SECREL, based on the ELF support
  for @ relocations
- Fixed some problems with TLS handling in the PECOFF linker
  script
- Created an object file that defines the __tls_used structure
  (and thus the TLS directory entry) and __tls_index__.

Actually, the last one I haven't done yet.  I've just been using a linker
script to do that, but it should be in a library so the TLS directory
entry isn't created if the executable doesn't use TLS.

Ross Ridge



Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Paul Brook
On Sunday 04 June 2006 11:31, Wolfgang Mües wrote:
 Hello Rask,

 On Friday 02 June 2006 09:24, Rask Ingemann Lambertsen wrote:
  There may be a faster way of seeing if the modification is going to
  work for the DS at all. I noticed from the output template
  swp%?b\\t%1, %1, [%M0] that swp takes three operands. I don't
  know ARM assembler, but you may be able to choose to always clobber a
  specific register. Make it a fixed register (see FIXED_REGISTERS),
  refer to this register directly in the output template and don't add
  a clobber to the movqi patterns. IMHO, that's an acceptable hack at
  an experimental stage. If the resulting code runs correctly on the
  DS, you can then undo the FIXED_REGISTERS change and add the clobber
  statements.

 I have tried this. No luck. Problem is the lack of addressing modes for
 the swp instruction. Only a simple pointer in a register (no offset, no
 auto-increment is allowed).

 After reading most of the gcc rtl documentation (and forgetting way too
 much..) I came up to the following conclusion:

 Splitting the insn

 (define_insn *arm_movqi_insn
   [(set (match_operand:QI 0 nonimmediate_operand =r,r,r,m)
   (match_operand:QI 1 general_operand rI,K,m,r))]

 into 4 different insns:

No. This is completely the wrong approach. You should just change the valid 
QImode memory addresses, adding a new constraint if neccessary. You also need 
to tweak the reload legitimate address bits to obey the new restrictions.

For the record these hacks are unlikely to ever be acceptable in mainline gcc. 
They're relatively invasive changes who's only purpose is to support 
fundamentally broken hardware.

Paul


Re: Release Schedule issues and doubts

2006-06-04 Thread Gerald Pfeifer
On Sun, 4 Jun 2006, Steven Bosscher wrote:
 Maybe it would help clean up the long list of maintainers who don't 
 actually do any maintenance.  Then, at last, you get a more fair
 picture of the number of reviewersmaintainers that we really have.

Agreed.  It will provide a clearer picture at least, though it won't
solve the problem per se.

(Among maintainers of specific parts, I think there aren't too many
not doing anything about those parts.  Write after approval is another
story -- I guess we have at least a dozen of nominal members -- and
global write does not necessarily reflect reality, either.)

 With power comes responsibility.  If you can't handle the 
 responsibility, you shouldn't accept the power.  Being a maintainer
 of some part of the compiler should be more than just being listed
 in MAINTAINERS.

If think nobody will disagree with the second sentence.

However, we should account for periods of inactivity and reduced
activity caused by personal issues, employer changes, illness,
whatever.

Other projects have a certain period of time (one year, eighteen months)
after which inactive contributors are contacted and eventually purged,
and I think we should do something similar.


Also, when we talk about responsibility, let's be careful not to demand
too much: just because someone is listed as a maintainer for foo, does
not means her or she shall be responsible for each and every patch or
bug in that area.  

Even fixing one bug a month and reviewing one patch a month is an
important contribution.  If this is not sufficient in a specific
area, we need to try and get additional maintainers, not alienate
existing ones.

Gerald


Re: TLS on windows (was: Re: Gfortran on Windows (mingw32) with OpenMP)

2006-06-04 Thread Piotr Wyderski

FX Coudert wrote:

The support for TLS (Thread Local Storage) would probably come from  
the compiler itself. Windows has TLS (see for example http:// 
dotnet.di.unipi.it/Content/sscli/docs/doxygen/pal/localstorage_8c- 
source.html and http://www.ddj.com/dept/cpp/184403874, or the MSDN  
documentation at http://msdn.microsoft.com/library/default.asp?url=/ 
library/en-us/dllproc/base/tlsalloc.asp), so you'd only need to  
teach GCC how to call that.


fs:[0x14] is a per-thread 32-bit word available for applications,
so you can store a pointer to your own TLS array there. 
fs:[0x2c] points to a Windows-specific TLS array, so you can

make use of it, too, but you must conform to the limitations of
the WinAPI constraints related with TLS management. IMO the
best would be the offset 0x14 + a custom design of TLSes (BTW,
it must be extremely fast! Many applications get their TLS values
very often).

Now, for an idea of how much work it represents... perhaps someone  
here can tell us?


I don't know much about GCC internals, but I use my own
implementation based on inline assembly and the implementation
took, hm, 20 minutes?
   
   Best regards

   Piotr Wyderski



Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Wolfgang Mües
Paul,

On Sunday 04 June 2006 13:24, Paul Brook wrote:
 On Sunday 04 June 2006 11:31, Wolfgang Mües wrote:
  Splitting the insn
 
  (define_insn *arm_movqi_insn
[(set (match_operand:QI 0 nonimmediate_operand =r,r,r,m)
  (match_operand:QI 1 general_operand rI,K,m,r))]
 
  into 4 different insns:

 No. This is completely the wrong approach.

Why? I am learning.

 You should just change the valid QImode memory addresses, adding a new 
 constraint if neccessary. 

H... I have tried this. I have changed the operand constraint from 
m to Q. But these constraints are only used to select the right 
alternative inside the insn, not which insn is invoked. It might be 
possible to modify nonimmediate_operand
into something else, to select this insn only if the address is fitting 
in a single register, without offset or increment.

But this will not give me the freedom to allocate a temporary register. 
According to the manual, mov insns are not supposed to clobber a 
register. I suppose I will have to allocate these registers in 

(define_expand movqi
  [(set (match_operand:QI 0 general_operand )
(match_operand:QI 1 general_operand ))]

So I have to narrow down the constraint nonimmediate_operand, so that 
every memory address not fitting in a single register will not invoke 
arm_movqi_insn.

Please correct me if I'm wrong. This is my first encounter with the 
inner contents of gcc. I may have completely missed your point.

 You also need to tweak the reload legitimate address bits to obey the
 new restrictions.

Can you show me what you mean here? What to do where?

 For the record these hacks are unlikely to ever be acceptable in
 mainline gcc. They're relatively invasive changes who's only purpose
 is to support fundamentally broken hardware.

Paul, this is clear to me. Homebrew software on the DS is not so 
important to justify such a change in mainline gcc. A patch will be 
fine.

Its a big amount of - sometimes frustrating - work for a gcc newbie to 
make this change. I am doing this only because I know it's the only 
solution, and to turn the command line only DS linux into some nice 
PDA/browser/wireless client machine.

regards

Wolfgang

-- 
We're back to the times when men were men 
and wrote their own device drivers.

(Linus Torvalds)


Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Paul Brook
On Sunday 04 June 2006 16:26, Wolfgang Mües wrote:
 Paul,

 On Sunday 04 June 2006 13:24, Paul Brook wrote:
  On Sunday 04 June 2006 11:31, Wolfgang Mües wrote:
   Splitting the insn
  
   (define_insn *arm_movqi_insn
 [(set (match_operand:QI 0 nonimmediate_operand =r,r,r,m)
 (match_operand:QI 1 general_operand rI,K,m,r))]
  
   into 4 different insns:
 
  No. This is completely the wrong approach.

 Why? I am learning.

Because then you have several different patterns for the same operation.
The different variants of movsi should be part of the same pattern so that the 
compiler can change its mind which variant it wants to use.

  You should just change the valid QImode memory addresses, adding a new
  constraint if neccessary.

 H... I have tried this. I have changed the operand constraint from
 m to Q. But these constraints are only used to select the right
 alternative inside the insn, not which insn is invoked. It might be
 possible to modify nonimmediate_operand
 into something else, to select this insn only if the address is fitting
 in a single register, without offset or increment.

 But this will not give me the freedom to allocate a temporary register.
 According to the manual, mov insns are not supposed to clobber a
 register. I suppose I will have to allocate these registers in

 (define_expand movqi
   [(set (match_operand:QI 0 general_operand )
 (match_operand:QI 1 general_operand ))]

 So I have to narrow down the constraint nonimmediate_operand, so that
 every memory address not fitting in a single register will not invoke
 arm_movqi_insn.

You're confusing constraints and predicates. general_operand is the predicate.
The predicate says under which conditions the insn will match.
The constraints tell regalooc/reload how to make sure the operands of the 
instruction are valid.

To simplify greatly the predicates are used for pattern matching during early 
RTL generation and the constraints are used in the later regalloc/reload 
stages.

Tightening the predicates isn't sufficient (and may not even be neccessary). 
You need to set the constraints so that the compiler knows *how* to fix 
invalid instructions.

The compilcation is that while constraints give sufficient information for the 
compiler to generate correct code they don't help generating good code.  
There are often non-obvious target specific ways of reloading invalid 
addresses. So reload has additional hooks (eg. GO_IF_LEGITIMATE_ADDRESS) to 
provice clever ways of fixing invalid operands. Generally speaking it's up to 
the target backend to make sure the code generated by these satisfies the 
appropriate constraints, and gcc will ICE if they aren't consistent.

I'm afraid I can't really be more specific that this. That would require me 
implementing your changes and figuring out what's going wrong.

Paul


Re: Expansion of __builtin_frame_address

2006-06-04 Thread Mark Mitchell
Richard Sandiford wrote:
 Mark Mitchell [EMAIL PROTECTED] writes:
 I'd suggest we leave backtrace() aside, and just talk about
 __builtin_frame_address(0), which does have well-defined semantics.
 _b_f_a(0) is currently broken on ARM, and we all agree we should fix it.
 
 I don't want to fan the flames here, but I'm not sure either statement
 is true.  Does __builtin_frame_address(0) really have well-defined
 semantics on a target for which the ABI does not specify a frame layout?
 I think that's Richard's point.

Thanks for explaining; after the latest messages from you and Richard
E., I understand the ARM doesn't have a standard frame layout.  I had
not realized that before.  However, even though there's not an ARM ABI
layout, if GCC uses a standard layout, then it would make sense for
_b_f_a(0) to return a pointer to that frame.  (_b_f_a(0) is a GCC
extension, so it can have a GCC-specific definition.)

If even that condition does not hold, then I agree that _b_f_a(0) should
just have undefined behavior on ARM.  We might even consider making it
an error to use it.  We should document in the manual that you can't use
_b_f_a(0) on reliably on some architectures.

If, however, there are plausible semantics we like for _b_f_a(0) on ARM,
then it doesn't seem to me that we should worry terribly much about
pessimizing the code by requiring a hard frame pointer.  Of course, it
would be better not to do so -- but if the only functions affected are
those that actually call _b_f_a(0), I doubt we'd be able to measure a
change in any real-world program.

Richard E. asked what possible uses this function might have.
Obviously, GLIBC's backtrace() function is one, though I guess that's a
weak example, in that we all agree one should really be using unwind
information.  (I still think it's somewhat valid, in that there are a
lot of people building GCC-only applications, and if backtrace() worked
in that case, it would be better than not working at all.)  The other
examples I can think of are also odd hacks; for example, checking for
stack overwrites, manually poking ones own return address pointer, or
manually grabbing saved registers from a caller, or some such.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: Release Schedule issues and doubts

2006-06-04 Thread Mike Stump

On Jun 4, 2006, at 2:08 AM, Steven Bosscher wrote:

On 6/4/06, Richard Sandiford [EMAIL PROTECTED] wrote:
Even if it's not intended that way, your proposal is probably  
going to

be interpreted at some stage as a way of punishing maintainers.


And what is wrong with that?


I have a different take...  I think people should be responsible for  
the patches they put in, and that means that in general, they should  
work on bugs and regressions in those patches before going off on fun  
new work.  This, if we wanted, could be enforced by accepting patches  
to fix regressions before accepting (any) other work by that person.   
This transfers responsibility from the person that approved the work,  
which, I'd rather not see in general, as it can discourage patch  
review, to the person doing the work.  We can also have this as an  
optional sign me up for more responsibility type of declaration by  
patch submitters.  I'm happy to fix regressions my patches cause, I  
consider it my obligation.


With regressions fixed sooner, we then might be able to engineer a  
situation in which Mark isn't saddled with hundreds of bug fixes for  
regressions, well, unless he caused them all.  :-)  Maybe we could  
even ditch some of the stageness we presently do.


This employs the standard motivation for work, the acceptance of a  
patch or not, instead of trying to use bullying tactics, we're gonna  
revoke your privilege, or other such mechanisms, which, I don't think  
increases the fun.


Re: Expansion of __builtin_frame_address

2006-06-04 Thread Daniel Jacobowitz
On Sun, Jun 04, 2006 at 09:54:25AM -0700, Mark Mitchell wrote:
 Richard E. asked what possible uses this function might have.
 Obviously, GLIBC's backtrace() function is one, though I guess that's a
 weak example, in that we all agree one should really be using unwind
 information.

Which there is no plausible way to do for the ARM EABI, due to ARM's
other choices.

-- 
Daniel Jacobowitz
CodeSourcery


Re: Expansion of __builtin_frame_address

2006-06-04 Thread Mark Mitchell
Daniel Jacobowitz wrote:
 On Sun, Jun 04, 2006 at 09:54:25AM -0700, Mark Mitchell wrote:
 Richard E. asked what possible uses this function might have.
 Obviously, GLIBC's backtrace() function is one, though I guess that's a
 weak example, in that we all agree one should really be using unwind
 information.
 
 Which there is no plausible way to do for the ARM EABI, due to ARM's
 other choices.

If one compiled everything with -fexceptions, could you then use the ARM
 ABI EH unwind stuff?  Or, is there just no way to do this in the ARM EABI?

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


MAPPED_LOCATION update

2006-06-04 Thread Per Bothner

I checked in a couple of patches, so now most front-ends work
more-or-less (i.e with some but not a large number of regressions).

The Java front-end compiles but fails to run, so bootstrapping fails if
java is enabled. I haven't looked into it.  This is a regression -
it used to work.  If the problem is specific to compiling from source,
that may reduce its importance, if it's in code that will be replaced
by ecj.

I have two tentative volunteers to help finish MAPPED_LOCATION.
Steven Bosscher hopes to find time to work on save/restore of the
line-map table. Ben Elliston will take a look at the other
(non-pch-related) regressions.  We all have too many things on our
plates, so if someone else would like to pitch in, just let us know.
--
--Per Bothner
[EMAIL PROTECTED]   http://per.bothner.com/


Re: Expansion of __builtin_frame_address

2006-06-04 Thread Daniel Jacobowitz
On Sun, Jun 04, 2006 at 10:29:14AM -0700, Mark Mitchell wrote:
 Daniel Jacobowitz wrote:
  On Sun, Jun 04, 2006 at 09:54:25AM -0700, Mark Mitchell wrote:
  Richard E. asked what possible uses this function might have.
  Obviously, GLIBC's backtrace() function is one, though I guess that's a
  weak example, in that we all agree one should really be using unwind
  information.
  
  Which there is no plausible way to do for the ARM EABI, due to ARM's
  other choices.
 
 If one compiled everything with -fexceptions, could you then use the ARM
  ABI EH unwind stuff?  Or, is there just no way to do this in the ARM EABI?

The DWARF unwinding tables are descriptive; you can interpret them
however necessary, for unwinding or for backtraces.  But the ARM
unwinding tables are more opaque.  You have to call the personality
routines in order to do anything.  I don't believe there's a way to get
runtime backtraces from them, reliably.

It might be possible to implement _Unwind_Backtrace, but it also might
require additional changes similar to those we needed for forced
unwind.

-- 
Daniel Jacobowitz
CodeSourcery


Re: Expansion of __builtin_frame_address

2006-06-04 Thread Mark Mitchell
Daniel Jacobowitz wrote:
 On Sun, Jun 04, 2006 at 10:29:14AM -0700, Mark Mitchell wrote:
 Daniel Jacobowitz wrote:
 On Sun, Jun 04, 2006 at 09:54:25AM -0700, Mark Mitchell wrote:
 Richard E. asked what possible uses this function might have.
 Obviously, GLIBC's backtrace() function is one, though I guess that's a
 weak example, in that we all agree one should really be using unwind
 information.
 Which there is no plausible way to do for the ARM EABI, due to ARM's
 other choices.
 If one compiled everything with -fexceptions, could you then use the ARM
  ABI EH unwind stuff?  Or, is there just no way to do this in the ARM EABI?
 
 The DWARF unwinding tables are descriptive; you can interpret them
 however necessary, for unwinding or for backtraces.  But the ARM
 unwinding tables are more opaque. 

In that case, I guess the only open question is whether _b_f_a(0) has a
sensible GCC-specific meaning, or whether we should just declare it
invalid/undefined on ARM.

Thanks,

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: [Bug middle-end/27590] [4.1/4.2 Regression] ICE when compiling catalina.jar from tomcat 5.0.30

2006-06-04 Thread Andrew Haley
mmitchel at gcc dot gnu dot org writes:
  
  
  --- Comment #8 from mmitchel at gcc dot gnu dot org  2006-06-04 19:02 
  ---
  Java is not release critical.

I protest.  This is not a Java bug but an exception handling bug.  

The simple fact that the test case for this bug is written in Java
should not disqualify this bug from being release-critical because it
potentially affects other languages too.

I have already submitted a patch.

Andrew.


Re: [Bug middle-end/27590] [4.1/4.2 Regression] ICE when compiling catalina.jar from tomcat 5.0.30

2006-06-04 Thread Mark Mitchell
Andrew Haley wrote:
 mmitchel at gcc dot gnu dot org writes:
   
   
   --- Comment #8 from mmitchel at gcc dot gnu dot org  2006-06-04 19:02 
 ---
   Java is not release critical.
 
 I protest.  This is not a Java bug but an exception handling bug.  

Do you have a C++ test-case?

I'm all for fixing the bug and there's plenty of time to get this into
GCC 4.2.  So, don't think this means that this bug can't be fixed; it
just means I wouldn't hold up the release for it, at this point.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: Expansion of __builtin_frame_address

2006-06-04 Thread Richard Sandiford
Mark Mitchell [EMAIL PROTECTED] writes:
 Richard Sandiford wrote:
 Mark Mitchell [EMAIL PROTECTED] writes:
 I'd suggest we leave backtrace() aside, and just talk about
 __builtin_frame_address(0), which does have well-defined semantics.
 _b_f_a(0) is currently broken on ARM, and we all agree we should fix it.
 
 I don't want to fan the flames here, but I'm not sure either statement
 is true.  Does __builtin_frame_address(0) really have well-defined
 semantics on a target for which the ABI does not specify a frame layout?
 I think that's Richard's point.

 Thanks for explaining; after the latest messages from you and Richard
 E., I understand the ARM doesn't have a standard frame layout.  I had
 not realized that before.  However, even though there's not an ARM ABI
 layout, if GCC uses a standard layout, then it would make sense for
 _b_f_a(0) to return a pointer to that frame.  (_b_f_a(0) is a GCC
 extension, so it can have a GCC-specific definition.)

 If even that condition does not hold, then I agree that _b_f_a(0) should
 just have undefined behavior on ARM.  We might even consider making it
 an error to use it.  We should document in the manual that you can't use
 _b_f_a(0) on reliably on some architectures.

Sounds like a good idea.

 Richard E. asked what possible uses this function might have.
 Obviously, GLIBC's backtrace() function is one, though I guess that's a
 weak example, in that we all agree one should really be using unwind
 information.  (I still think it's somewhat valid, in that there are a
 lot of people building GCC-only applications, and if backtrace() worked
 in that case, it would be better than not working at all.)  The other
 examples I can think of are also odd hacks; for example, checking for
 stack overwrites, manually poking ones own return address pointer, or
 manually grabbing saved registers from a caller, or some such.

I think it would be better to add builtin-functions that do the things
we think would be useful, and that we're prepared to keep working in
the forseeable future.  Otherwise the knowledge about the exact stack
layout has to be pushed to each user's code, for each architecture that
the user supports.

For example, if all we want in the immediate term is to get a backtrace()
that works on ARM, and we have logic that we think would work, then we
should first make sure that __builtin_return_address(N) implements that
logic for N0.  To avoid quadrictness in backtrace() itself, we could
add new interfaces, such as a version of __builtin_return_address that
provides the return addresses for a range of call depths.

That probably sounds like a lot of work, but I'm not sure it is.
It might be something we could implement using our existing target hooks.
And it's probably less work than documenting what is and isn't guaranteed
about gcc's frame layout -- and its relation to __builtin_frame_address()
-- for each supported architecture.

Richard


Re: Release Schedule issues and doubts

2006-06-04 Thread Richard Sandiford
Mike Stump [EMAIL PROTECTED] writes:
 On Jun 4, 2006, at 2:08 AM, Steven Bosscher wrote:
 On 6/4/06, Richard Sandiford [EMAIL PROTECTED] wrote:
 Even if it's not intended that way, your proposal is probably  
 going to
 be interpreted at some stage as a way of punishing maintainers.

 And what is wrong with that?

 I have a different take...  I think people should be responsible for  
 the patches they put in, and that means that in general, they should  
 work on bugs and regressions in those patches before going off on fun  
 new work.  This, if we wanted, could be enforced by accepting patches  
 to fix regressions before accepting (any) other work by that person.   
 This transfers responsibility from the person that approved the work,  
 which, I'd rather not see in general, as it can discourage patch  
 review, to the person doing the work.

I agree.  And I don't think a new gcc by-law is needed here (we seem so
many of those already).  Maintainers can already refuse to review a fun
new feature patch until the submitter has fixed some problem with one
of the submitter's earlier patches (if the maintainer thinks that's
appropriate).  I remember at least one case where it has already
happened.

Richard


Re: Release Schedule issues and doubts

2006-06-04 Thread Andrew Pinski


On Jun 4, 2006, at 1:03 PM, Richard Sandiford wrote:


I agree.  And I don't think a new gcc by-law is needed here (we  
seem so
many of those already).  Maintainers can already refuse to review a  
fun

new feature patch until the submitter has fixed some problem with one
of the submitter's earlier patches (if the maintainer thinks that's
appropriate).  I remember at least one case where it has already
happened.


Yes but that is not all the problem because a lot of the time
the maintainer is also the submitter.  There is no way to discourage
the behavior of the maintainer on going on to other stuff while there
are known regressions to fix.

-- Pinski


Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Rask Ingemann Lambertsen
On Sun, Jun 04, 2006 at 12:31:08PM +0200, Wolfgang Mües wrote:
 Hello Rask,
 
 On Friday 02 June 2006 09:24, Rask Ingemann Lambertsen wrote:
  There may be a faster way of seeing if the modification is going to
  work for the DS at all. I noticed from the output template
  swp%?b\\t%1, %1, [%M0] that swp takes three operands. I don't
  know ARM assembler, but you may be able to choose to always clobber a
  specific register. Make it a fixed register (see FIXED_REGISTERS),
  refer to this register directly in the output template and don't add
  a clobber to the movqi patterns. IMHO, that's an acceptable hack at
  an experimental stage. If the resulting code runs correctly on the
  DS, you can then undo the FIXED_REGISTERS change and add the clobber
  statements.
 
 I have tried this. No luck. Problem is the lack of addressing modes for 
 the swp instruction. Only a simple pointer in a register (no offset, no 
 auto-increment is allowed).

What about the Q constraint? From gcc/config/arm/constraints.md:
In ARM state an address that is a single base register. Reload knows how
to fix up addresses in a number of cases that happen often, and I believe
this is one of them.

 Hmmm... wondering who all these xxx_operand functions are defined, and 
 where they are documented...

They are documented in section Machine-Independent Predicates of the
manual. I haven't checked where they are defined, but 

grep -e '^.*_operand_p' -e '^.*_address_p' gcc/*.c

should tell you where. Note that strict_memory_address_p() is just a special
case of memory_address_p() which checks for specific hard registers as
base/index registers if the target has such requirements. This is used
starting with the reload pass.

 Is this the right way to go?

I'm pretty sure it is best to have one insn pattern with several
alternatives. Reload might change the instruction enough that it ends up
using a different alternative. For example, using a register alternative for
a constant operand because the constant isn't a valid immediate operand.

-- 
Rask Ingemann Lambertsen


Re: Release Schedule issues and doubts

2006-06-04 Thread Richard Sandiford
Gerald Pfeifer [EMAIL PROTECTED] writes:
 However, we should account for periods of inactivity and reduced
 activity caused by personal issues, employer changes, illness,
 whatever.

Agreed.

 Other projects have a certain period of time (one year, eighteen months)
 after which inactive contributors are contacted and eventually purged,
 and I think we should do something similar.

I don't really see what we gain by having a fixed limit (and another
rule ;)).  The SC have removed people in the past in cases where it
was obvious that they were no longer active.  That's really just a
house-cleaning exercise, though; I don't think we gain anything other
than cleanliness.

Like you said, there are good reasons why people might not be able
to review patches for a while.  But (as you also said) if someone in
MAINTAINERS manages to review an average one patch every two months,
say, that's still better than nothing!  Even if those patches come
after a long period of inactivity.  Some maintainers with a lot of
experience don't review patches as often as they used to, but they
still provide good reviews when they do.  I think a system of
punishing maintainers is going to make it less attractive for
less active maintainers to do anything at all.

It's not like we have a fixed limit on the number of active maintainers.
At the end of the day, if the SC think that someone would make a good
maintainer for a particular part of the compiler, they should just go
ahead and approach them.  Obviously having more maintainers introduces
more risk of disagreement, but (a) folks have generally seemed to work
through such disagreements in the past (b) I think any judgement about
whether the risk is too high is more likely to be based on the way recent
development has been going, _not_ on a count of the number of people
in MAINTAINERS.

Richard


GCC 4.2 Status Report (2006-06-04)

2006-06-04 Thread Mark Mitchell
This status report has been a long time coming, for which I apologize.

As fwprop is no longer on the table for 4.2, and as the vectorizer
improvements seem to have stalled due to a combination of lack of review
and Dorit's leave, I think it's time to declare 4.2 feature-complete.

That leaves us looking at regressions.  There are lots; presently 56
P1s.  About half of those are new in 4.2.  So, we're not ready to create
a 4.2 branch.

Therefore, we need to make the mainline open for regression-fixes only
to force ourselves to attack the open bugs.  Please consider the
mainline operating under release-branch rules as of 12:01 AM Wednesday,
California time.  That will give everyone a few days to check in any
in-progress bug-fixes that are not regressions.

At this time, I don't think it makes sense to set a 4.2 target branch
date.  We have to see how fast the bug-fixing goes.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: Release Schedule issues and doubts

2006-06-04 Thread Andrew Pinski


On Jun 4, 2006, at 1:19 PM, Richard Sandiford wrote:

I think a system of
punishing maintainers is going to make it less attractive for
less active maintainers to do anything at all.


You are not punishing the good maintainers, just not so good
ones.  The idea is keep maintainers active in GCC and not just
sit in the side lines while their code gets bitrotten (which
happens too much in GCC already).  We can have a reward system
for good maintainers in that they get first priority for committing
in stage 1 and maybe allowing them to decide what is the best way
to do something.  In the sense they are can override the other
maintainers in that same area.

Thanks,
Andrew Pinski


Re: Release Schedule issues and doubts

2006-06-04 Thread Gabriel Dos Reis
Andrew Pinski [EMAIL PROTECTED] writes:

| On Jun 4, 2006, at 1:19 PM, Richard Sandiford wrote:
|  I think a system of
|  punishing maintainers is going to make it less attractive for
|  less active maintainers to do anything at all.
| 
| You are not punishing the good maintainers, just not so good
| ones.  

The trouble is there does not seem to be a clear gain in your
punishment system.  At best it may just discourage people.
In a commercial organization, that might be a good system.  For a free
project like GCC, it is not obvious where the long-term benefits for
the project are, given its unconventional way of hiring people.

People get inactive for some period of time for various reasons, some
of whichg are not subject of public debate.

-- Gaby

-- 
Gabriel Dos Reis
 [EMAIL PROTECTED]
Texas AM University -- Department of Computer Science
301, Bright Building -- College Station, TX 77843-3112


Re: Release Schedule issues and doubts

2006-06-04 Thread Mike Stump

On Jun 4, 2006, at 1:11 PM, Andrew Pinski wrote:

Yes but that is not all the problem because a lot of the time
the maintainer is also the submitter.  There is no way to discourage
the behavior of the maintainer on going on to other stuff while there
are known regressions to fix.


A wiki page of top regressions we care about?  We could politely  
request general agreement that the ones listed be given priority.


Re: Release Schedule issues and doubts

2006-06-04 Thread Andrew Pinski


On Jun 4, 2006, at 1:52 PM, Mike Stump wrote:
A wiki page of top regressions we care about?  We could politely  
request general agreement that the ones listed be given priority.


There is already a link from the main page of GCC to the regressions
and they are given priorities by the release manager already.

-- Pinski


Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Rask Ingemann Lambertsen
On Sun, Jun 04, 2006 at 12:24:53PM +0100, Paul Brook wrote:

 For the record these hacks are unlikely to ever be acceptable in mainline 
 gcc. 
 They're relatively invasive changes who's only purpose is to support 
 fundamentally broken hardware.

We don't yet know if they'll be invasive. There's a good chance that they
won't be more than a few new insn patterns, a secondary output reload
to provide a scratch register and a pair of new options.

There are other targets with targets specific options to work around this or
that bug, quirk, defect or errata. In this case, why would two options
-mno-byte-writes and -mbyte-writes, with the latter being the default, be
unlikely to be acceptable? In particular, the MT port has these two options:

-mbacc
Use byte loads and stores when generating code.

-mno-bacc
Do not use byte loads and stores when generating code.

-- 
Rask Ingemann Lambertsen


Re: Release Schedule issues and doubts

2006-06-04 Thread Andrew Pinski


On Jun 4, 2006, at 1:43 PM, Gabriel Dos Reis wrote:


The trouble is there does not seem to be a clear gain in your
punishment system.  At best it may just discourage people.
In a commercial organization, that might be a good system.  For a free
project like GCC, it is not obvious where the long-term benefits for
the project are, given its unconventional way of hiring people.


Which is why in my previous message, I proposed in giving rewards to
ones which stick around and maintain.  Do we want positive or negative
reenforcement?


People get inactive for some period of time for various reasons, some
of whichg are not subject of public debate.


My system said nothing about inactive people, only the active ones.
The way I consider a person active maintainer is approving patches/ 
creating

patches.  If a person cannot follow up on the approval and/or creation,
then why should we take the contribution if it causes problems?

2 months after the regression was found seems like a good time frame for
figuring if the maintainer could handle the work load.  Maybe we  
should have
a time limit on how far after the patch went in, we should consider  
the regression

significant to worry to give a punishment out.

-- Pinski


Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Rask Ingemann Lambertsen
On Sun, Jun 04, 2006 at 05:26:42PM +0200, Wolfgang Mües wrote:
 Paul,
 
 On Sunday 04 June 2006 13:24, Paul Brook wrote:
 
  You should just change the valid QImode memory addresses, adding a new 
  constraint if neccessary. 
 
 H... I have tried this. I have changed the operand constraint from 
 m to Q. But these constraints are only used to select the right 
 alternative inside the insn, not which insn is invoked. It might be 
 possible to modify nonimmediate_operand
 into something else, to select this insn only if the address is fitting 
 in a single register, without offset or increment.

There's no need to modify nonimmediate_operand or use another predicate.
It matches a memory operand, which is fine.

 But this will not give me the freedom to allocate a temporary register. 

See TARGET_SECONDARY_RELOAD in the section Register Classes.

 According to the manual, mov insns are not supposed to clobber a 
 register.

I can't find any statement to that effect. Where does it say so? But I can
see why it would be a problem when reload_in_progress.
(It would make it difficult to convert the m68k backend from cc0 to CC_REG.)

-- 
Rask Ingemann Lambertsen


Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Rask Ingemann Lambertsen
On Wed, May 31, 2006 at 10:49:35PM +0200, Wolfgang Mües wrote:

  (define_insn *arm_movqi_insn
[(set (match_operand:QI 0 nonimmediate_operand =r,r,r,m)
  (match_operand:QI 1 general_operand rI,K,m,r))]
TARGET_ARM
  (   register_operand (operands[0], QImode)
 
 || register_operand (operands[1], QImode))
 
@
 mov%?\\t%0, %1
 mvn%?\\t%0, #%B1
 ldr%?b\\t%0, %1
 str%?b\\t%1, %0
[(set_attr type *,*,load1,store1)
 (set_attr predicable yes)]
  )

I think you should go back to this (i.e. the unmodified version) and only
change the m into Q in the fourth alternative of operand 0. See if that
works, i.e. generates addresses that are valid for the swp instruction. If
it does, then begin to add other changes.

-- 
Rask Ingemann Lambertsen


Why are we installing libtool files now?

2006-06-04 Thread Gerald Pfeifer
I noticed that with a full build (including all of GCJ and libgcj),
we now install a bootload of libtool files into $PREFIX/share:

  .../share/libtool/libltdl/COPYING.LIB
  .../share/libtool/libltdl/Makefile.am
  .../share/libtool/libltdl/Makefile.in
  .../share/libtool/libltdl/README
  .../share/libtool/libltdl/acinclude.m4
  .../share/libtool/libltdl/aclocal.m4
  .../share/libtool/libltdl/config-h.in
  .../share/libtool/libltdl/config.guess
  .../share/libtool/libltdl/config.sub
  .../share/libtool/libltdl/configure
  .../share/libtool/libltdl/configure.ac
  .../share/libtool/libltdl/install-sh
  .../share/libtool/libltdl/ltdl.c
  .../share/libtool/libltdl/ltdl.h
  .../share/libtool/libltdl/ltmain.sh
  .../share/libtool/libltdl/missing

Is this really necessary?  If so, I'd like to understand why?

Gerald


Re: Why are we installing libtool files now?

2006-06-04 Thread Richard Guenther

On 6/4/06, Gerald Pfeifer [EMAIL PROTECTED] wrote:

I noticed that with a full build (including all of GCJ and libgcj),
we now install a bootload of libtool files into $PREFIX/share:

  .../share/libtool/libltdl/COPYING.LIB
  .../share/libtool/libltdl/Makefile.am
  .../share/libtool/libltdl/Makefile.in
  .../share/libtool/libltdl/README
  .../share/libtool/libltdl/acinclude.m4
  .../share/libtool/libltdl/aclocal.m4
  .../share/libtool/libltdl/config-h.in
  .../share/libtool/libltdl/config.guess
  .../share/libtool/libltdl/config.sub
  .../share/libtool/libltdl/configure
  .../share/libtool/libltdl/configure.ac
  .../share/libtool/libltdl/install-sh
  .../share/libtool/libltdl/ltdl.c
  .../share/libtool/libltdl/ltdl.h
  .../share/libtool/libltdl/ltmain.sh
  .../share/libtool/libltdl/missing

Is this really necessary?  If so, I'd like to understand why?


PR27818

Richard.


Re: Why are we installing libtool files now?

2006-06-04 Thread Andrew Pinski


On Jun 4, 2006, at 2:59 PM, Gerald Pfeifer wrote:


Is this really necessary?  If so, I'd like to understand why?


It is a libtool/libltdl bug which was fixed after GCC imported
the new libltdl.

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

-- Pinski


Re: Modifying ARM code generator for elimination of 8bit writes - need help

2006-06-04 Thread Dave Murphy

Rask Ingemann Lambertsen wrote:

There are other targets with targets specific options to work around this or
that bug, quirk, defect or errata. In this case, why would two options
-mno-byte-writes and -mbyte-writes, with the latter being the default, be
unlikely to be acceptable? In particular, the MT port has these two options:

-mbacc
Use byte loads and stores when generating code.

-mno-bacc
Do not use byte loads and stores when generating code.
I was just about to ask about this very thing since I'm quite sure that 
there would be interest in adding this to devkitARM.


How much work would it be to implement these switches? I assume that 
the toolchain would need multilibs for these options in order to use 
newlib etc.


Dave


apply for the relevant forms

2006-06-04 Thread liqin
Dear maintainer,

Our Co. have a new 32b embedded processor, and we have ported the gcc 
backend for it(support c/c++), now we want add its backend code into gcc 
packages. i read the Contributing to GCC  pages that we must sign some 
forms, can you kindly send the forms to me?

Best Regards
Liqin


Re: GCC 4.2 Status Report (2006-06-04)

2006-06-04 Thread Daniel Berlin
Mark Mitchell wrote:
 This status report has been a long time coming, for which I apologize.
 
 As fwprop is no longer on the table for 4.2, and as the vectorizer
 improvements seem to have stalled due to a combination of lack of review
 and Dorit's leave, I think it's time to declare 4.2 feature-complete.
 
 That leaves us looking at regressions.  There are lots; presently 56
 P1s.  About half of those are new in 4.2.  So, we're not ready to create
 a 4.2 branch.
 

Just FYI, I went through the ones that were ICE's in
add_virtual_operand, or otherwise look like aliasing, and quickly
checked whether they still cause ICE's without the whole used_alone stuff.

I've noted whether they do or not in the PR's.  Hopefully this will help
someone who wants to analyze them.


[Bug tree-optimization/26797] [4.2 Regression] ACATS c35507m cd2a23e cxh1001 fail

2006-06-04 Thread christian dot joensson at gmail dot com


--- Comment #17 from christian dot joensson at gmail dot com  2006-06-04 
08:27 ---
just a ping here, is anyone here able to say anything about status of this bug?


-- 


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



[Bug fortran/27889] New: gfortran 4.1.1 ICE on espresso (PWscf)

2006-06-04 Thread spyderous at gentoo dot org
Trying to compile the espresso electronic structure package from pwscf.org with
gfortran 4.1.1 fails with an ICE:

make[1]: Entering directory `/home/donnie/espresso-3.1/Modules'
cpp -P -traditional -D__FFTW -I../include  constraints_module.f90 -o
constraints_module.F90
gfortran -O3 -D__FFTW -I../include  -I. -I../Modules -I../PW -I../PH
-I../iotk/src -I../CPV -c constraints_module.F90 -o constraints_module.o
constraints_module.F90: In function 'set_structure_factor':
constraints_module.F90:304: internal compiler error: in find_lattice_value, at
tree-complex.c:133

Interestingly, this ICE only occurs at optimization levels greater than -O0.

I've uploaded constraints_module.F90 and the required *.mod files to
http://dev.gentoo.org/~spyderous/espresso-ice.tar.bz2 to assist in fixing this.


-- 
   Summary: gfortran 4.1.1 ICE on espresso (PWscf)
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: spyderous at gentoo dot org
  GCC host triplet: powerpc-unknown-linux-gnu


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



[Bug tree-optimization/17506] [4.0/4.1/4.2 regression] warning about uninitialized variable points to wrong location

2006-06-04 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug tree-optimization/26251] [4.2 Regression] code size increase with -Os

2006-06-04 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2006-06-04 09:32 ---
This should have a higher priority than P3 IMHO.


-- 


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



[Bug libstdc++/27867] compile error in repeated application of valarray::operator==

2006-06-04 Thread paolo at gcc dot gnu dot org


--- Comment #3 from paolo at gcc dot gnu dot org  2006-06-04 09:33 ---
Subject: Bug 27867

Author: paolo
Date: Sun Jun  4 09:32:56 2006
New Revision: 114356

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114356
Log:
2006-06-04  Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/27867
* include/bits/valarray_before.h (struct _BinClos_Oper, _ValArray,
_ValArray, _Tp, _Tp): Fix value_type typedef.
* testsuite/26_numerics/valarray/27867.cc: New.

Added:
trunk/libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/valarray_before.h


-- 


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



[Bug libstdc++/27867] compile error in repeated application of valarray::operator==

2006-06-04 Thread pcarlini at suse dot de


--- Comment #4 from pcarlini at suse dot de  2006-06-04 09:34 ---
Fixed.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

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


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



[Bug rtl-optimization/27616] [4.1/4.2 Regression] Internal error with -O1 (CSE)

2006-06-04 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2006-06-04 09:34 ---
Would be fixed with fwprop due to not recursively calling fold_rtx.


-- 


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



[Bug target/27863] [4.2 Regression] ICE in check_cfg, at haifa-sched.c:4615

2006-06-04 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-04 09:36:03
   date||


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



[Bug fortran/25096] Non-conforming shapes of DATA object and data

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-06-04 09:38 
---
g95 emits a hard error on this one, while Intel accept it.

$ g95 a.f90
In file a.f90:5

 DATA (D(i)%I,i=1,4) /8*0/
1
Error: Array section not allowed in DATA statement at (1)


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||accepts-invalid, diagnostic
   Last reconfirmed|-00-00 00:00:00 |2006-06-04 09:38:57
   date||


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



[Bug bootstrap/25502] Werror problem in build

2006-06-04 Thread rmathew at gcc dot gnu dot org


--- Comment #6 from rmathew at gcc dot gnu dot org  2006-06-04 09:47 ---
By the way, x-mingw32 contains:

  # On MinGW, we use %IA64d to print 64-bit integers, and the format-checking
  # code does not handle that, so we have to disable checking here.
  WERROR_FLAGS += -Wno-format

This should have fixed the problem, but it doesn't for some reason.

See also:

  http://gcc.gnu.org/ml/gcc-patches/2004-11/msg02223.html

(and the follow-up messages).


-- 

rmathew at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rmathew at gcc dot gnu dot
   ||org


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



[Bug fortran/25095] Disallowed intrinsic in initialization statement

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-06-04 09:52 
---
By F2003: C561 (R528) In an array-element or a scalar-structure-component that
is a data-i-do-object , any subscript shall be an expression whose primaries
are either constants, subobjects of constants, or 
DO variables  of this data-implied-do or the containing data-implied-dos, and
each operation shall be intrinsic.

Now, MODULO is found under 13.5 (Standard generic intrinsic procedures) so, by
my reading of the standard, this is allowed. And the F95 standard seems to have
exactly the same wording.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Keywords||accepts-invalid


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



[Bug fortran/24978] ICE in gfc_assign_data_value_range

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-06-04 10:01 
---
I marked it as ice-on-valid-code, but I'm not sure it's valid code. g95 emits
an error, but Intel and Sun compilers don't. Uttam, do you know if that code is
valid?


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Keywords||ice-on-valid-code
   Last reconfirmed|2005-11-21 21:02:12 |2006-06-04 10:01:03
   date||


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



[Bug fortran/23209] array shape conformance not checked

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2006-06-04 10:04 
---
It's been fixed:

$ gfortran a.f90
 In file a.f90:6

b = b + a
   12
Error: Shapes for operands at (1) and (2) are not conformable


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
 Status|NEW |RESOLVED
  GCC build triplet|powerpc-linux   |
   GCC host triplet|powerpc-linux   |
 GCC target triplet|powerpc-linux   |
 Resolution||FIXED
   Target Milestone|--- |4.1.2


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



[Bug c++/27884] [4.2 regression] bogus error: invalid use of 'register' in linkage specification

2006-06-04 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2006-06-04 10:04 ---
It's certainly a questionable use of 'register'.  What is the expected effect
of this parameter declaration from perls point of view?


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org


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



[Bug fortran/23538] gfortran hangs on old cray fortran 66 program

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #9 from fxcoudert at gcc dot gnu dot org  2006-06-04 10:18 
---
I agree with Steve's comment that a maximal number of errors should be allowed,
after which the compiler should bail out.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
OtherBugsDependingO|19292   |
  nThis||
   Keywords||diagnostic
   Last reconfirmed|2005-08-23 21:18:45 |2006-06-04 10:18:54
   date||


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



[Bug c++/27884] [4.2 regression] bogus error: invalid use of 'register' in linkage specification

2006-06-04 Thread tbm at cyrius dot com


--- Comment #3 from tbm at cyrius dot com  2006-06-04 10:24 ---
I don't know why Perl uses it, I simply noticed that lots of packages in Debian
now fail to build because its part of a Perl header... they do this:

extern C SV* Perl_Gsv_placeholder_ptr(register PerlInterpreter *my_perl
__attribute__((unused)));

In an IRC discussion whether this is valid, the following comments were made:

18:11  Womble2 a linkage-specification directly containing a single
declaration shall not specify a storage class  (7.5/8)
18:12  Womble2 but I think it really means at the top-level of the
declaration
18:12  pinskia Womble2: I think that means extern C static int t; is
invalid
18:12  Womble2 yes the example it gives has a function declared a static
18:13  pinskia but register allows to the argument and not to the declaration
18:13  pinskia s/allows/applies/
18:14  Womble2 indeed, though the statement could be (rather perversely) read
as disallow specification of a storage class anywhere in the declaration, as
the person who made the change may have done
[Womble2 = Ben Hutchings, pinskia = Andrew Pinski]

Do you disagree with that interpretation?


-- 


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



[Bug fortran/23371] internal compiler error when missing a module procedure

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-06-04 10:30 
---
This is fixed on mainline.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug fortran/25095] Disallowed intrinsic in initialization statement

2006-06-04 Thread jv244 at cam dot ac dot uk


--- Comment #2 from jv244 at cam dot ac dot uk  2006-06-04 10:42 ---
(In reply to comment #1)
 .. and
 each operation shall be intrinsic

 Now, MODULO is found under 13.5 (Standard generic intrinsic procedures) 

But MODULO is not an intrinsic operation (these are defined in 7.1.2)


-- 


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



[Bug c++/27884] [4.2 regression] bogus error: invalid use of 'register' in linkage specification

2006-06-04 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2006-06-04 10:48 ---
I agree that the code is valid from a standards perspective.  Just not very
clever ;)


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||rejects-valid


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



[Bug c++/27884] [4.2 regression] bogus error: invalid use of 'register' in linkage specification

2006-06-04 Thread tbm at cyrius dot com


--- Comment #5 from tbm at cyrius dot com  2006-06-04 10:52 ---
OK, I'll let the Perl people know.  It would be nice though to revert this
error before 4.1.2/4.2.0 come out.


-- 


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



[Bug bootstrap/25502] Werror problem in build

2006-06-04 Thread dannysmith at users dot sourceforge dot net


--- Comment #7 from dannysmith at users dot sourceforge dot net  2006-06-04 
11:02 ---

In my local tree (and in the 3.4.x mingw tree), I have added a modification and
extension of this patch:
http://gcc.gnu.org/ml/gcc-patches/2004-11/msg02296.html

I plan to follow up in stage 1 of  4.3 

This patch silences the worst of the warnings.  However, because of the
-pedantic switch, I still get warnings like

../../gcc/gcc/gcov-dump.c:408: warning: ISO C does not support the 'I64' printf
length modifier

-Wno-pedantic-errors doesn't work for me, so --disable-werror is still
necessary.


-- 


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



[Bug libgcj/27890] New: [4.2 regression] lib/logging.properties pollutes common namespace

2006-06-04 Thread gerald at pfeifer dot com
Now that I can build libgcj again on HEAD, I found that it pollutes the
common namespace by installing $PREFIX/lib/logging.properties.

This break the installation of several versions of GCC into the same $PREFIX
using --program-suffix=.


-- 
   Summary: [4.2 regression] lib/logging.properties pollutes common
namespace
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gerald at pfeifer dot com


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



[Bug target/27891] New: [4.0/4.1 regression] ICE in tree_split_edge, at tree-cfg.c:3107

2006-06-04 Thread tbm at cyrius dot com
ICE on Alpha in tree_split_edge, at tree-cfg.c:3107.  Works with gcc 3.4 and
current gcc 4.2, fails with 4.0 and 4.1.

[EMAIL PROTECTED]:~/delta/bin$ g++-4.1 -c -O1 mini.c
mini.c: In function 'int domisc(const char*)':
mini.c:27: internal compiler error: in tree_split_edge, at tree-cfg.c:3107
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see URL:file:///usr/share/doc/gcc-4.1/README.Bugs.
Preprocessed source stored into /tmp/cctyNtwC.out file, please attach this to
your bugreport.
[EMAIL PROTECTED]:~/delta/bin$ g++-4.1 -c mini.c
[EMAIL PROTECTED]:~/delta/bin$ g++-4.0 -c -O2 mini.c
mini.c: In function 'int domisc(const char*)':
mini.c:27: internal compiler error: in tree_split_edge, at tree-cfg.c:3226
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see URL:file:///usr/share/doc/gcc-4.0/README.Bugs.
[EMAIL PROTECTED]:~/delta/bin$ /usr/lib/gcc-snapshot/bin/g++ -c -O2 mini.c
[EMAIL PROTECTED]:~/delta/bin$


-- 
   Summary: [4.0/4.1 regression] ICE in tree_split_edge, at tree-
cfg.c:3107
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tbm at cyrius dot com
 GCC build triplet: alpha-linux-gnu
  GCC host triplet: alpha-linux-gnu
GCC target triplet: alpha-linux-gnu


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



[Bug target/27891] [4.0/4.1 regression] ICE in tree_split_edge, at tree-cfg.c:3107

2006-06-04 Thread tbm at cyrius dot com


--- Comment #1 from tbm at cyrius dot com  2006-06-04 11:14 ---
Created an attachment (id=11593)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11593action=view)
test case


-- 


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



[Bug libgcj/27890] [4.2 regression] lib/logging.properties pollutes common namespace

2006-06-04 Thread gerald at pfeifer dot com


--- Comment #1 from gerald at pfeifer dot com  2006-06-04 11:15 ---
Also, does a configuration file, in text format, like this really belong
under /lib?


-- 


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



[Bug libgcj/27890] [4.2 regression] lib/logging.properties pollutes common namespace

2006-06-04 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2006-06-04 11:17 ---
Also it should be beyond /usr/share, as it is not arch dependent.  Same problem
for /usr/lib/security/classpath.security and
/usr/lib64/security/libgcj.security.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-04 11:17:21
   date||


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



[Bug middle-end/27889] ICE on complex assignment

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-06-04 11:24 
---
I can reproduce this on i686-linux and reduced it to this minimal testcase:

 COMPLEX z
 CONTAINS
   SUBROUTINE foo
 z = z + cmplx(1.0,0.0)
 z = z + z
   END SUBROUTINE foo
 END

It fails for me at all optimization levels, including -O0. I've tried it with
current mainline as well as mainline from 2006-05-01, it exhibits the same
errors.

I can't make a C testcase easily, but I think it's a middle-end issue because
the same testcase compiled on 4.1.2 works, although it gives the same tree
(with -fdump-original-tree):

foo ()
{
  z = z + __complex__ (1.0e+0, 0.0);
  z = z + z;


MAIN__ ()
{
  complex4 z;
  static void foo (void);

  _gfortran_set_std (70, 127, 0);
}


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org, stevenb dot gcc at
   ||gmail dot com
 Status|UNCONFIRMED |NEW
  Component|fortran |middle-end
 Ever Confirmed|0   |1
   GCC host triplet|powerpc-unknown-linux-gnu   |
   Keywords||ice-on-valid-code
   Last reconfirmed|-00-00 00:00:00 |2006-06-04 11:24:33
   date||
Summary|gfortran 4.1.1 ICE on   |ICE on complex assignment
   |espresso (PWscf)|


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



[Bug fortran/27889] ICE on complex assignment

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2006-06-04 11:49 
---
I now also have a slightly different testcase that fails on 4.1.1 and current
4.1 branch, on i686-linux, at optimization levels -O1 or higher:

MODULE constraints_module
  REAL target
  CONTAINS
 SUBROUTINE init_constraint
   COMPLEX struc_fac
   CALL set_structure_factor
   RETURN
   CONTAINS
 SUBROUTINE set_structure_factor
   target = CONJG( struc_fac ) * struc_fac
 END SUBROUTINE set_structure_factor
 END SUBROUTINE init_constraint
END MODULE constraints_module

Paul, I'm adding you to the CC list since this looks fully module-related.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|stevenb dot gcc at gmail dot|paul dot richard dot thomas
   |com |at cea dot fr
  Component|middle-end  |fortran
   Last reconfirmed|2006-06-04 11:24:33 |2006-06-04 11:49:55
   date||


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



[Bug target/27891] [4.0/4.1 regression] ICE in tree_split_edge, at tree-cfg.c:3107

2006-06-04 Thread falk at debian dot org


--- Comment #2 from falk at debian dot org  2006-06-04 12:51 ---
Here is a cleaned-up testcase:

int firstkey();
void DBM_error(int);

void domisc() {
int i = 0;
try {
try {
firstkey();
while (1) {
i++;
firstkey();
}
} catch (int) {
;
}
DBM_error(i);
} catch (int) {
;
}
}

I have no idea why this would happen only on Alpha, it seems unlikely it's
actually a target bug...


-- 

falk at debian dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
  Known to fail||4.0.3 4.1.0
  Known to work||3.4.6 4.2.0


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



[Bug tree-optimization/27039] [4.1/4.2 Regression] Unable to determine # of iterations for a simple loop

2006-06-04 Thread rguenth at gcc dot gnu dot org


--- Comment #13 from rguenth at gcc dot gnu dot org  2006-06-04 12:59 
---
Subject: Bug 27039

Author: rguenth
Date: Sun Jun  4 12:59:40 2006
New Revision: 114357

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114357
Log:
2006-06-04  Richard Guenther  [EMAIL PROTECTED]

PR tree-optimization/27039
* fold-const.c (fold_comparison): Handle pointer comparison
again for all comparison codes.  Compare offsets in signed
size type.
(fold_binary): Move code from here.

* gcc.dg/tree-ssa/loop-17.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/loop-17.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug tree-optimization/27039] [4.1 Regression] Unable to determine # of iterations for a simple loop

2006-06-04 Thread rguenth at gcc dot gnu dot org


--- Comment #14 from rguenth at gcc dot gnu dot org  2006-06-04 13:16 
---
Fixed on the mainline.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.1/4.2 Regression] Unable |[4.1 Regression] Unable to
   |to determine # of iterations|determine # of iterations
   |for a simple loop   |for a simple loop


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



[Bug fortran/27889] ICE on complex assignment

2006-06-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-06-04 14:38 
---
I examined the different tree dumps for
 COMPLEX z
 CONTAINS
   SUBROUTINE foo
 z = z + z
   END SUBROUTINE foo
 END

and the last non-empty one before the error message:

complex.f90: In function ‘foo’:complex.f90:4: error: invalid operand to binary
operator
D.906

complex.f90:4: internal compiler error: verify_stmts failed

is complex.f90.021t.eh, which has the following content:

;; Function foo (foo.899)

foo ()
{
  complex4 D.908;
  complex4 D.907;
  complex4 D.906;
  complex4 z [value-expr: CHAIN.1-z];

  D.906 = CHAIN.1-z;
  D.907 = CHAIN.1-z;
  D.908 = D.906 + D.907;
  CHAIN.1-z = D.908;
  return;
}


-- 


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



[Bug libgcj/27892] New: gij.cc:104: error: 'setenv' was not declared in this scope

2006-06-04 Thread danglin at gcc dot gnu dot org
/mnt/gnu/gcc-3.3/objdir/./gcc/xgcc -shared-libgcc
-B/mnt/gnu/gcc-3.3/objdir/./gc
c -nostdinc++ -L/mnt/gnu/gcc-3.3/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src
-
L/mnt/gnu/gcc-3.3/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src/.libs
-B/opt/gnu
/gcc/gcc-4.2.0/hppa2.0w-hp-hpux11.11/bin/
-B/opt/gnu/gcc/gcc-4.2.0/hppa2.0w-hp-h
pux11.11/lib/ -isystem /opt/gnu/gcc/gcc-4.2.0/hppa2.0w-hp-hpux11.11/include
-isy
stem /opt/gnu/gcc/gcc-4.2.0/hppa2.0w-hp-hpux11.11/sys-include -DHAVE_CONFIG_H
-I
. -I../../../gcc/libjava -I./include -I./gcj -I../../../gcc/libjava -Iinclude
-I
../../../gcc/libjava/include -I../../../gcc/libjava/classpath/include
-Iclasspat
h/include -I../../../gcc/libjava/classpath/native/fdlibm
-I../../../gcc/libjava/
../boehm-gc/include -I../boehm-gc/include -I../../../gcc/libjava/libltdl
-I../..
/../gcc/libjava/libltdl -I../../../gcc/libjava/.././libjava/../gcc
-I../../../gc
c/libjava/../zlib -I../../../gcc/libjava/../libffi/include -I../libffi/include
-
fno-rtti -fnon-call-exceptions -pthread -fdollars-in-identifiers -Wswitch-enum
-
D_FILE_OFFSET_BITS=64 -I/usr/include/X11R6 -Wextra -Wall -D_GNU_SOURCE
-DPREFIX=
\/opt/gnu/gcc/gcc-4.2.0\ -DLIBDIR=\/opt/gnu/gcc/gcc-4.2.0/lib\
-DJAVA_HOME=\
/opt/gnu/gcc/gcc-4.2.0\
-DBOOT_CLASS_PATH=\/opt/gnu/gcc/gcc-4.2.0/share/java/
libgcj-4.2.0.jar\ -DJAVA_EXT_DIRS=\/opt/gnu/gcc/gcc-4.2.0/share/java/ext\
-DG
CJ_ENDORSED_DIRS=\/opt/gnu/gcc/gcc-4.2.0/share/java/gcj-endorsed\
-DGCJ_VERSIO
NED_LIBDIR=\/opt/gnu/gcc/gcc-4.2.0/lib/gcj-4.2.0\ -DPATH_SEPARATOR=\:\
-DLIB
GCJ_DEFAULT_DATABASE=\/opt/gnu/gcc/gcc-4.2.0/lib/gcj-4.2.0/classmap.db\
-DLIBG
CJ_DEFAULT_DATABASE_PATH_TAIL=\gcj-4.2.0/classmap.db\
-DTOOLEXECLIBDIR=\/opt/
gnu/gcc/gcc-4.2.0/lib\ -g -O2 -MT gij.lo -MD -MP -MF .deps/gij.Tpo -c
../../../
gcc/libjava/gij.cc  -fPIC -DPIC -o .libs/gij.o
../../../gcc/libjava/gij.cc: In function 'int main(int, const char**)':
../../../gcc/libjava/gij.cc:104: error: 'setenv' was not declared in this scope
make[3]: *** [gij.lo] Error 1
make[3]: *** Waiting for unfinished jobs
make[3]: *** Waiting for unfinished jobs
make[3]: Leaving directory
`/mnt/gnu/gcc-3.3/objdir/hppa2.0w-hp-hpux11.11/libjav
a'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/mnt/gnu/gcc-3.3/objdir/hppa2.0w-hp-hpux11.11/libjav
a'
make[1]: *** [all-target-libjava] Error 2
make[1]: Leaving directory `/mnt/gnu/gcc-3.3/objdir'
make: *** [bootstrap] Error 2
Sat Jun  3 22:03:34 EDT 2006

This was introduced by the following change:

2006-05-30  Thomas Fitzsimmons  [EMAIL PROTECTED]

* gij.cc (main): Prepend LD_LIBRARY_PATH with GCJ_VERSIONED_LIBDIR
and re-exec self.


-- 
   Summary: gij.cc:104: error: 'setenv' was not declared in this
scope
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


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



[Bug fortran/27478] getting : error: invalid operand to binary operator

2006-06-04 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-04 15:16:36
   date||


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



[Bug fortran/27478] getting : error: invalid operand to binary operator

2006-06-04 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-06-04 15:16 ---
*** Bug 27889 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||spyderous at gentoo dot org


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



[Bug fortran/27889] ICE on complex assignment

2006-06-04 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-06-04 15:16 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/27884] [4.1/4.2 regression] bogus error: invalid use of 'register' in linkage specification

2006-06-04 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2006-06-04 15:35 ---
Confirmed.  Breaking perl is not nice.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |blocker
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-04 15:35:07
   date||
Summary|[4.2 regression] bogus  |[4.1/4.2 regression] bogus
   |error: invalid use of   |error: invalid use of
   |'register' in linkage   |'register' in linkage
   |specification   |specification
   Target Milestone|4.2.0   |4.1.2


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



[Bug c/25161] [4.0/4.1/4.2 Regression] Internal compiler error (segfault) instead of error message

2006-06-04 Thread jsm28 at gcc dot gnu dot org


--- Comment #11 from jsm28 at gcc dot gnu dot org  2006-06-04 16:49 ---
Testing a fix.


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jsm28 at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-02-12 18:03:48 |2006-06-04 16:49:39
   date||


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



[Bug c/27020] [4.0/4.1/4.2 regression] ICE on invalid array size

2006-06-04 Thread jsm28 at gcc dot gnu dot org


--- Comment #3 from jsm28 at gcc dot gnu dot org  2006-06-04 16:50 ---
Testing a fix.


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jsm28 at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-04-04 09:24:36 |2006-06-04 16:50:18
   date||


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



[Bug c/27893] New: [4.0/4.1/4.2 Regression] ICE with TREE_CONSTANT VLA sizes inside functions

2006-06-04 Thread jsm28 at gcc dot gnu dot org
int a;
void f(void) { int b[(__SIZE_TYPE__)a]; }

yields

t.c: In function 'f':
t.c:2: internal compiler error: in tree_low_cst, at tree.c:4413
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.

Likewise if the size is 1/0.  Related to but not the same as bug 25161 and bug
27020 (both involve VLAs with TREE_CONSTANT array sizes, but in this case the
code is valid).


-- 
   Summary: [4.0/4.1/4.2 Regression] ICE with TREE_CONSTANT VLA
sizes inside functions
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org


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



[Bug c/7948] gcc fails to fault gnu extension with -std=c99

2006-06-04 Thread jsm28 at gcc dot gnu dot org


--- Comment #5 from jsm28 at gcc dot gnu dot org  2006-06-04 17:00 ---
Fixed for 4.2.


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c/18740] Execution-time sizeof drops side effects

2006-06-04 Thread jsm28 at gcc dot gnu dot org


--- Comment #8 from jsm28 at gcc dot gnu dot org  2006-06-04 17:01 ---
Fixed for 4.2.


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c/25802] VM types of external and internal linkage variables not diagnosed

2006-06-04 Thread jsm28 at gcc dot gnu dot org


--- Comment #5 from jsm28 at gcc dot gnu dot org  2006-06-04 17:03 ---
Fixed for 4.2.


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



Return code of gcc

2006-06-04 Thread Vu Quang Cao
Hi,
I'm writing a program, which executes gcc for
compiling a C proram. Now, I need the returned code of
gcc after compiling.
Can you help me?

Thanks!

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: Return code of gcc

2006-06-04 Thread Andrew Pinski


On Jun 4, 2006, at 10:12 AM, Vu Quang Cao wrote:


Hi,
I'm writing a program, which executes gcc for
compiling a C proram. Now, I need the returned code of
gcc after compiling.


This is offtopic of this channel.  Also it depends on
what OS you are using?

From an unix shell script you can use $? as the return code.

-- Pinski


[Bug c/27489] [4.1/4.2 regression] ICE on broken switch condition

2006-06-04 Thread jsm28 at gcc dot gnu dot org


--- Comment #8 from jsm28 at gcc dot gnu dot org  2006-06-04 17:16 ---
The patch in comment#2 is OK for 4.1 and mainline with the change to comparing
expr2 == error_mark_node, provided the testcases from this bug and bug 27490
are added to the testsuite.

Regarding that referenced in comment#6, the test against ERROR_MARK being
removed is probably intended to avoid excess diagnostics in that case.  That
patch is OK for mainline if the error (switch quantity not an integer); is
made conditional on (orig_type != error_mark_node).


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org, jsm28 at gcc dot gnu
   ||dot org


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



[Bug middle-end/24998] [4.2 Regression] Build failure: undefined symbol __floatunsitf

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #28 from mmitchel at gcc dot gnu dot org  2006-06-04 17:19 
---
Joseph --

Would you please summarize the current state of this bug, and whether or not
you intend to do any more work on it?  I'm trying to figure out how to
prioritize it for 4.2.

Thanks,

-- Mark


-- 


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



[Bug bootstrap/25438] [4.2 Regression] make: *** No rule to make target `bubblestrap'. Stop.

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #5 from mmitchel at gcc dot gnu dot org  2006-06-04 17:19 
---
Not release-critical.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P5


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



[Bug bootstrap/25470] [4.2 Regression] fixincludes/ subdirectory not cleaned by make distclean

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #6 from mmitchel at gcc dot gnu dot org  2006-06-04 17:22 
---
Not release-critical.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P5


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



[Bug libgomp/25938] [4.2 regression] libgomp installs header files in version and target independent location

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #8 from mmitchel at gcc dot gnu dot org  2006-06-04 17:26 
---
This is a show-stopper; an installation problem like this would be embarassing.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug target/26146] [4.2 Regression] Bootstrapping mainline on Solaris 10/x86 fails

2006-06-04 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug c/26154] [4.2 Regression] OpenMP extensions to the C language is not documented

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #3 from mmitchel at gcc dot gnu dot org  2006-06-04 17:33 
---
Yes, there should at least be a reference to online information about OpenMP in
our manual.  At this is one of the major new features in 4.2, it should
definitely be documented.  Diego, would you be able to put a pointer in the
manual?


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug middle-end/24998] [4.2 Regression] Build failure: undefined symbol __floatunsitf

2006-06-04 Thread joseph at codesourcery dot com


--- Comment #29 from joseph at codesourcery dot com  2006-06-04 17:35 
---
Subject: Re:  [4.2 Regression] Build failure: undefined
 symbol __floatunsitf

On Sun, 4 Jun 2006, mmitchel at gcc dot gnu dot org wrote:

 --- Comment #28 from mmitchel at gcc dot gnu dot org  2006-06-04 17:19 
 ---
 Joseph --
 
 Would you please summarize the current state of this bug, and whether or not
 you intend to do any more work on it?  I'm trying to figure out how to
 prioritize it for 4.2.

The state is still as in comment#23 and I don't intend to do any more work 
on it (though I could do the US_SOFTWARE_GOFAST removal if desired).

* MIPS16 (mips16.S needs implementations of the relevant functions, 
mips_init_libfuncs should arrange for them to be called) - preferably to 
be done by someone set up to test MIPS16.

* FRV - see comment#9 - could do with knowledge of the intent behind the C 
functions such as __uitod and again with someone to test on FRV.

* US_SOFTWARE_GOFAST - should be removed - see my list at 
http://gcc.gnu.org/ml/gcc/2006-05/msg00440.html of the various pieces to 
remove.

* powerpc-linux glibc -mabi=ieeelongdouble - not supported by glibc in any 
meaningful way but it does provide the ABI-mandated functions for 
arithmetic on IEEE long double; however, there is a glibc bug whereby it 
provides _q_uitoq instead of the correct name _q_utoq which GCC will now 
call.  There is no GCC bug here since GCC calls the ABI-specified 
function.


-- 


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



[Bug bootstrap/26188] [4.2 Regression] 4.2.0 fails to compile on FreeBSD 4.11

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #4 from mmitchel at gcc dot gnu dot org  2006-06-04 17:36 
---
i386-freebsd is a primary platform, so we should ensure that we can build
there.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug libgomp/26175] [4.2 Regression] In gcc-4.2.0 libgomp/.../powerpc/futex.h SYS_futex undefined

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #5 from mmitchel at gcc dot gnu dot org  2006-06-04 17:35 
---
Yes, this is a critical problem.  OpenMP is a major feature in 4.2.  It would
be embarassing for it to break builds for users.  We should fix the configury
so as not to build the library on unsupported systems.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug tree-optimization/26197] [4.2 regression] ICE in is_old_name with vectorizer

2006-06-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #17 from mmitchel at gcc dot gnu dot org  2006-06-04 17:40 
---
Has anyone tested Dorit's patch?  (IIUC, Dorit is on maternity leave.)


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P2


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



[Bug c++/26740] [4.2 regression] ICE taking the address of a bound member function

2006-06-04 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2006-06-04 17:41 ---
Subject: Bug 26740

Author: pinskia
Date: Sun Jun  4 17:40:51 2006
New Revision: 114360

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114360
Log:
2006-06-01  Andrew Pinski  [EMAIL PROTECTED]

PR c++/26740
* typeck.c (build_unary_op): Mark the function as being used.


Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c


-- 


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



[Bug c++/26740] [4.2 regression] ICE taking the address of a bound member function

2006-06-04 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2006-06-04 17:41 ---
Subject: Bug 26740

Author: pinskia
Date: Sun Jun  4 17:40:51 2006
New Revision: 114360

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114360
Log:
2006-06-01  Andrew Pinski  [EMAIL PROTECTED]

PR c++/26740
* typeck.c (build_unary_op): Mark the function as being used.


Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c


--- Comment #8 from pinskia at gcc dot gnu dot org  2006-06-04 17:41 ---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/26244] [4.2 Regression] FAIL: gcc.c-torture/execute/builtin-bitops-1.c execution, -O3 -fomit-frame-pointer -funroll-loops

2006-06-04 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug tree-optimization/26251] [4.2 Regression] code size increase with -Os

2006-06-04 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P2


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



  1   2   3   4   >