Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Yuhong Bao

1) This is offtopic.

Yeah, but I want to bring this up because I can tell it is affecting GCC
development.


From http://gcc.gnu.org/ml/gcc/2008-02/msg00523.html:

 If someone steps forward, are you allowed to follow the patches list
We can't read the patches nor gcc list.

and give feedback and/or approve patches for new contributors? I assume
this is possible since you helped out with objc++ review for me just
recently.

Only because I was cced on it.


From http://gcc.gnu.org/ml/gcc/2008-02/msg00516.html:

 Are current Darwin maintainers working on fixing anything in the FSF
sources?
Currently no. The transition to GPL v3 is problematic for us in the
short/mid term. :-( Longer term, we'll see how it goes.


2) You didn't say what the problem is.  I certainly can't figure it
out from the links you posted.

Basically, what happened is that Apple created a Tivoized device called the
iPhone,
and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
the link I mentioned. 



Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Paolo Bonzini
 Off-topic, but I feel this is important, since Apple contributed to gcc,
 and it is licensed under GPLv3 now.

The license of GCC does not matter, unless the iPhone includes a copy of
GCC's binaries for a recent-enough version.  In which case, of course,
Apple would be violating the GPLv3 and you should tell the FSF.


[offtopic parts rot13'd]

 V fgvyy ubcr vg pna or fbyirq

Jung fubhyq or fbyirq?  Npghnyyl, jung pbhyq or fbyirq?

 OGJ, gur TCYi2 unf abar bs gur pynhfrf gung pnhfr gur gebhoyr Nccyr vf
 snpvat jvgu gur TCYi3 naq gur vCubar, fb vg vf BX.

Fbzr znl guvax gung gur TCYi3 vf gur bar gung vf BX...

Naljnl, va pnfr lbh jrera'g njner, vg'f abg whfg gur TCYi3 gung vf
nssrpgrq.  Orpnhfr bs gur AQN gurl fubiry qbja lbhe guebng jura lbh
qbjaybnq gur FQX, Nccyr rssrpgviryl qrpvqrq gb ybpx nal xvaq bs bcra
fbhepr fbsgjner (abg whfg serr fbsgjner) bhg bs gur vCubar.  Ab ovt
qrny, gung zrnaf gung V jba'g jevgr cebtenzf sbe gur vCubar V qba'g bja.

Paolo


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Peter O'Gorman
Yuhong Bao wrote:
 and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
 Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
 the link I mentioned.

Apple does not use a GPLv3 version of GCC. All GPL sources used in the
iPhone, are, as far as I know, available at
http://www.opensource.apple.com/darwinsource/iPhone2.1/ (perhaps also
other locations at http://www.opensource.apple.com/darwinsource).

If there are sources that you feel are missing, filing a bug at
http://bugreporter.apple.com is probably your best bet.

And, yes, I feel bad for replying to the list on this when it has
already been stated that it is off-topic.

Peter
--
Peter O'Gorman
http://pogma.com


Re: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Simon Hill
Thanks for all the links. I knew there were people wanting this but I
didn't quite get how big an issue it was.


Brain Dessent wrote:
 You're essentially trusting that all
 exception specifiers for every function in the program and *all* library
 code are always present and always correct which is a huge leap of faith
 that I don't think is supported by reality.

I agree that it won't be very useful initially due to lots of third
party code like boost neither defining nor adhering exception
restrictions 100% of the time (STL may be guilty also). However, this
is a catch 22. Why not provide the mechanism for verifying exception
specifications so that these libraries can, in future, become fully
compliant? It won't take much work, especially when you can get a
warning telling you exactly what you need to change, and the only
thing you need to do 99% of the time is add throw() clauses to
definitions and declarations. I bet you could get boost  STL
compliant within a week even if they had 0 throw() clauses to begin
with.


Brain Dessent wrote:
 The general consensus is that doing this at compile time cannot give you
 anything useful, because the compiler can only see one compilation unit
 at a time and so the only thing it can know of all the downstream
 functions that are in other CUs is what is provided in the exception
 specifiers of the prototypes.

So, once the other CUs adhere to their prototype exception specifiers,
this becomes OK. I definately intend all of my own CUs to adhere.
Also, you rely on CUs doing what they say in all other means (eg not
modifying const-passed references), why not rely on their exception
specifiers as long as they say you can. And if only some (ie your own)
CUs adhere, that's by no means worse than none adhering (as long as
you are aware that some don't).


 You should certainly look at EDoc++, mentioned in the above threads.
http://edoc.sourceforge.net/
This is definitely interesting, however our goals are a bit different.
EDoc++ is about checking that there is no chance a thrown that
actually exists in code can propogate to somewhere where it will
terminate the app due to being unhandled. It's not about enforcing
code requirements. For example, foo() throw() can call bar()
throw(zug) as long as it doesn't actually throw a zug, or call
anything that does. I would like an environment where the above
example is considered poor practice.


One thing I read there that concerned me was when it was said that
some compilers do pessimizations such as not inlining functions with
throw clauses or placing try/catch blocks around calls to these.
I hope that these compilers aren't mainstream. Also, I don't think
that consideration of current bad implementations should factor into
the decision. If people decide to use exception specifications more
these compilers will either get fixed or become slower.


So overall:
- Lots of people request it (for good reasons or bad). Even bad
reasons mean there's an advantage from providing this as an option, ie
showing that it doesn't do what they want.
- Nobody has yet shown me any fundamental problems with implementing
this, apart from my typedefs of function pointers not being allowed
exception specifications which, while annoying, can be avoided.
- It helps code comply with what it says (if you read the throw()
clause in what seems to be its spirit: as an indication of what may be
thrown).
- It's fully optional, and off by default.
- The only real issue is that it will complain about third party code
that doesn't yet comply. But by this same token this helps third
party code become compliant if the authors desire it to be. There's
also the possibility of adding a modification that could ignore calls
to functions declared inside a whitelist of headers like vector to
further reduce this.
- GCC probably doesn't do the above pessimizations (I guess I'll have
to look into this).
Where's the downside?


Re: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Brendon Costa

 I agree that it won't be very useful initially due to lots of third
 party code like boost neither defining nor adhering exception
 restrictions 100% of the time (STL may be guilty also). However, this
 is a catch 22. Why not provide the mechanism for verifying exception
 specifications so that these libraries can, in future, become fully
 compliant? It won't take much work, especially when you can get a
 warning telling you exactly what you need to change, and the only
 thing you need to do 99% of the time is add throw() clauses to
 definitions and declarations. I bet you could get boost  STL
 compliant within a week even if they had 0 throw() clauses to begin
 with.

   
One of the problems i see with this is generic template classes like the
STL containers. The author of the template class or container can't know
what types of exceptions will be thrown from them, so you must define
them as being able to throw all exceptions (which is how they are
currently). Then if those containers are used all over the place then
you are back to square one. Personally i am starting to see that usage
of the exception specifier in C++ is almost useless (I find them a bit
more useful with EDoc++ but i still only use them very rarely).

I initially thought the same way as you are now, but in the end decided
it was necessary to construct a complete list of exceptions that can be
thrown before then applying such rules. This is what EDoc++ does. It
first calculates all possible exceptions, then it performs all sorts of
analysis to enforce things like exception specifiers (and much more).

After developing EDoc++, i have also realized how pervasive exceptions
can be in C++ code, which works against the sorts of checks that can be
done within a single translation unit. I had to go to lengths to provide
a suppressions system for EDoc++, simply because almost all code can
throw all sorts of exceptions i had never heard of before. A developer
generally is not interested in exceptions like:
__gnu_cxx::recursive_init. But after writing EDoc++ i found exceptions
like this turn up all over the place, though they should not occur in
normal operation...

With all this said though. If your purpose is to learn more about GCC
internals, then i think it would be a good project to undertake to
achieve that. You may have to do so though, with the understanding that
the maintainers may not choose to accept your patch into the official
GCC release. I don't know if they would or not, as i am not a GCC
maintainer but it would be worth getting clarification before doing the
task.



On a slight side note, there is a feature i have been postponing from
EDoc++ until the distant future. It is to provide meta-data or code
markup which can be used to enforce certain restrictions on code being
used. This is primarily of use for defining a contract when writing
template code that wants to define a certain exception guarantee.

For example, i assume you are familiar with the various guarantees
that have been described in literature about exceptions in C++ (if not
then it is worth looking up. It sure opened my eyes to writing safer and
better code in the presence of exceptions). To make some generic
container satisfy the strong guarantee will require certain
restrictions on the type used to instantiate the template. A good
example of this is that the destructor for the type must not throw an
exception. For a given generic implementation, there may be additional
restrictions as well. If these restrictions are not met, then the
container will no longer meet the strong guarantee. I wish to define a
method of marking up source code such that those requirements are
described inline in the code of the template implementation such that
someone who instantiates the template with a particular type can then
run EDoc++ over their code and be warned when that particular
instantiation may break the requirements.

Anyhow, this is a preliminary idea and i just don't have the time now to
look at implementing it. It will likely require changes to the C++
parser and front end to insert extra nodes into the tree for this
markup. I am also not sure if others would accept such a modification
into the official GCC release unless it was generic enough to be used
for other purposes (maybe such as providing optimization hints for
certain segments of code or other forms of markup).

Thanks,
Brendon.



Re: char* problems

2008-09-24 Thread Lijuan Hai
I have no gcc 4.1.2 at hand. but I just had a try with gcc-4.1.0 and
gcc-4.2.0 which compiled a simple testcase with no errors or warnings.
additionally, I had a try with some other compiler than gcc to compile
it. a warning issued.
I think it's possibly too strict of gcc raising a error on sch case.
any options that you added when compiling?

2008/9/15 Douglas Gemignani [EMAIL PROTECTED]:
 Dear friends,

 I have serious issues when compiling using gcc 4.1.2, everytime i try
 to pass a unsigned char* to a function that receives char*, i got
 errors, it also happens when passing const char* to char* or unsigned
 char* functions.

 This is really annoying and the code is a working one in other system,
 i would like to foce the compilation, i already tryed to use the
 following flags:
 -fno-const-strings
 -Wwrite-strings
 -funsigned-char

 but none of them worked.

 Is there something that i can tell to gcc, other than making casts all
 over the code?
 Thanks

 []s
 Douglas




-- 
 Best wishes!
Yours,
Lijuan Hai
 _ _
 (_)(_)
 (,,)
 =()=
 ((__)\
 _|L\___/


Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Paolo Bonzini
Peter O'Gorman wrote:
 Yuhong Bao wrote:
 and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
 Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
 the link I mentioned.
 
 Apple does not use a GPLv3 version of GCC.

Ah, actually I think I now see the OP's point.  Apple is scared of the
GPLv3 because the iPhone might violate it, so they are not contributing
to anything that falls under the GPLv3.

It is indeed in-topic.  There are four Darwin maintainers listed in
MAINTAINERS:

darwin port Dale Johannesen [EMAIL PROTECTED]
darwin port Mike Stump  [EMAIL PROTECTED]
darwin port Eric Christopher[EMAIL PROTECTED]
darwin port Stan Shebs  [EMAIL PROTECTED]

and three of them are not allowed to read the GCC patches mailing list.
   They might do something if CCed, but not necessarily so.  Same for
Objective-C/C++:

objective-c/c++ Mike Stump  [EMAIL PROTECTED]
objective-c/c++ Stan Shebs  [EMAIL PROTECTED]


Now I wonder:

1) does it make sense to keep a maintainer category that is known to be
inactive?

2) who should then get maintainership of darwin?  note that there are
some patches for darwin like this one:
http://article.gmane.org/gmane.comp.gcc.patches/172498

It's sad, but I think that there is need for the SC to take action on this.

Paolo



Re: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Simon Hill
Brendon Costa said:
 The author of the template class or container can't know
 what types of exceptions will be thrown from them, so you must define
 them as being able to throw all exceptions (which is how they are
 currently).
Ouch, you have a point. But couldn't you put this round the other way.
Place the onus on the user of the template to comply with the
exception guarantees inside the template. Unfortunately that would
likely cause problems with some existing code.

I'm trying to think whether this would actually prevent well-designed
future code. All I can really come up with so far is copying a vector
of vectors and having bad_alloc thrown during a copy constructor
partway through, but I think bad_alloc should be allowed. Other
things, such as constructing a vector of N thread objects that can
throw on failed thread creation, might be better off undergoing a
redesign.

In other words, would you gain more from a tight exception
specification than you'd lose by not being able to do this?

Another thought that could be a workaround: Is it possible to do
anything like this?
===
template typename E
int foo() throw(E) {}
===
IE using a template parameter to specify what can be thrown. (Esp with
a C++0X variadic).
Sorry I won't be near a compiler to test this for many an hour, if I
test it and can get it working I'll reply.


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Jack Howarth
On Wed, Sep 24, 2008 at 11:47:18AM +0200, Paolo Bonzini wrote:
 Peter O'Gorman wrote:
  Yuhong Bao wrote:
  and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
  Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
  the link I mentioned.
  
  Apple does not use a GPLv3 version of GCC.
 
 Ah, actually I think I now see the OP's point.  Apple is scared of the
 GPLv3 because the iPhone might violate it, so they are not contributing
 to anything that falls under the GPLv3.
 
 It is indeed in-topic.  There are four Darwin maintainers listed in
 MAINTAINERS:
 
 darwin port Dale Johannesen [EMAIL PROTECTED]
 darwin port Mike Stump  [EMAIL PROTECTED]
 darwin port Eric Christopher[EMAIL PROTECTED]
 darwin port Stan Shebs  [EMAIL PROTECTED]
 
 and three of them are not allowed to read the GCC patches mailing list.
They might do something if CCed, but not necessarily so.  Same for
 Objective-C/C++:
 
 objective-c/c++ Mike Stump  [EMAIL PROTECTED]
 objective-c/c++ Stan Shebs  [EMAIL PROTECTED]
 
 
 Now I wonder:
 
 1) does it make sense to keep a maintainer category that is known to be
 inactive?
 
 2) who should then get maintainership of darwin?  note that there are
 some patches for darwin like this one:
 http://article.gmane.org/gmane.comp.gcc.patches/172498
 
 It's sad, but I think that there is need for the SC to take action on this.
 
 Paolo

Well at least that explains their total inactivity in the last year. Is Dale
the one still allowed to read the gcc-patches mailing list? I recall that he
posted in the last year that he would be more active in gcc (but I can't find
that message at the moment). I had attributed the fact that they were not
active to the emphasis on llvm at Apple. However if GPLv3 is such a huge issue
at Apple, it does make one wonder if llvm will ever see a gcc front-end newer
than the current 4.2 one.
 Jack


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Yuhong Bao [EMAIL PROTECTED] writes:

 1) This is offtopic.
 Yeah, but I want to bring this up because I can tell it is affecting GCC
 development.

From http://gcc.gnu.org/ml/gcc/2008-02/msg00523.html:
  If someone steps forward, are you allowed to follow the patches list
 We can't read the patches nor gcc list.
 and give feedback and/or approve patches for new contributors? I assume
 this is possible since you helped out with objc++ review for me just
 recently.
 Only because I was cced on it.

From http://gcc.gnu.org/ml/gcc/2008-02/msg00516.html:
  Are current Darwin maintainers working on fixing anything in the FSF
 sources?
 Currently no. The transition to GPL v3 is problematic for us in the
 short/mid term. :-( Longer term, we'll see how it goes.

Apple's dislike of GPLv3 is a problem for gcc, yes.  However, Apple is
moving to a new free compiler, LLVM, so they have little incentive to
fix the problem.  My understanding of Apple's current position is that
they won't take any action until they see the final version of the gcc
runtime license.  gcc's runtime libraries have not yet been updated to
GPLv3, because the FSF has not yet settled on the final version of the
appropriate license to use for those libraries (yes, this has taken a
ridiculously long time, largely because the FSF is trying to get the
plugin license right at the same time).  Until the runtime library
licenses have been updated, there is little point in discussing
Apple's future contributions to gcc.  Since Apple is moving to a new
compiler, it is likely that Apple will have negligible future
contributions to gcc in any case, though some individuals employed by
Apple may be able to once again contribute on their own time.


 2) You didn't say what the problem is.  I certainly can't figure it
 out from the links you posted.
 Basically, what happened is that Apple created a Tivoized device called the
 iPhone,
 and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
 Unfortunately, the iPhone is incompatible with GPLv3, if you want more see
 the link I mentioned. 

Using gcc to compile your code does not impose any licensing
requirements on that code.  Many people use gcc to create proprietary
software.  This is understood and is in fact desirable.  This is not a
problem to be solved.  Morevoer, as Peter pointed out, GPLv3 is a
total red herring here, since Apple has very carefully avoided any use
of it.  Not that gcc being under GPLv3 makes any difference
whatsoever, as the iPhone would still be permitted regardless.

Ian


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Paolo Bonzini
 Well at least that explains their total inactivity in the last year. Is Dale
 the one still allowed to read the gcc-patches mailing list?

No, that would be Stan just because he's not at Apple.

It must be said also that Mike Stump accepted to review/discuss
Darwin/ObjC patches that he was CCed on, but most people don't know that
they need to do so.

As a side note, Mike also wrote this last February:

 The SC knows of the issue

Still, after six months it would be nice to have a clearer idea of what
will happen with respect to Darwin/ObjC, especially since the previous
statement (which I suppose was as clear as Mike could do) was buried
under an unrelated thread.

Paolo


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Ian Lance Taylor
Paolo Bonzini [EMAIL PROTECTED] writes:

 Ah, actually I think I now see the OP's point.  Apple is scared of the
 GPLv3 because the iPhone might violate it, so they are not contributing
 to anything that falls under the GPLv3.

...

 1) does it make sense to keep a maintainer category that is known to be
 inactive?

 2) who should then get maintainership of darwin?  note that there are
 some patches for darwin like this one:
 http://article.gmane.org/gmane.comp.gcc.patches/172498

 It's sad, but I think that there is need for the SC to take action on this.

I personally don't think there is any need to remove them as
maintainers until the FSF finally produces the GPLv3 version of the
runtime library license.  At that point Apple will be out of excuses,
and will have to finally decide in or out on future gcc developmnt.

It's worth noting that in a larger sense, Apple is simply not
interested in contributing to gcc.  If they were interested, they
would contribute.  They (for some version of they) are using GPLv3
as a tactic to get out of the gcc game while blaming it on us.  They
have not raised any actual substantial issue with the GPLv3, which is
not surprising, since the GPLv3 does not impose any additional
requirements on them beyond GPLv2.  However, the gcc community can't
call them on that until the runtime library license is complete, as
its absence is indeed a valid objection.


Jack Howarth [EMAIL PROTECTED] writes:

 However if GPLv3 is such a huge issue
 at Apple, it does make one wonder if llvm will ever see a gcc front-end newer
 than the current 4.2 one.

The LLVM folks are writing a new frontend anyhow.  In the future they
presumably plan to stop using the gcc frontend.  gcc's code is so
tangled anyhow, it's not like using the gcc frontend somehow makes
LLVM compile code the same way gcc does.

Ian


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Duncan Sands
  However if GPLv3 is such a huge issue
  at Apple, it does make one wonder if llvm will ever see a gcc front-end 
  newer
  than the current 4.2 one.
 
 The LLVM folks are writing a new frontend anyhow.  In the future they
 presumably plan to stop using the gcc frontend.  gcc's code is so
 tangled anyhow, it's not like using the gcc frontend somehow makes
 LLVM compile code the same way gcc does.

I'm quite interested in porting llvm-gcc to gcc head, in order to
get better Ada support.  Apple isn't planning Ada support in their
new compiler (clang) as far as I know :)

Duncan.

PS: I have no connection with Apple.


Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Basile STARYNKEVITCH

Ian Lance Taylor wrote:

Paolo Bonzini [EMAIL PROTECTED] writes:

It's sad, but I think that there is need for the SC to take action on this.


I personally don't think there is any need to remove them as
maintainers until the FSF finally produces the GPLv3 version of the
runtime library license.  At that point Apple will be out of excuses,
and will have to finally decide in or out on future gcc development.



I am probably not alone to be extremely interested in understanding more 
clearly what is happening on the runtime library license side, 
especially with relation to plugins.


The recent thread http://gcc.gnu.org/ml/gcc/2008-09/msg00292.html
Defining a common plugin machinery is particularly concerned with this 
issue (of runtime library license). I'm guessing that since Diego 
Novillo asked something, he was expecting/dreaming/knowing? about some 
evolution on this.


Is it top secret information only available to some few members of the 
Steering Committee, or is some information sharable on this list? Just 
knowing that indeed a runtime library license will be finalized before 
Christmas (ie in 2008) and that GPL-ed plugins will be somehow blessed 
by the SC (or is it the FSF) will be a big relief.


Is something happening on runtime library license, or is there some 
unexpected issue which affects existing branches experimenting plugins 
(e.g. MELT)?


The only thing I know about runtime library license is the stuff I heard 
and read at the june 2008 GCC summit, and I am guessing that a lot of 
things happened since. IIRC, I remember having heard in june 2008 that 
we have only months, not years, to wait (I did not understood exactly 
for what, but it was runtime licence related).


In particular, if dlopen-ing GPL-ed (and even FSF copyright-ed) code is 
still a taboo in GCC, I would be glad to be informed...


[I'm writing in some proposals, to get money to work on GCC, that 
plugins are indeed appearing in GCC; I hope that I am not entirely wrong]


Regards.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basileatstarynkevitchdotnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Re: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Ian Lance Taylor
Basile STARYNKEVITCH [EMAIL PROTECTED] writes:

 Is it top secret information only available to some few members of the
 Steering Committee, or is some information sharable on this list? Just
 knowing that indeed a runtime library license will be finalized before
 Christmas (ie in 2008) and that GPL-ed plugins will be somehow
 blessed by the SC (or is it the FSF) will be a big relief.

I have no additional information.  I just want to make the point that
these issues involve lawyers, and they involve RMS, and it's not a
major priority for any of them.  It takes time.  It's frustrating.
But it is most likely not the case that secret negotiations are
happening.  It is far more likely that nothing is happening at all.

There is a simple technique which anybody is free to use to make this
happen much faster: make a large donation to the SFLC and/or the FSF,
contingent on this issue being finished.  In the absence of that, it
will happen in the time that people have available to work on it.

Ian


Mainline bootstrap failure on powerpc64-darwin, but looks generic

2008-09-24 Thread Bradley Lucier

I'm just not having any luck bootstrapping this thing ...

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


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Jack Howarth
On Wed, Sep 24, 2008 at 04:33:35PM +0200, Paolo Bonzini wrote:
  Well at least that explains their total inactivity in the last year. Is Dale
  the one still allowed to read the gcc-patches mailing list?
 
 No, that would be Stan just because he's not at Apple.
 
 It must be said also that Mike Stump accepted to review/discuss
 Darwin/ObjC patches that he was CCed on, but most people don't know that
 they need to do so.
 
 As a side note, Mike also wrote this last February:
 
  The SC knows of the issue
 
 Still, after six months it would be nice to have a clearer idea of what
 will happen with respect to Darwin/ObjC, especially since the previous
 statement (which I suppose was as clear as Mike could do) was buried
 under an unrelated thread.
 
 Paolo

Do we know if Apple still intends to update the ObjC in FSF gcc to v2.0?
Jack


Re: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread NightStrike
On Wed, Sep 24, 2008 at 11:26 AM, Ian Lance Taylor [EMAIL PROTECTED] wrote:
 Basile STARYNKEVITCH [EMAIL PROTECTED] writes:

 Is it top secret information only available to some few members of the
 Steering Committee, or is some information sharable on this list? Just
 knowing that indeed a runtime library license will be finalized before
 Christmas (ie in 2008) and that GPL-ed plugins will be somehow
 blessed by the SC (or is it the FSF) will be a big relief.

 I have no additional information.  I just want to make the point that
 these issues involve lawyers, and they involve RMS, and it's not a
 major priority for any of them.  It takes time.  It's frustrating.
 But it is most likely not the case that secret negotiations are
 happening.  It is far more likely that nothing is happening at all.

 There is a simple technique which anybody is free to use to make this
 happen much faster: make a large donation to the SFLC and/or the FSF,
 contingent on this issue being finished.  In the absence of that, it
 will happen in the time that people have available to work on it.

How large is large?


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Chris Lattner

On Sep 24, 2008, at 8:51 AM, Jack Howarth wrote:

The SC knows of the issue


Still, after six months it would be nice to have a clearer idea of  
what
will happen with respect to Darwin/ObjC, especially since the  
previous
statement (which I suppose was as clear as Mike could do) was  
buried

under an unrelated thread.

Paolo


Do we know if Apple still intends to update the ObjC in FSF gcc to  
v2.0?

   Jack


We don't have any short-term plans to do so.  However, all the code  
for ObjC 2.0 and even the new C Blocks feature is available in the  
llvm-gcc repository.  One potential issue is that while Apple has a  
blanket copyright assignment with the FSF, I don't know whether code  
in the llvm-gcc repo is auto-assigned to the FSF.


-Chris


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner

On Sep 24, 2008, at 7:06 AM, Ian Lance Taylor wrote:

fix the problem.  My understanding of Apple's current position is that
they won't take any action until they see the final version of the gcc
runtime license.


Basically, what happened is that Apple created a Tivoized device  
called the

iPhone,
and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
Unfortunately, the iPhone is incompatible with GPLv3, if you want  
more see

the link I mentioned.


Using gcc to compile your code does not impose any licensing
requirements on that code.


I'm not speaking for Apple here, and I am not a lawyer.  However, the  
last draft of the runtime library exception clause (which is quite old  
by now) imposed licensing restrictions on the executables generated by  
GCC (due to linked runtime libraries) if you did certain things to the  
compiler.  I'm personally very eager to see the final wording, because  
the draft I saw (again, which is old and has certainly changed) was  
extremely aggressive.


-Chris


Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 8:02 AM, Duncan Sands wrote:


However if GPLv3 is such a huge issue
at Apple, it does make one wonder if llvm will ever see a gcc  
front-end newer

than the current 4.2 one.


The LLVM folks are writing a new frontend anyhow.  In the future they
presumably plan to stop using the gcc frontend.  gcc's code is so
tangled anyhow, it's not like using the gcc frontend somehow makes
LLVM compile code the same way gcc does.


I'm quite interested in porting llvm-gcc to gcc head, in order to
get better Ada support.


As Duncan says here, Apple and the LLVM Project really are separable  
entities.  As a developer on the LLVM Project, I'd love to see a new  
version of llvm-gcc based on ToT GCC.  I'm not sure how technically  
feasible it is, but it would be even better for future versions of  
llvm-gcc to be based on the new GCC plugin model.


-Chris


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 10:01 AM, Chris Lattner wrote:


requirements on that code.


I'm not speaking for Apple here, and I am not a lawyer.  However,  
the last draft of the runtime library exception clause (which is  
quite old by now)


I'm sorry, to be clear, I meant the last draft *that I saw* (which is  
quite old...


-Chris



Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Joe Buck
On Wed, Sep 24, 2008 at 10:05:37AM -0700, Chris Lattner wrote:
 
 On Sep 24, 2008, at 10:01 AM, Chris Lattner wrote:
 
 requirements on that code.
 
 I'm not speaking for Apple here, and I am not a lawyer.  However,  
 the last draft of the runtime library exception clause (which is  
 quite old by now)
 
 I'm sorry, to be clear, I meant the last draft *that I saw* (which is  
 quite old...

While I'm not eager to continue this thread, the draft you saw was
rejected by pretty much everyone (in particular, the SC pushed back hard)
and has been replaced by much narrower language, so I hope that no one
panics based on your message.




Re: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Ian Lance Taylor
NightStrike [EMAIL PROTECTED] writes:

 There is a simple technique which anybody is free to use to make this
 happen much faster: make a large donation to the SFLC and/or the FSF,
 contingent on this issue being finished.  In the absence of that, it
 will happen in the time that people have available to work on it.

 How large is large?

More than you want to pay personally.  Think: enough to hire another
staff member to work on it.

To be clear, I'm not saying it won't get done.  It will get done.  But
it is in effect like any other volunteer job.  Our position with
regard to the people who need to do the work is like a gcc user's
position with regard to us.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Chris Lattner [EMAIL PROTECTED] writes:

 On Sep 24, 2008, at 7:06 AM, Ian Lance Taylor wrote:
 fix the problem.  My understanding of Apple's current position is that
 they won't take any action until they see the final version of the gcc
 runtime license.

 Basically, what happened is that Apple created a Tivoized device
 called the
 iPhone,
 and Apple uses GCC (which is now under GPLv3) and Mac OS X on it.
 Unfortunately, the iPhone is incompatible with GPLv3, if you want
 more see
 the link I mentioned.

 Using gcc to compile your code does not impose any licensing
 requirements on that code.

 I'm not speaking for Apple here, and I am not a lawyer.  However, the
 last draft of the runtime library exception clause (which is quite old
 by now) imposed licensing restrictions on the executables generated by
 GCC (due to linked runtime libraries) if you did certain things to the
 compiler.  I'm personally very eager to see the final wording, because
 the draft I saw (again, which is old and has certainly changed) was
 extremely aggressive.

I do not know what draft you saw, but I don't think I ever saw it,
unless we disagree on the meaning of extremely aggressive.

In the general sense, you are most likely correct: if you modify gcc
by adding GPL-incompatible software used to generate code, it is
likely that you will not be granted any exception to the GPL when
using the runtime library.  In other words, if you 1) add an
optimization pass to gcc using the (hypothetical) plugin architecture,
and 2) that optimization pass is not licensed under a GPL-compatible
license, and 3) you generate object code using that optimization pass,
and 4) you link that generated object code with the gcc runtime
library (e.g., libgcc or libstdc++-v3), then you will not be permitted
to distribute the resulting executable except under the terms of the
GPL.

This does not of course affect LLVM, which is not under a
GPL-incompatible license.

This is intended to be a mechanism to use the runtime libraries as a
hook to prevent people from distributing GPL-incompatible plugins for
gcc.

This message is not intended to describe the final version of the
runtime library license, which does not exist.  Nor does it represent
the official position of the gcc steering committee, the FSF, the
SFLC, or, for that matter, Google.  This describes my personal
understanding of the intent of the current drafting process.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Joe Buck

Chris Lattner [EMAIL PROTECTED] writes:
  I'm not speaking for Apple here, and I am not a lawyer.  However, the
  last draft of the runtime library exception clause (which is quite old
  by now) imposed licensing restrictions on the executables generated by
  GCC (due to linked runtime libraries) if you did certain things to the
  compiler.  I'm personally very eager to see the final wording, because
  the draft I saw (again, which is old and has certainly changed) was
  extremely aggressive.

On Wed, Sep 24, 2008 at 10:50:13AM -0700, Ian Lance Taylor wrote:
 I do not know what draft you saw, but I don't think I ever saw it,
 unless we disagree on the meaning of extremely aggressive.

There was a first version that had some problems, forbidding things
that weren't intended to be forbidden and with muddy language making
the scope of the GCC exception unclear.  But this was never intentional.




Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner

On Sep 24, 2008, at 10:50 AM, Ian Lance Taylor wrote:

I'm not speaking for Apple here, and I am not a lawyer.  However, the
last draft of the runtime library exception clause (which is quite  
old
by now) imposed licensing restrictions on the executables generated  
by
GCC (due to linked runtime libraries) if you did certain things to  
the
compiler.  I'm personally very eager to see the final wording,  
because

the draft I saw (again, which is old and has certainly changed) was
extremely aggressive.


I do not know what draft you saw, but I don't think I ever saw it,
unless we disagree on the meaning of extremely aggressive.

In the general sense, you are most likely correct: if you modify gcc
by adding GPL-incompatible software used to generate code, it is
likely that you will not be granted any exception to the GPL when
using the runtime library.  In other words, if you 1) add an
optimization pass to gcc using the (hypothetical) plugin architecture,
and 2) that optimization pass is not licensed under a GPL-compatible
license, and 3) you generate object code using that optimization pass,
and 4) you link that generated object code with the gcc runtime
library (e.g., libgcc or libstdc++-v3), then you will not be permitted
to distribute the resulting executable except under the terms of the
GPL.


Again, speaking for myself as an individual:

This was many months ago, and I did not retain a copy of the draft.   
In any case, it doesn't really matter because the draft probably has  
changed.  However, the intent of pieces of the exception clause was  
pretty much what you said above.



This does not of course affect LLVM, which is not under a
GPL-incompatible license.


Right.  However, the wording I saw was much broader than just the  
plugin model.  It was vague and poorly worded, and you could interpret  
it as saying that use of a non-GPL assembler or linker was also not  
allowed to build or link the libraries.


My personal feeling on the matter is that it seems very strange to  
talk about *compiler plugins* in the license for *runtime libraries*.  
Considering that there are already widely available alternative  
libraries (e.g. the apache stdc++ library and many others) it seems  
potentially damaging to the GCC community to try to address the plugin  
issue this way.


In any case, this thread should probably be killed, as we won't know  
until the FSF publishes the final proposed wording what the end result  
will be.  I am (personally) looking forward to this, and I  
(personally) wish that the FSF was a lot more transparent on this  
issue, for the sake of the GCC community.


-Chris



Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Joe Buck
On Wed, Sep 24, 2008 at 11:11:41AM -0700, Chris Lattner wrote:
 Right.  However, the wording I saw was much broader than just the  
 plugin model.  It was vague and poorly worded, and you could interpret  
 it as saying that use of a non-GPL assembler or linker was also not  
 allowed to build or link the libraries.

That's the version that was dumped, exactly for the reasons you state.


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Eric Christopher
On Wed, Sep 24, 2008 at 11:22 AM, Joe Buck [EMAIL PROTECTED] wrote:
 On Wed, Sep 24, 2008 at 11:11:41AM -0700, Chris Lattner wrote:
 Right.  However, the wording I saw was much broader than just the
 plugin model.  It was vague and poorly worded, and you could interpret
 it as saying that use of a non-GPL assembler or linker was also not
 allowed to build or link the libraries.

 That's the version that was dumped, exactly for the reasons you state.

Excellent. I'm glad to hear that since I had also seen it and thought that
it was unacceptable in general (speaking for myself).

Anyhow, I hope to see all of this resolved at some point.

-eric


Re: Runtime library license, was Re: Apple-employed maintainers (was Re: Apple, iPhone, and GPLv3 troubles)

2008-09-24 Thread Basile STARYNKEVITCH

Ian Lance Taylor wrote:

NightStrike [EMAIL PROTECTED] writes:


There is a simple technique which anybody is free to use to make this
happen much faster: make a large donation to the SFLC and/or the FSF,
contingent on this issue being finished.  In the absence of that, it
will happen in the time that people have available to work on it.

How large is large?


More than you want to pay personally.  Think: enough to hire another
staff member to work on it.

To be clear, I'm not saying it won't get done.  It will get done.  But
it is in effect like any other volunteer job.  Our position with
regard to the people who need to do the work is like a gcc user's
position with regard to us.



I fully understand that position, but it triggers another question: what 
company (or kind of companies) would want GCC plugins to happen really fast?


Is there any big coorporation, already contributing to GCC, which needs 
plugin quickly? I cannot name any.


My feeling is that plugin will become progressively extremely useful to 
*new* companies, which are not yet working within GCC. This mostly is 
the case because in my perception plugins will open new use of GCC, like 
illustrated by the replacing sed  grep by gcc papers from Mozilla 
folks (Tarek et al.). My intuition is that plugins will mostly enhance 
all the non-code-generation activities in GCC.


Big hardware companies (those traditionally investing in GCC, like 
Intel, AMD, Apple, ...) probably do not need plugins (except if they 
wanted to provide *proprietary* plugins, which I believe the next 
runtime license will try to prohibit), they can and do contribute to GCC 
inside.


Big software or services companies (IBM, Google) probably also don't 
need plugins (except to enhance GCC with a plugin that they use only in 
house and do not intend to distribute, but for that use an inhouse 
patched GCC is enough).


So I cannot guess a company willing to invest big bucks on the runtime 
license issue, but I am probably wrong (and not naive enough to believe 
that companies will discuss their GCC related strategies  motivations 
here, publicly, on this list).


Regards
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basileatstarynkevitchdotnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 11:22 AM, Joe Buck wrote:


On Wed, Sep 24, 2008 at 11:11:41AM -0700, Chris Lattner wrote:

Right.  However, the wording I saw was much broader than just the
plugin model.  It was vague and poorly worded, and you could  
interpret

it as saying that use of a non-GPL assembler or linker was also not
allowed to build or link the libraries.


That's the version that was dumped, exactly for the reasons you state.


I look forward to seeing the updated version - someday.

-Chris


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Steven Bosscher
On Wed, Sep 24, 2008 at 4:06 PM, Ian Lance Taylor [EMAIL PROTECTED] wrote:
 Apple's dislike of GPLv3 is a problem for gcc, yes.

Well, excuse me for being a-political, but I don't see this problem.
The relationship between GCC and Apple has never been really good
AFAIK, but that hasn't hampered either to be quite successful. And
w.r.t. GCC development - I don't know where/how the money flows, but
at least the publicly the contributions from Apple to the FSF GCC are
pretty marginal.

Gr.
Steven


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Paolo Bonzini
Steven Bosscher wrote:
 On Wed, Sep 24, 2008 at 4:06 PM, Ian Lance Taylor [EMAIL PROTECTED] wrote:
 Apple's dislike of GPLv3 is a problem for gcc, yes.
 
 Well, excuse me for being a-political, but I don't see this problem.
 The relationship between GCC and Apple has never been really good
 AFAIK, but that hasn't hampered either to be quite successful.

I agree with you, but if you don't look at GCC as a whole -- but rather
at the small intersection represented by FSF GCC on Darwin -- it *has*
hampered it.

Apple GCC is basically a fork nowadays, and it is often impossible to
compile Leopard application using FSF GCC (in turn because of the lack
of Objective-C 2.0 support).  Sometimes I wonder why Darwin is still
part of FSF GCC, just like it is not supported in binutils or gdb... I
guess just for the sake of GCC developers that are working on a Mac.

Even outside *-*-darwin*, what caused the development of two separate
Objective-C runtimes, the one in FSF GCC being a big chainball for the
removal of dead code from the compiler?  Note that basically all
Objective-C code in existence either does not care about the runtime, or
has support for both runtimes; so it would not be a problem to deprecate
libobjc if Apple contributed their own implementation.  (There is now a
third runtime, named Étoilé).

Paolo

ps: of course, there is no offense intended for poor Mike who's CCed in
this thread.


Re: C/C++ FEs: Do we really need three char_type_nodes?

2008-09-24 Thread Jason Merrill

Joe Buck wrote:

On Tue, Sep 23, 2008 at 05:51:23PM -0400, Jason Merrill wrote:

Mark Mitchell wrote:

Is that desirable?  Type-based alias analysis should be able to take
advantage of the difference between them; a char ** and a signed char
** cannot point at the same thing, for example.
They can.  In C++, a char* (or unsigned char*) can alias anything, and 
any signed/unsigned type can alias the other signage.


Right, but a char** points to a char*, and a signed char** points to a
signed char*.  The aliasing exception for char pointers doesn't cover this
case the way it does for the one star case.


Oops, I was overlooking the second *.

Jason



RE: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Yuhong Bao

BTW, one of the reason I posted this was that I wanted to privately talk about 
the politics behind this issue with someone internal to Apple, and forward some 
of that to RMS and the FSF. Can this be done or is the politics all under NDA?

Because this issue isn't just limited to GCC, it is locking Apple out of an 
entire body of FOSS code.

Yuhong bao

 Date: Wed, 24 Sep 2008 21:14:42 +0200
 From: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 CC: [EMAIL PROTECTED]; [EMAIL PROTECTED]; gcc@gcc.gnu.org; [EMAIL PROTECTED]
 Subject: Re: Apple, iPhone, and GPLv3 troubles
 
 Steven Bosscher wrote:
 On Wed, Sep 24, 2008 at 4:06 PM, Ian Lance Taylor  wrote:
 Apple's dislike of GPLv3 is a problem for gcc, yes.
 
 Well, excuse me for being a-political, but I don't see this problem.
 The relationship between GCC and Apple has never been really good
 AFAIK, but that hasn't hampered either to be quite successful.
 
 I agree with you, but if you don't look at GCC as a whole -- but rather
 at the small intersection represented by FSF GCC on Darwin -- it *has*
 hampered it.
 
 Apple GCC is basically a fork nowadays, and it is often impossible to
 compile Leopard application using FSF GCC (in turn because of the lack
 of Objective-C 2.0 support).  Sometimes I wonder why Darwin is still
 part of FSF GCC, just like it is not supported in binutils or gdb... I
 guess just for the sake of GCC developers that are working on a Mac.
 
 Even outside *-*-darwin*, what caused the development of two separate
 Objective-C runtimes, the one in FSF GCC being a big chainball for the
 removal of dead code from the compiler?  Note that basically all
 Objective-C code in existence either does not care about the runtime, or
 has support for both runtimes; so it would not be a problem to deprecate
 libobjc if Apple contributed their own implementation.  (There is now a
 third runtime, named Étoilé).
 
 Paolo
 
 ps: of course, there is no offense intended for poor Mike who's CCed in
 this thread.
_



Re: char* problems

2008-09-24 Thread Andrew Pinski
On Wed, Sep 24, 2008 at 2:47 AM, Lijuan Hai [EMAIL PROTECTED] wrote:
 I have no gcc 4.1.2 at hand. but I just had a try with gcc-4.1.0 and
 gcc-4.2.0 which compiled a simple testcase with no errors or warnings.
 additionally, I had a try with some other compiler than gcc to compile
 it. a warning issued.
 I think it's possibly too strict of gcc raising a error on sch case.
 any options that you added when compiling?

Well lets put it this way, this is invalid code as char, signed char,
and unsigned char are three distant types so the pointers to each of
them are not compatible which means you need an explicit cast.

The C++ compiler errors out by default, you can change the error to a
warning with -fpermissive.
While the C front-end warns by default, you can change the warning to
an error with -pedantic-errors.

Thanks,
Andrew Pinski


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Yuhong Bao [EMAIL PROTECTED] writes:

 BTW, one of the reason I posted this was that I wanted to privately
 talk about the politics behind this issue with someone internal to
 Apple, and forward some of that to RMS and the FSF. Can this be done
 or is the politics all under NDA?

Well, good luck.  The people you need to talk to, with respect to
Apple and GPLv3, are not reading this mailing list.  We've already
talked to some of them, and the situation as I understand it is what I
already outlined, with the obvious proviso that I do not work at
Apple.  A couple of people from Apple have now commented on this
thread; go ahead and mail them directly.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Ian Lance Taylor
Chris Lattner [EMAIL PROTECTED] writes:

 My personal feeling on the matter is that it seems very strange to
 talk about *compiler plugins* in the license for *runtime libraries*.
 Considering that there are already widely available alternative
 libraries (e.g. the apache stdc++ library and many others) it seems
 potentially damaging to the GCC community to try to address the plugin
 issue this way.

Here's the problem: the FSF doesn't really want to permit plugins.
Many members of the gcc community, including myself, think they are
very important.  The FSF doesn't want plugins because they are
concerned that people will start distributing proprietary plugins to
gcc.  I personally think this is a fear from twenty years ago which
shows a lack of understanding of today's compiler market, but, that
said, the FSF wants to cover themselves for the future as well.

So, how do we permit plugins while prohibiting proprietary plugins,
and how do we do it while staying within the bounds of copyright law
which is the basis of the GPL?

It's not an easy problem to solve.  Using the runtime library license
to solve it is a nice little bit of legal jujitsu.  Presumably we
could go ahead and use a simple runtime library license, similar to
the existing one, which doesn't address the plugin issue.  But we
still want plugins, and then how do we get them?  Separating the
problems doesn't make them easier to solve.

You are clearly right that the runtime license is potentially damaging
to the GCC community.  However, it's not like the people working on
this are stupid, and it's not like they are going to force it on
everybody without accepting comments.  So I think it's premature to
worry overly much about this.  The FSF has not yet made a major
licensing mistake.

Ian


Re: Apple, iPhone, and GPLv3 troubles

2008-09-24 Thread Chris Lattner


On Sep 24, 2008, at 12:57 PM, Ian Lance Taylor wrote:


Chris Lattner [EMAIL PROTECTED] writes:


My personal feeling on the matter is that it seems very strange to
talk about *compiler plugins* in the license for *runtime libraries*.
Considering that there are already widely available alternative
libraries (e.g. the apache stdc++ library and many others) it seems
potentially damaging to the GCC community to try to address the  
plugin

issue this way.


Here's the problem: the FSF doesn't really want to permit plugins.



So, how do we permit plugins while prohibiting proprietary plugins,
and how do we do it while staying within the bounds of copyright law
which is the basis of the GPL?


Does the obvious answer work?: add it to the license that covers the  
code in question.  Specifically, I think that it would be much more  
reasonable to add plugin wording to the license that covers the GCC  
compiler code itself.  This means that you couldn't use *GCC* if you  
did something the FSF found objectionable, closing an easy work-around.


-Chris


gcc-4.2-20080924 is now available

2008-09-24 Thread gccadmin
Snapshot gcc-4.2-20080924 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.2-20080924/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

gcc-4.2-20080924.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.2-20080924.tar.bz2 C front end and core compiler

gcc-ada-4.2-20080924.tar.bz2  Ada front end and runtime

gcc-fortran-4.2-20080924.tar.bz2  Fortran front end and runtime

gcc-g++-4.2-20080924.tar.bz2  C++ front end and runtime

gcc-java-4.2-20080924.tar.bz2 Java front end and runtime

gcc-objc-4.2-20080924.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.2-20080924.tar.bz2The GCC testsuite

Diffs from 4.2-20080917 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.2
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: Adding to G++: Adding a warning on throwing unspecified exceptions.

2008-09-24 Thread Brendon Costa
Simon Hill wrote:
 Brendon Costa said:
 The author of the template class or container can't know
 what types of exceptions will be thrown from them, so you must define
 them as being able to throw all exceptions (which is how they are
 currently).
 Ouch, you have a point. But couldn't you put this round the other way.
 Place the onus on the user of the template to comply with the
 exception guarantees inside the template. Unfortunately that would
 likely cause problems with some existing code.

 ...

 In other words, would you gain more from a tight exception
 specification than you'd lose by not being able to do this?

You as an author of a new template class could define it the other way.

The issue here is that doing so restricts usage of the generic
component. In specific cases this may be desirable, but not for generic
components like STL containers or those in boost. For generic components
you want to make them as useful as possible. Even if at the time of
writing the container you do not foresee that throwing any type of
exception is a good idea, users may come up with some way of using it
that you just never thought about.

I.e. I think the general philosophy is to define only what restrictions
are necessary to implement the template, not necessarily what we think
constitute good uses of the template at the time we created it.


Brendon.


[Bug c++/37553] [4.3/4.4 Regression] ICE in build_c_cast

2008-09-24 Thread doug dot gregor at gmail dot com


--- Comment #3 from doug dot gregor at gmail dot com  2008-09-24 06:01 
---
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01667.html


-- 


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



[Bug fortran/37634] New: Fix libgfortran compiling to support GCC_NO_EXECUTABLES

2008-09-24 Thread burnus at gcc dot gnu dot org
See: http://gcc.gnu.org/ml/fortran/2008-09/msg00380.html
and following emails.

The configure script does link tests which cause some kinds of cross
compilations to fail.

Solution (cf. email thread, see above link):
a) Approved patch in the link above
b) Remove AC_LIBTOOL_DLOPEN which does not seem to be used
c) Add an if-block around the AC_CHECK_FUNCS
d) Check what else is needed, e.g. AC_CHECK_LIB


-- 
   Summary: Fix libgfortran compiling to support GCC_NO_EXECUTABLES
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: build
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug fortran/37626] ICE for automatic deallocation of character result variable

2008-09-24 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2008-09-24 07:02 ---
Subject: Bug 37626

Author: burnus
Date: Wed Sep 24 07:01:18 2008
New Revision: 140624

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140624
Log:
2008-09-24  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/37626
* trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate
result variables.

2008-09-24  Tobias Burnus  [EMAIL PROTECTED]

PR fortran/37626
* gfortran.dg/allocatable_function_4.f90: New test.


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


-- 


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



[Bug testsuite/37623] builtin-math-4 tests fail

2008-09-24 Thread tim dot vanholder at anubex dot com


--- Comment #4 from tim dot vanholder at anubex dot com  2008-09-24 07:03 
---
Then perhaps either configure should reject the too-old version, or the
testcase should detect this situation and either skip the tests in question
and/or report that MPFR is too old. The situation as it stands is not very
helpful.


-- 


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



[Bug testsuite/37623] builtin-math-4 tests fail

2008-09-24 Thread ebotcazou at gcc dot gnu dot org


--- Comment #5 from ebotcazou at gcc dot gnu dot org  2008-09-24 07:18 
---
 Then perhaps either configure should reject the too-old version, or the
 testcase should detect this situation and either skip the tests in question
 and/or report that MPFR is too old. The situation as it stands is not very
 helpful.

See the comment at the beginning of the testcase.  Moreover, configure should
have reported that the version of MPFR is not optimal.


-- 


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



[Bug fortran/37583] ICE insert_bbt(): Duplicate key for self-calling ENTRY subprogram

2008-09-24 Thread pault at gcc dot gnu dot org


--- Comment #9 from pault at gcc dot gnu dot org  2008-09-24 08:05 ---
Fixed on trunk and 4.3

Thanks for the report

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/37583] ICE insert_bbt(): Duplicate key for self-calling ENTRY subprogram

2008-09-24 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2008-09-24 08:05 ---
Subject: Bug 37583

Author: pault
Date: Wed Sep 24 08:04:26 2008
New Revision: 140626

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140626
Log:
2008-09-24  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37583
* decl.c (scalarize_intrinsic_call): Both subroutines and
functions can give a true for get_proc_mame's last argument so
remove the gfc_current_ns-proc_name-attr.function.
resolve.c (resolve_actual_arglist): Add check for recursion by
reference to procedure as actual argument.

2008-09-24  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37583
* gfortran.dg/entry_18.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/entry_18.f90
Modified:
branches/gcc-4_3-branch/gcc/fortran/ChangeLog
branches/gcc-4_3-branch/gcc/fortran/decl.c
branches/gcc-4_3-branch/gcc/fortran/resolve.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/36700] [4.3/4.4 Regression] ICE on calling a function

2008-09-24 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2008-09-24 08:14 ---
Fixed on trunk and 4.3

Thanks for the report

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/35945] Complex module-based overloading fails

2008-09-24 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2008-09-24 08:14 ---
Subject: Bug 35945

Author: pault
Date: Wed Sep 24 08:12:47 2008
New Revision: 140627

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140627
Log:
2008-09-24  Paul Thomas  [EMAIL PROTECTED]

   PR fortran/35945
   * resolve.c (resolve_fl_variable_derived):  Remove derived type
   comparison for use associated derived types.  Host association
   of a derived type will not arise if there is a local derived type
   whose use name is the same.

   PR fortran/36700
   * match.c (gfc_match_call):  Use the existing symbol even if
   it is a function.

2008-09-24  Paul Thomas  [EMAIL PROTECTED]

   PR fortran/35945
   * gfortran.dg/host_assoc_types_2.f90: New test.

   PR fortran/36700
   * gfortran.dg/host_assoc_call_2.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/host_assoc_call_2.f90
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/host_assoc_types_2.f90
Modified:
branches/gcc-4_3-branch/gcc/fortran/ChangeLog
branches/gcc-4_3-branch/gcc/fortran/match.c
branches/gcc-4_3-branch/gcc/fortran/resolve.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/36700] [4.3/4.4 Regression] ICE on calling a function

2008-09-24 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2008-09-24 08:14 ---
Subject: Bug 36700

Author: pault
Date: Wed Sep 24 08:12:47 2008
New Revision: 140627

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140627
Log:
2008-09-24  Paul Thomas  [EMAIL PROTECTED]

   PR fortran/35945
   * resolve.c (resolve_fl_variable_derived):  Remove derived type
   comparison for use associated derived types.  Host association
   of a derived type will not arise if there is a local derived type
   whose use name is the same.

   PR fortran/36700
   * match.c (gfc_match_call):  Use the existing symbol even if
   it is a function.

2008-09-24  Paul Thomas  [EMAIL PROTECTED]

   PR fortran/35945
   * gfortran.dg/host_assoc_types_2.f90: New test.

   PR fortran/36700
   * gfortran.dg/host_assoc_call_2.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/host_assoc_call_2.f90
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/host_assoc_types_2.f90
Modified:
branches/gcc-4_3-branch/gcc/fortran/ChangeLog
branches/gcc-4_3-branch/gcc/fortran/match.c
branches/gcc-4_3-branch/gcc/fortran/resolve.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/35945] Complex module-based overloading fails

2008-09-24 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2008-09-24 08:14 ---
Fixed on trunk and 4.3

Thanks for the report

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug fortran/37635] New: Fortran 2008: Support LEADZ / TRAILZ

2008-09-24 Thread burnus at gcc dot gnu dot org
Requested by Richard Townsend at
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/1e4130b9720e4f2a

LEADZ and TRAILZ are rather common vendor extensions, e.g. supported by the
Intel compiler (it also allows for logical arguments).

LEADZ (I)
  Description. Number of leading zero bits.
  Argument. I shall be of type integer.
  Result Value. If all of the bits of I are zero, the result value is
BIT SIZE (I). [...]

TRAILZ (I)
  Description. Number of trailing zero bits.
  Argument. I shall be of type integer.


The implementation should be relatively easy using the following built-ins,
however, one presumably needs a special case for ZERO.

 BUILT_IN_CLZ*
 These functions return the number of leading 0-bits in a, starting
  at the most significant bit position. If a is zero, the result
  is undefined.
and
 BUILT_IN_CTZ*
 These functions return the number of trailing 0-bits in a, starting at the 
  least significant bit position. If a is zero, the result is undefined.
(Description copied from
http://gcc.gnu.org/onlinedocs/gccint/Integer-library-routines.html)

For compile-time simplification, MPFR does not seem to provide a ready-to-use
function; if one cooks up something oneself, one needs to check endian issues
(though there might be none).


-- 
   Summary: Fortran 2008: Support LEADZ / TRAILZ
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug fortran/36700] [4.3/4.4 Regression] ICE on calling a function

2008-09-24 Thread pault at gcc dot gnu dot org


--- Comment #8 from pault at gcc dot gnu dot org  2008-09-24 08:28 ---
Subject: Bug 36700

Author: pault
Date: Wed Sep 24 08:27:27 2008
New Revision: 140628

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140628
Log:
2008-09-24  Paul Thomas  [EMAIL PROTECTED]

   PR fortran/36700
   * gfortran.dg/host_assoc_call_2.f90: Correct typo.

Modified:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/host_assoc_call_2.f90


-- 


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



[Bug libstdc++/25191] exception_defines.h #defines try/catch

2008-09-24 Thread l dot lunak at suse dot cz


--- Comment #56 from l dot lunak at suse dot cz  2008-09-24 08:50 ---
(In reply to comment #55)
 It seems reasonable to me for try { X } catch... to mean X when
 -fno-exceptions.  We don't need to error except on throw.

It seems unreasonable to me that gcc would silently modify code's behaviour,
just like it would be unreasonable that -pedantic would silently change 'long
long i = 2LL  34;' to 'long i = 0;'. With today's complex build systems it is
not that difficult to get -fno-exceptions without noticing and then get code
that works differently than intended (and I'm not making this up, I had such a
real case).
If people really want code with exception handling to work with both
-fexception states, then they need to write the code with that in mind and then
they can as well just use __try/__catch macros the way libstdc++ does now, just
without breaking the code for the rest of people who can run into trouble if
the compiler/libraries try to outguess them.


-- 


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



[Bug middle-end/37601] [4.4 Regression] gcc-4.4-20080919 ada build failure

2008-09-24 Thread gcc at spatium dot org


--- Comment #3 from gcc at spatium dot org  2008-09-24 09:37 ---
Subject: Re:  [4.4 Regression] gcc-4.4-20080919 ada build failure

pinskia at gcc dot gnu dot org wrote 767 bytes:
 Can you try this again?

same thing with latest trunk.


-- 


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



[Bug middle-end/37170] [4.4 Regression]: gcc.dg/weak/weak-1.c

2008-09-24 Thread aldot at gcc dot gnu dot org


--- Comment #84 from aldot at gcc dot gnu dot org  2008-09-24 09:51 ---
The fix doesn't seem to work for me on arm:
$ cat pr-weak.c
/* tell the compiler that the count isn't in the small data section if the arch
 * has one (eg: FRV)
 */
extern const unsigned long kallsyms_num_syms
__attribute__((weak, section(.rodata)));

int main(void) {
  return !!kallsyms_num_syms;
}

$ /there.arm/usr/bin/arm-linux-uclibcgnueabi-gcc -Os -S -o - pr-weak.c -v
Using built-in specs.
Target: arm-linux-uclibcgnueabi
Configured with: /srcs/toolchain_build_arm_nofpu/gcc-4.4.0/configure
--prefix=/usr --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu
--target=arm-linux-uclibcgnueabi --enable-languages=c,fortran
--with-sysroot=/there.arm
--with-build-time-tools=/there.arm/usr/arm-linux-uclibcgnueabi/bin
--disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --enable-shared
--with-gmp=/srcs/toolchain_build_arm_nofpu/gmp
--with-mpfr=/srcs/toolchain_build_arm_nofpu/mpfr --disable-nls --enable-threads
--disable-multilib --with-float=soft --with-abi=aapcs-linux --disable-libssp
--disable-libssp --disable-libmudflap --disable-libgomp
--enable-decimal-float=no
Thread model: posix
gcc version 4.4.0 20080923 (experimental) [trunk revision 140602] (GCC) 
COLLECT_GCC_OPTIONS='-Os' '-S' '-o' '-' '-v' '-mfloat-abi=soft'
'-mabi=aapcs-linux'
 /there.arm/usr/bin/../libexec/gcc/arm-linux-uclibcgnueabi/4.4.0/cc1 -quiet -v
-iprefix /there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/ pr-weak.c
-quiet -dumpbase pr-weak.c -mfloat-abi=soft -mabi=aapcs-linux -auxbase-strip -
-Os -version -o -
ignoring nonexistent directory
/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/include
ignoring nonexistent directory /there.arm/usr/local/include
ignoring duplicate directory
/there.arm/usr/bin/../lib/gcc/../../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include
ignoring duplicate directory
/there.arm/usr/bin/../lib/gcc/../../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include-fixed
ignoring nonexistent directory
/there.arm/usr/bin/../lib/gcc/../../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/include
#include ... search starts here:
#include ... search starts here:
 /there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include
 /there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include-fixed
 /there.arm/usr/include
End of search list.
GNU C (GCC) version 4.4.0 20080923 (experimental) [trunk revision 140602]
(arm-linux-uclibcgnueabi)
compiled by GNU C version 4.3.2, GMP version 4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 071bc0f306e6057c8a651fee23ec8dfa
.cpu arm10tdmi
.fpu softvfp
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 2
.eabi_attribute 30, 4
.eabi_attribute 18, 4
.file   pr-weak.c
.text
.align  2
.global main
.type   main, %function
main:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L3
ldr r0, [r3, #0]
subsr0, r0, #0
movne   r0, #1
bx  lr
.L4:
.align  2
.L3:
.word   kallsyms_num_syms
.size   main, .-main
.ident  GCC: (GNU) 4.4.0 20080923 (experimental) [trunk revision
140602]
.section.note.GNU-stack,,%progbits
COMPILER_PATH=/there.arm/usr/bin/../libexec/gcc/arm-linux-uclibcgnueabi/4.4.0/:/there.arm/usr/bin/../libexec/gcc/:/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/bin/
LIBRARY_PATH=/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/:/there.arm/usr/bin/../lib/gcc/:/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/lib/:/there.arm/lib/:/there.arm/usr/lib/
COLLECT_GCC_OPTIONS='-Os' '-S' '-o' '-' '-v' '-mfloat-abi=soft'
'-mabi=aapcs-linux'

works with 4.3.2 configured in the same way.


-- 

aldot at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug fortran/35723] Can't use run-time array element in character declaration

2008-09-24 Thread domob at gcc dot gnu dot org


-- 

domob at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |domob at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-03-28 19:40:15 |2008-09-24 09:59:41
   date||


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



[Bug libgcj/37636] New: [4.4 regression] java tools are unable to find resource files

2008-09-24 Thread doko at ubuntu dot com
seen with 20080923 from the trunk, try running any of the tools:

$ /usr/lib/gcc-snapshot/bin/gjar -help
Exception in thread main java.lang.ExceptionInInitializerError
   at java.lang.Class.initializeClass(natClass.cc:792)
   at gnu.classpath.tools.common.Messages.getString(Messages.java:60)
   at
gnu.classpath.tools.common.ClasspathToolParser.getVersionString(ClasspathToolParser.java:65)
   at
gnu.classpath.tools.common.ClasspathToolParser.init(ClasspathToolParser.java:81)
   at
gnu.classpath.tools.common.ClasspathToolParser.init(ClasspathToolParser.java:76)
   at gnu.classpath.tools.jar.Main$JarParser.init(Main.java:151)
   at gnu.classpath.tools.jar.Main.initializeParser(Main.java:177)
   at gnu.classpath.tools.jar.Main.run(Main.java:268)
   at gnu.classpath.tools.jar.Main.main(Main.java:284)
Caused by: java.util.MissingResourceException: Bundle
gnu.classpath.tools.common.Messages not found for locale en_US by classloader
gnu.gcj.runtime.SystemClassLoader{urls=[file:./],
parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.util.ResourceBundle.getBundle(ResourceBundle.java:410)
   at java.util.ResourceBundle.getBundle(ResourceBundle.java:231)
   at gnu.classpath.tools.common.Messages.clinit(Messages.java:50)
   at java.lang.Class.initializeClass(natClass.cc:780)
   ...8 more


-- 
   Summary: [4.4 regression] java tools are unable to find resource
files
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: doko at ubuntu dot com


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



[Bug middle-end/37637] New: Build fails with reserved constraints

2008-09-24 Thread waldi at debian dot org
The build of the Debian gcc-snapshot package, version 20080923, fails to build
with this output from some sort of constraints check. This constraints are arch
specific.

build/genpreds -h ../../src/gcc/config/s390/s390.md  tmp-preds.h
../../src/gcc/config/s390/constraints.md:122: constraint letter 'G' is reserved
for const_double constraints
../../src/gcc/config/s390/constraints.md:129: constraint letter 'I' is reserved
for const_int constraints
../../src/gcc/config/s390/constraints.md:135: constraint letter 'J' is reserved
for const_int constraints
../../src/gcc/config/s390/constraints.md:141: constraint letter 'K' is reserved
for const_int constraints
../../src/gcc/config/s390/constraints.md:147: constraint letter 'L' is reserved
for const_int constraints
../../src/gcc/config/s390/constraints.md:157: constraint letter 'M' is reserved
for const_int constraints
../../src/gcc/config/s390/constraints.md:163: constraint letter 'P' is reserved
for const_int constraints
../../src/gcc/config/s390/constraints.md:197: constraint names beginning with
'N' (NxQS0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:203: constraint names beginning with
'N' (NxQD0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:209: constraint names beginning with
'N' (N3HD0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:215: constraint names beginning with
'N' (N2HD0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:221: constraint names beginning with
'N' (N1SD0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:227: constraint names beginning with
'N' (N1HS0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:233: constraint names beginning with
'N' (N1HD0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:239: constraint names beginning with
'N' (N0SD0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:245: constraint names beginning with
'N' (N0HS0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:251: constraint names beginning with
'N' (N0HD0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:257: constraint names beginning with
'N' (NxQDF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:263: constraint names beginning with
'N' (N1SDF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:269: constraint names beginning with
'N' (N0SDF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:275: constraint names beginning with
'N' (N3HDF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:281: constraint names beginning with
'N' (N2HDF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:287: constraint names beginning with
'N' (N1HDF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:293: constraint names beginning with
'N' (N0HDF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:299: constraint names beginning with
'N' (N0HSF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:305: constraint names beginning with
'N' (N1HSF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:311: constraint names beginning with
'N' (NxQSF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:317: constraint names beginning with
'N' (NxQHF) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:323: constraint names beginning with
'N' (NxQH0) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:336: constraint names beginning with
'O' (Os) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:345: constraint names beginning with
'O' (Op) are reserved for const_int constraints
../../src/gcc/config/s390/constraints.md:354: constraint names beginning with
'O' (On) are reserved for const_int constraints


-- 
   Summary: Build fails with reserved constraints
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: waldi at debian dot org
GCC target triplet: s390-*-linux-gnu


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



[Bug libstdc++/25191] exception_defines.h #defines try/catch

2008-09-24 Thread mark at codesourcery dot com


--- Comment #57 from mark at codesourcery dot com  2008-09-24 13:03 ---
Subject: Re:  exception_defines.h #defines try/catch

jason at gcc dot gnu dot org wrote:
 --- Comment #55 from jason at gcc dot gnu dot org  2008-09-23 20:43 
 ---
 It seems reasonable to me for try { X } catch... to mean X when
 -fno-exceptions.  We don't need to error except on throw.

We have to be careful, in some cases.  For example:

  extern int f();

  template typename T
  struct S {
static int i;
  };
  template typename T
  int ST::i = f();

 int main() {
try {
  return 0;
} catch (...) {
  return Sint::i;
}
  }

This program, IIRC, is guaranteed to call f, as a side-effect of the
presence of the catch-clause?  Of course, the C++ FE could still process
the catch clause; my only point is that we cannot literally just throw
away the catch clause.

I don't objection to -fno-exceptions silently discarding catch clauses,
as long as we avoid the kind of problem above.


-- 


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



[Bug fortran/37638] New: ICE in update_arglist_pass

2008-09-24 Thread sfilippone at uniroma2 dot it
Current version of gfortran dies with an ICE on the attached invalid code. 
- log ---
[EMAIL PROTECTED] F03]$ gfortran -v -c  foo-ext.f03
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure --prefix=/usr/local/gnutest
--with-mpfr=/usr/local/mpfr --with-gmp=/usr/local/gmp
--enable-languages=c,c++,fortran
Thread model: posix
gcc version 4.4.0 20080923 (experimental) (GCC) 
COLLECT_GCC_OPTIONS='-v' '-c' '-mtune=generic'
 /usr/local/gnutest/libexec/gcc/x86_64-unknown-linux-gnu/4.4.0/f951
foo-ext.f03 -quiet -dumpbase foo-ext.f03 -mtune=generic -auxbase foo-ext
-version -fintrinsic-modules-path
/usr/local/gnutest/lib/gcc/x86_64-unknown-linux-gnu/4.4.0/finclude -o
/tmp/cc5PDDfU.s
GNU Fortran (GCC) version 4.4.0 20080923 (experimental)
(x86_64-unknown-linux-gnu)
compiled by GNU C version 4.4.0 20080923 (experimental), GMP version
4.2.2, MPFR version 2.3.0.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
foo-ext.f03:10.13:

procedure, pass(a) :: makenull
1
Error: Procedure 'makenull' with PASS(a) at (1) has no argument 'a'
f951: internal compiler error: in update_arglist_pass, at
fortran/resolve.c:4380
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 
   Summary: ICE in update_arglist_pass
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sfilippone at uniroma2 dot it
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-09-24 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-09-24 13:51 ---
We need to look at CALL_EXPR_FN's type because the decltype of a call retrieves
the return type of the the function called, which may be a REFERENCE_TYPE. The
type of the expression will have stripped away that reference.


-- 


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



[Bug fortran/37638] ICE in update_arglist_pass

2008-09-24 Thread sfilippone at uniroma2 dot it


--- Comment #1 from sfilippone at uniroma2 dot it  2008-09-24 13:51 ---
Created an attachment (id=16400)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16400action=view)
test case

ICE-on-invalid


-- 


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



[Bug target/37629] auto-import of constant data results in a crash at runtime

2008-09-24 Thread jkolb at wsi dot com


--- Comment #2 from jkolb at wsi dot com  2008-09-24 14:07 ---
Binutils 2.19.50
Yes I have.  The linker switch does not help.


-- 


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



[Bug fortran/37638] ICE in update_arglist_pass

2008-09-24 Thread domob at gcc dot gnu dot org


--- Comment #2 from domob at gcc dot gnu dot org  2008-09-24 14:39 ---
Thanks for the report Salvatore, I'll take this one on.  It seems the new F2003
features are starting to getting used, from the bug-noise :D


-- 

domob at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||domob at gcc dot gnu dot org
 AssignedTo|unassigned at gcc dot gnu   |domob at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-09-24 14:39:00
   date||


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



[Bug fortran/37638] ICE in update_arglist_pass

2008-09-24 Thread sfilippone at uniroma2 dot it


--- Comment #3 from sfilippone at uniroma2 dot it  2008-09-24 14:50 ---
(In reply to comment #2)
 Thanks for the report Salvatore, I'll take this one on.  It seems the new 
 F2003
 features are starting to getting used, from the bug-noise :D
 
Unfortunately these features are not going to be very useful until CLASS() is
implemented; indeed, the code is invalid, but if you change pass(a) into
pass(m) it would still be invalid because the makenull procedure should be
written with a CLASS() and not a TYPE() argument. In fact, if you comment the
second contained subroutine the ICE goes away. 

As soon as CLASS() is in you (and PaulT) may expect a lot more noise :-) 


-- 


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



[Bug target/37629] auto-import of constant data results in a crash at runtime

2008-09-24 Thread brian at dessent dot net


--- Comment #3 from brian at dessent dot net  2008-09-24 15:24 ---
Subject: Re:  auto-import of constant data results in a crash 
 at runtime

So, is the segment containing the reference to ff_log2_tab writable? 
This still sounds like a linker issue not a compiler issue.


-- 


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



[Bug bootstrap/37639] New: Bootstrap fails with may be used uninitialized warning in c-parser.c

2008-09-24 Thread lucier at math dot purdue dot edu



-- 
   Summary: Bootstrap fails with may be used uninitialized warning
in c-parser.c
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: lucier at math dot purdue dot edu
 GCC build triplet: powerpc64-apple-darwin9.5.0
  GCC host triplet: powerpc64-apple-darwin9.5.0
GCC target triplet: powerpc64-apple-darwin9.5.0


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



[Bug bootstrap/37639] Bootstrap fails with may be used uninitialized warning in c-parser.c

2008-09-24 Thread lucier at math dot purdue dot edu


--- Comment #1 from lucier at math dot purdue dot edu  2008-09-24 15:34 
---
Created an attachment (id=16401)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16401action=view)
macro-expanded source of c-parser.c

Sorry for hitting return instead of tab in the initial report ...

Configured and bootstrapped with

[descartes:objdirs/mainline/gcc] lucier% cat
../../../mainline/build-and-check-gcc-64 
#!/bin/tcsh
/bin/rm -rf *; ../../mainline/configure CC='/usr/bin/gcc-4.0 -mcpu=970 -m64'
--build=powerpc64-apple-darwin9.5.0 --host=powerpc64-apple-darwin9.5.0
--target=powerpc64-apple-darwin9.5.0 --with-gmp-include=/sw/include/
--with-gmp-lib=/sw/lib/ppc64 --with-mpfr-include=/sw/include/
--with-mpfr-lib=/sw/lib/ppc64 --prefix=/pkgs/gcc-4.4.0-64
--with-libiconv-prefix=/usr  --with-system-zlib; make -j 4 bootstrap
BOOT_LDFLAGS='-Wl,-search_paths_first'  build.log  (make install)  (make
-k -j 8 check RUNTESTFLAGS=--target_board 'unix{-mcpu=970/-m64}'  
check.log ; make mail-report.log)

Error is

[descartes:objdirs/mainline/gcc] lucier%
/Users/lucier/programs/gcc/objdirs/mainline/./prev-gcc/xgcc
-B/Users/lucier/programs/gcc/objdirs/mainline/./prev-gcc/
-B/pkgs/gcc-4.4.0-64/powerpc64-apple-darwin9.5.0/bin/ -c -g -O2 -DIN_GCC -W
-Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual
-Wold-style-definition -Wc++-compat -Wmissing-format-attribute -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common
-DHAVE_CONFIG_H -I. -I. -I../../../mainline/gcc -I../../../mainline/gcc/.
-I../../../mainline/gcc/../include -I./../intl
-I../../../mainline/gcc/../libcpp/include -I/sw/include/ -I/sw/include/
-I../../../mainline/gcc/../libdecnumber
-I../../../mainline/gcc/../libdecnumber/dpd -I../libdecnumber
../../../mainline/gcc/c-parser.c -o c-parser.o -save-temps
cc1: warnings being treated as errors
../../../mainline/gcc/c-parser.c: In function 'c_parser_binary_expression':
../../../mainline/gcc/c-parser.c:4579: error: 'binary_loc' may be used
uninitialized in this function
../../../mainline/gcc/c-parser.c:4579: note: 'binary_loc' was declared here

preprocessed source included as an attachment


-- 


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



[Bug target/37629] auto-import of constant data results in a crash at runtime

2008-09-24 Thread jkolb at wsi dot com


--- Comment #4 from jkolb at wsi dot com  2008-09-24 15:35 ---
I'm not sure, I don't have access to that machine right now.  Kai Tietz (from
the mingw-w64 project) thought it might be the linker as well.  How do I hand
the bug off to the linker folks?


-- 


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



[Bug fortran/37635] Fortran 2008: Support LEADZ / TRAILZ

2008-09-24 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2008-09-24 16:19 ---
(In reply to comment #0)

 For compile-time simplification, MPFR does not seem to provide a ready-to-use
 function; if one cooks up something oneself, one needs to check endian issues
 (though there might be none).

I think you mean GMP because we're concerned with INTEGER types.
See mpz_scan0 and mpz_scan1.


-- 


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



[Bug regression/37640] New: Misuse of __sync_lock_test_and_set causes ICE

2008-09-24 Thread anton at samba dot org
A gcc build from today (gcc version 4.4.0 20080924) gets an ICE on PowerPC when
building this (admittedly broken) code:

# gcc -m64 -O2 -c test.c

struct foo {
int a;
char lock;
};
struct foo *foo;

void testcase()
{
__sync_lock_test_and_set((foo-lock), 0);
}

It compiles if building 32bit. Even so, I wonder if gcc should warn when the
variable is incompatible with __sync_* builtins.


-- 
   Summary: Misuse of __sync_lock_test_and_set causes ICE
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: anton at samba dot org
GCC target triplet: powerpc-linux


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



[Bug rtl-optimization/26479] suboptimal register allocation for return register

2008-09-24 Thread hp at gcc dot gnu dot org


--- Comment #5 from hp at gcc dot gnu dot org  2008-09-24 16:49 ---
(In reply to comment #4)
 I think this was fixed for 4.3.0:
 HP,
 can you try this again on cris?

At 140627, the problem is still there on the 4.3 branch for CRIS.  I'll attach
a diff of the generated assembly of -O2 compared to -O2 -fno-if-conversion.


-- 


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



[Bug rtl-optimization/26479] suboptimal register allocation for return register

2008-09-24 Thread hp at gcc dot gnu dot org


--- Comment #6 from hp at gcc dot gnu dot org  2008-09-24 16:51 ---
Created an attachment (id=16402)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16402action=view)
Diff of asembly of -O2 vs -O2 -fno-if-conversion at r.140627

See previous comment.


-- 


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



[Bug rtl-optimization/26479] suboptimal register allocation for return register

2008-09-24 Thread hp at gcc dot gnu dot org


--- Comment #7 from hp at gcc dot gnu dot org  2008-09-24 16:57 ---
I guess I should turn the code in the description into a testcase in gcc.dg so
target maintainers can add their xfailed scan-assembler-not and we'd see
xpasses if/when this is magically fixed...
(After the IRA adjustments for CRIS!)


-- 


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



[Bug ada/37641] New: FILE_WRITE_PROPERTIES is deprecated

2008-09-24 Thread nightstrike at gmail dot com
adaint.c uses a macro for mingw called FILE_WRITE_PROPERTIES.  This has long
since been deprecated, and is instead replaced with FILE_WRITE_EA.  Both macros
are defined to the same value (0x0010), but one does not exist in current
versions (such as mingw-w64, the 64-bit port).  I recommend updating to the new
macro.  The below is a patch that should work:


===
--- ../../../gcc/gcc/ada/adaint.c   (revision 140599)
+++ ../../../gcc/gcc/ada/adaint.c   (working copy)
@@ -1923,7 +1923,7 @@
   __gnat_set_OWNER_ACL
 (wname, DENY_ACCESS,
  FILE_WRITE_DATA | FILE_APPEND_DATA |
- FILE_WRITE_PROPERTIES | FILE_WRITE_ATTRIBUTES);
+ FILE_WRITE_EA | FILE_WRITE_ATTRIBUTES);
   SetFileAttributes
 (wname, GetFileAttributes (wname) | FILE_ATTRIBUTE_READONLY);
 #elif ! defined (__vxworks)  ! defined(__nucleus__)


-- 
   Summary: FILE_WRITE_PROPERTIES is deprecated
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: trivial
  Priority: P3
 Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nightstrike at gmail dot com


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



[Bug c/37642] New: GCC applies signed strict-overflow rules to unsigned short type

2008-09-24 Thread alexandre dot nunes at gmail dot com
I'll submit a testcase that apparently demonstrates that gcc is trying to apply
signed strict overflow rules to an unsigned short type, at least on 32 bit
machines when short is 16 bit.

Here is the output:
arm-elf-gcc -O2 -W -Wall -Wstrict-overflow=5 -c testcase.c
testcase.c: In function ‘incr_counter’:
testcase.c:13: warning: assuming signed overflow does not occur when assuming
that (X + c)  X is always false

this is from gcc 4.3.1; my native build also has the same semantics, and I've
tested with 4.2.4 also.

The thing is that the type is unsigned (even if it is smaller than the target
machine register), so that it can overflow and it can be detected (costly
perhaps, but can).


-- 
   Summary: GCC applies signed strict-overflow rules to unsigned
short type
   Product: gcc
   Version: 4.2.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: alexandre dot nunes at gmail dot com


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



[Bug c/37642] GCC applies signed strict-overflow rules to unsigned short type

2008-09-24 Thread alexandre dot nunes at gmail dot com


--- Comment #1 from alexandre dot nunes at gmail dot com  2008-09-24 17:29 
---
Created an attachment (id=16403)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16403action=view)
This is the first testcase.

compile with gcc -O2 -W -Wall -Wstrict-overflow=5


-- 


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



[Bug ada/37641] FILE_WRITE_PROPERTIES is deprecated

2008-09-24 Thread ktietz at gcc dot gnu dot org


--- Comment #1 from ktietz at gcc dot gnu dot org  2008-09-24 17:32 ---
FILE_WRITE_PROPERTIES is deprecated and even the documentation is removed from
msdn. So I agree that FILE_WRITE_EA should be used instead.


-- 

ktietz at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ktietz at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-09-24 17:32:21
   date||


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



[Bug inline-asm/37621] Missing documentation for x86 inline assembler modifiers

2008-09-24 Thread dlenski at gmail dot com


--- Comment #2 from dlenski at gmail dot com  2008-09-24 17:43 ---
Hi Andrew,
It seems to me that these modifiers are quite necessary for flexible x86
assembly.  What is the point of the q and Q constraints if there's no way
to specifically refer to the 16-bit or 8-bit components of the selected
register?

And are you sure there built-in functions to invoke the rol/ror/xhcg
instructions?  I don't see any in the 4.3 docs.

Dan


-- 


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



[Bug c/37642] GCC applies signed strict-overflow rules to unsigned short type

2008-09-24 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2008-09-24 17:44 ---
Subject: Re:   New: GCC applies signed strict-overflow rules to unsigned short
type

When doing addition unsigned short is promoted to an signed int. So  
this is not a bug. That is unsigned short + 1 is a signed int since 1  
is a signed int.

Sent from my iPhone

On Sep 24, 2008, at 10:29 AM, alexandre dot nunes at gmail dot com
[EMAIL PROTECTED] 
  wrote:

 I'll submit a testcase that apparently demonstrates that gcc is  
 trying to apply
 signed strict overflow rules to an unsigned short type, at least on  
 32 bit
 machines when short is 16 bit.

 Here is the output:
 arm-elf-gcc -O2 -W -Wall -Wstrict-overflow=5 -c testcase.c
 testcase.c: In function ‘incr_counter’:
 testcase.c:13: warning: assuming signed overflow does not occur when  
 assuming
 that (X + c)  X is always false

 this is from gcc 4.3.1; my native build also has the same semantics,  
 and I've
 tested with 4.2.4 also.

 The thing is that the type is unsigned (even if it is smaller than  
 the target
 machine register), so that it can overflow and it can be detected  
 (costly
 perhaps, but can).


 -- 
   Summary: GCC applies signed strict-overflow rules to  
 unsigned
short type
   Product: gcc
   Version: 4.2.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: alexandre dot nunes at gmail dot com


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



-- 


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



[Bug libstdc++/25191] exception_defines.h #defines try/catch

2008-09-24 Thread jason at redhat dot com


--- Comment #58 from jason at redhat dot com  2008-09-24 19:21 ---
Subject: Re:  exception_defines.h #defines try/catch

l dot lunak at suse dot cz wrote:
 --- Comment #56 from l dot lunak at suse dot cz  2008-09-24 08:50 ---
 (In reply to comment #55)
 It seems reasonable to me for try { X } catch... to mean X when
 -fno-exceptions.  We don't need to error except on throw.
 
 It seems unreasonable to me that gcc would silently modify code's behaviour,

The change I was talking about doesn't modify behavior.  If there are no 
exceptions, catch blocks will never be executed, so we can optimize them 
away in the presence of -fno-exceptions.

 This program, IIRC, is guaranteed to call f, as a side-effect of the
 presence of the catch-clause?  Of course, the C++ FE could still process
 the catch clause; my only point is that we cannot literally just throw
 away the catch clause.

True, it would be more like { X } if (0) ...

Jason


-- 


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



[Bug fortran/37643] New: fortran doesn't build on 4.4.0 for vax

2008-09-24 Thread hbent at cs dot oberlin dot edu
When cross-compiling for vax--netbsdelf, fortran doesn't build.  I have a
NetBSD/vax 4.99.72 install symlinked, and am using binutils 2.19.50.20080923. 
gcc sources are subversion rev 140638.  It gets to here and stops:

libtool: compile:  /usr/src/gcc/vax/./gcc/xgcc -B/usr/src/gcc/vax/./gcc/
-B/usr/local/vax--netbsdelf/bin/ -B/usr/local/vax--netbsdelf/lib/ -isystem
/usr/local/vax--netbsdelf/include -isystem
/usr/local/vax--netbsdelf/sys-include -DHAVE_CONFIG_H -I.
-I../../../libgfortran -I. -iquote../../../libgfortran/io
-I../../../libgfortran/../gcc -I../../../libgfortran/../gcc/config
-I../.././gcc -D_GNU_SOURCE -std=gnu99 -Wall -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -Wextra -Wwrite-strings
-fcx-fortran-rules -g -O2 -MT c99_functions.lo -MD -MP -MF
.deps/c99_functions.Tpo -c ../../../libgfortran/intrinsics/c99_functions.c -o
c99_functions.o
../../../libgfortran/intrinsics/c99_functions.c:539: warning: no previous
prototype for 'roundl'
../../../libgfortran/intrinsics/c99_functions.c:640: warning: no previous
prototype for 'lroundl'
../../../libgfortran/intrinsics/c99_functions.c:667: warning: no previous
prototype for 'llroundl'
../../../libgfortran/intrinsics/c99_functions.c:679: warning: no previous
prototype for 'log10l'
../../../libgfortran/intrinsics/c99_functions.c:717: warning: no previous
prototype for 'floorl'
../../../libgfortran/intrinsics/c99_functions.c:743: warning: no previous
prototype for 'fmodl'
../../../libgfortran/intrinsics/c99_functions.c: In function 'tgamma':
../../../libgfortran/intrinsics/c99_functions.c:1455: warning: floating
constant truncated to zero
../../../libgfortran/intrinsics/c99_functions.c:1457: warning: target format
does not support infinity
/var/tmp//ccY9ySD8.s: Assembler messages:
/var/tmp//ccY9ySD8.s:712: Fatal error: Junk at end of expression QNaN

Closer examination reveals that the line the assembler is choking on is:

movd $0d+QNaN,%r1

Fortran did build in the past on 4.4.0; I have a version dated 2008.04.10.


-- 
   Summary: fortran doesn't build on 4.4.0 for vax
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hbent at cs dot oberlin dot edu
 GCC build triplet: i386-unknown-netbsdelf4.99.72
  GCC host triplet: i386-unknown-netbsdelf4.99.72
GCC target triplet: vax--netbsdelf


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



[Bug target/37640] Misuse of __sync_lock_test_and_set causes ICE

2008-09-24 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-09-24 19:55 ---
How is this broken code?


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|regression  |target


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



[Bug target/37640] Misuse of __sync_lock_test_and_set causes ICE

2008-09-24 Thread anton at samba dot org


--- Comment #2 from anton at samba dot org  2008-09-24 20:07 ---
After reading the gcc documentation I guess it is valid, and the 32bit
lwarx/stwcx will overlap but not change surrounding memory.


-- 


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



[Bug target/37640] Misuse of __sync_lock_test_and_set causes ICE

2008-09-24 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2008-09-24 20:16 ---
Something like this fixes the issue:
Index: config/rs6000/rs6000.c
===
--- config/rs6000/rs6000.c  (revision 140638)
+++ config/rs6000/rs6000.c  (working copy)
@@ -14082,7 +14082,8 @@ rs6000_expand_compare_and_swapqhi (rtx d
   HOST_WIDE_INT imask = GET_MODE_MASK (mode);

   /* Shift amount for subword relative to aligned word.  */
-  addrSI = force_reg (SImode, gen_lowpart_common (SImode, XEXP (mem, 0)));
+  addrSI = force_reg (GET_MODE (XEXP (mem, 0)), XEXP (mem, 0));
+  addrSI = force_reg (SImode, gen_lowpart_common (SImode, addrSI));
   shift = gen_reg_rtx (SImode);
   emit_insn (gen_rlwinm (shift, addrSI, GEN_INT (3),
 GEN_INT (shift_mask)));

--- CUT ---
gen_lowpart_common does not work on non regs so force the addition to memory
first and then get the lowerpart.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|__sync_lock_test_and_set|Misuse of
   |causes ICE  |__sync_lock_test_and_set
   ||causes ICE


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



[Bug c++/36461] [c++0x] Exception throws don't use rvalue reference constructors

2008-09-24 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-09-24 20:20 ---
GCC is doing the right thing here. In this constructor:

  Thing2(Thing2 o) : Thing(o) { }

the parameter o is treated as an lvalue, because it has a name. Using
std::move(o) to treat it as an rvalue.

Similarly, there are no automatically generated move constructors or
move-assignment operators, so if you leave Thing2() empty, you'll just get the
copy constructor and therefore do a copy.


-- 

dgregor at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/37601] [4.4 Regression] gcc-4.4-20080919 ada build failure

2008-09-24 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2008-09-24 20:36 ---
What happens if you don't use profiledbootstrap but instead bootstrap?


-- 


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



[Bug c/37642] GCC applies signed strict-overflow rules to unsigned short type

2008-09-24 Thread alexandre dot nunes at gmail dot com


--- Comment #3 from alexandre dot nunes at gmail dot com  2008-09-24 20:42 
---
(In reply to comment #2)
 Subject: Re:   New: GCC applies signed strict-overflow rules to unsigned short
 type
 
 When doing addition unsigned short is promoted to an signed int. So  
 this is not a bug. That is unsigned short + 1 is a signed int since 1  
 is a signed int.
 
 Sent from my iPhone
 

Hah, living and learning. That actually makes sense, thanks, I'll refine the
test.


-- 

alexandre dot nunes at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug bootstrap/37304] [4.4 Regression]: in-tree-binutils gcc configure tests fail because of unexpanded $(objdir)

2008-09-24 Thread hp at gcc dot gnu dot org


--- Comment #5 from hp at gcc dot gnu dot org  2008-09-24 21:10 ---
(In reply to comment #4)
 FWIW, this happens inside libtool configure tests,
 so I guess it is harmless inside gcc/.
 
 Do you see this in other directories' configure outputs, too,

No.

 and if yes, can you post a little more context (esp. the 5 or so
 lines following what you posted would have been interesting)?

I'll attach the corresponding *native* x64-64 build of r139963,
where the behavior is visible for each stage.


-- 


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



[Bug bootstrap/37304] [4.4 Regression]: in-tree-binutils gcc configure tests fail because of unexpanded $(objdir)

2008-09-24 Thread hp at gcc dot gnu dot org


--- Comment #6 from hp at gcc dot gnu dot org  2008-09-24 21:15 ---
Created an attachment (id=16404)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16404action=view)
bzip2:ed native x64-64-linux build_log

The build_log from GeoffK's contrib/regression/btest-gcc.sh) of trunk r139963
of a x86_64-unknown-linux-gnu test with in-tree binutils.


-- 


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



[Bug fortran/37635] Fortran 2008: Support LEADZ / TRAILZ

2008-09-24 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-09-24 22:28 ---
I'll see this weekend if I can take care of this.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-09-24 22:28:12
   date||


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



[Bug inline-asm/37621] Missing documentation for x86 inline assembler modifiers

2008-09-24 Thread n dot pipenbrinck at cubic dot org


--- Comment #3 from n dot pipenbrinck at cubic dot org  2008-09-24 22:41 
---
ROL/ROR on the native integer size is not supported via intrinsics, but the
compiler will fold two shifts into a rotate.

If I want to manipulate only the lower 16 bit of an 32 bit integer (e.g. issue
a rolw) assembly is the only way it's currently possible.


-- 


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



[Bug fortran/37644] New: compiler Segmentation fault

2008-09-24 Thread rlnaff at usgs dot gov
Open MP directives in conjunction with LAM MPI calls is causing compiler to
fail:


(bash) niwot.pts/3%  export
LAMHF77=/z/stoch/home/rlnaff/usr/local/bin/gfortran4.3.2
(bash) niwot.pts/3% mpif77 -g -fopenmp -c reorder_parent.f90
reorder_parent.f90:470: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

(bash) niwot.pts/3% mpif77 -v -save-temps -g -fopenmp -c reorder_parent.f90
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /z/stoch/home/rlnaff/gcc_source/gcc-4.3.2//configure
--prefix=/z/stoch/home/rlnaff/usr/local --program-suffix=4.3.2
-with-local-prefix=/z/stoch/home/rlnaff/usr/local --with-gnu-as --with-gnu-ld
--enable-threads --with-cpu-32=cpu --enable-languages=all --with-gmp
--with-mpfr
Thread model: posix
gcc version 4.3.2 (GCC) 
COLLECT_GCC_OPTIONS='-I/usr/local/include' '-pthread' '-v' '-save-temps' '-g'
'-fopenmp' '-c' '-mtune=generic' '-pthread'
 /a/stoch/home/rlnaff/usr/local/bin/../libexec/gcc/i686-pc-linux-gnu/4.3.2/f951
reorder_parent.f90 -quiet -dumpbase reorder_parent.f90 -mtune=generic -auxbase
reorder_parent -g -version -fopenmp -I/usr/local/include
-fintrinsic-modules-path
/a/stoch/home/rlnaff/usr/local/bin/../lib/gcc/i686-pc-linux-gnu/4.3.2/finclude
-o reorder_parent.s
GNU F95 (GCC) version 4.3.2 (i686-pc-linux-gnu)
compiled by GNU C version 4.3.2, GMP version 4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129368
reorder_parent.f90:470: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 
   Summary: compiler Segmentation fault
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rlnaff at usgs dot gov
 GCC build triplet: see description below
  GCC host triplet: see description below
GCC target triplet: see description below


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



[Bug libgcj/37636] [4.4 regression] java tools are unable to find resource files

2008-09-24 Thread gnu_andrew at member dot fsf dot org


--- Comment #1 from gnu_andrew at member dot fsf dot org  2008-09-25 01:47 
---
I'm not sure when 4.3 branched, but David Daney's locale patch (switching from
gcj's locales to Classpath's) might have had an effect (2008-03-04).  It's the
only locale change I can see from this year.

The current 4.3 branch does still work fine.

The missing resources are in libjava/classpath/tools/resource.  None of them
are locale-specific.

ResourceBundle is used as-is from Classpath without being overridden or
amended.  It may be a classloader issue.


-- 


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



[Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument

2008-09-24 Thread pinskia at gcc dot gnu dot org


--- Comment #12 from pinskia at gcc dot gnu dot org  2008-09-25 02:52 
---
This happens also for x86_64.
on the trunk:
L2:
movq%rbx, %rdi
call_f0
testl   %eax, %eax
jne L2
4.0.1:
L3:
leaq-4(%rbp), %rdi
call_f0
testl   %eax, %eax
jne L3

--- CUT ---

With the fwrprop patch which I am working on and disabling move loop
invariants, we get back:
L2:
leaq-4(%rbp), %rdi
call_f0
testl   %eax, %eax
jne L2

-- CUT ---
move-loop-invariants still moves this out of the loop though.

So to answer Richard's question about this being a target issue, since it is
also happens on x86_64 and move loop invariants does not take into account the
cost of the move instruction, I am going to say this is a move loop invariant
issue (after I fix the fwprop one).


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 GCC target triplet|powerpc*-*-*|powerpc*-*-*, x86_64


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



[Bug libgcj/37636] [4.4 regression] java tools are unable to find resource files

2008-09-24 Thread gnu_andrew at member dot fsf dot org


--- Comment #2 from gnu_andrew at member dot fsf dot org  2008-09-25 03:20 
---
Interestingly:

$ /home/andrew/build/gcj/bin/gcj --version
gcj (GCC) 4.4.0 20080913 (experimental) [gcj/classpath-098-merge-branch
revision 140651]

$ /home/andrew/build/gcj/bin/gjar --version
jar (GNU Classpath) 0.98-pre

$ /home/andrew/build/gcj/bin/gjar --help
Usage: jar -ctxui [OPTIONS] jar-file [-C DIR FILE] FILE...


-- 


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



[Bug target/37121] g++ create global symbol for inline function, which make link failed with multiple defination

2008-09-24 Thread drangon dot mail at gmail dot com


--- Comment #1 from drangon dot mail at gmail dot com  2008-09-25 04:45 
---
Created an attachment (id=16405)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16405action=view)
output of gcc -E


-- 


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



[Bug target/37121] g++ create global symbol for inline function, which make link failed with multiple defination

2008-09-24 Thread drangon dot mail at gmail dot com


--- Comment #2 from drangon dot mail at gmail dot com  2008-09-25 04:47 
---
Created an attachment (id=16406)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16406action=view)
output of nm, the object is build by gcc -O0


-- 


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



  1   2   >