This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/45265] GCC has an intermittent bug when computing the address of function parameters



------- Comment #52 from rogerio at rilhas dot com  2010-08-14 13:17 -------

Do you really want me to go away? You are not using the right formula for that.
You know I have a problem and I can't resist. Everytime you post a message
you're just calling me back!



(In reply to comment #49)
>You're rude, ignorant and annoying.

Yes I am. But a little bit less every day, thanks to (respectively) my mom,
your clarifications about the standards, and my 12-step program.



(In reply to comment #51)
> > There you go, you are now famous.
> > http://en.wikipedia.org/wiki/GNU_Compiler_Collection#Criticism


Why did you remove the post? Do you think something there is not true? You said
it, why is it not true? Are you recanting? Wikipedia is the place to post true
statements, it if is the truth then it should be there. Don't tell me now that
you are ashamed of what you said, are you?

Please: you and your friends keep of from removing a perfectly valid criticism
that I backed up with your statements. You think you can just keep on removing,
but I'll just keep on putting it back. Until I get bored and take it up to
Wilkipedia. Why didn't you remove the other guy's criticism about GCC being
buggy and producing crappy code? Is his criticism better than mine? Is it
better substantiated than mine?


> Thank you, that's encouraging, I just hope the language of that article won't
> be changed too much to also mention everyone else who has a clue.


No, from the time I posted it first I changed it only once because I realised
(based on it being undefined right now) that the code could break at any time,
not just with future releases of GCC.


>  Because,
> you see, I'm of course very excited about me being famous now and about being
> the only one who knows the truth, but OTOH I fear there were some other
> clever people that happen to agree with me, and I now see a real
> danger of those replacing me in that wikipedia article.



I don't see where you are getting at. I don't want you to be the only one who
knows the truth, I want everyone to know about it. Duhh!! Why else would I post
it on Wikipedia?? I don't want GCC to keep any secret pitfalls from anyone, is
that alright with you?




>  Even worse would be
> that the list of names would be too large to mention in wikipedia and that
> the list would be replaced by some more unspecific phrases like "people who
> actually understood the standard" or the like.


Ah, I see. You are afraid of someone removing your name from the post? I won't
do that, I promise. And while the reference to your comment is there you will
always have a place among the stars. So be sure to try your best to keep it
there!!



> > The comunity has been warned about GCC.


Everybody who reads Wikipedia. Some of them are programmers.


> Which community?  Rogerio-cdecl church followers?


Possibly. In between our other rituals. My followers use their prayer time as
they like, many of them use that time to seek enlightment. They can get it from
wherever they like, including Wikipedia. Or C standards. Or bugzilla bug
reports. Whatever.


>  In that case I'm happy,
> because I'll expect less bug-reports from supporters of that specific
> religion.

Sure, you already shut me up. And I thanked you, remember? (I still have the
same opinion of you, but your "error rate" dropped a little more... still
impressivly high, though). I confessed that I did learn from your post (not
being sarcastic, I really did).



>  I'll continue to feel sorry for them (especially because I've
> learned over the conversation that you might actually influence new
> programmers, which is a terrible thing to do for you) but am not particularly
> looking forward to seeing misguided and crippled attempts of creating
> meagre imitations of stumbling pseudo bug-reports, especially because we
> can have the best there is: Rilhas bugs!

Yup. I now realize why my bug reports aren't really bug report. Just some
side-effect of me not realizing the full impact of GCC just following
standards.

It claims is cdecl conformant, but even without optimizations it doesn't place
parameters on the stack as cdecl states. My bad, GCC does not guarantee cdecl
anywhere, you are right. So I'll just shut up with that.

And getting the address of parameters? You are right, not defined in the
standards. You are right too. So I'll just shut up with that too.

So, the 2 bug reports are, thus, squashed as invalid. (not being sarcastic
either).

As for Rilhas' bugs? None, as long as I steer clear of GCC. And my code works?
Yes. And am I good at what I do? Yes? How do I know? My mom tells me so all the
time (and besides I continuously get paid very well, which is my second
strongest indicator that I do a good job). Am I afraid of doing non-standard
things? No, standards have to keep up with the real world and with "special
pusher compilers", like MSC. If one day some standard realizes that what MSC
does is clever and adopts it then GCC will eventually follow. If not then I'll
just keep on using MSC. What if I can't? I'll cross that bridge when I come to
it, meanwhile me and my followers make code faster and more confortably year
after year after year.



> If, OTOH, you mean a different community, like for instance that consisting of
> people who actually write C source code, I don't see any warning about using
> GCC for them.


You don't see it because you removed it. Or your frieds. Or your mom. Not
really important. It was removed by someone who didn't present a any reason why
it is not a valid criticism. You say that other criticism there? People who
want to refute it add stuff like "citation needed" or "needs references".

I've put it back again. You can take it down again, but you will just make me
ask Wikipedia referees to lock it and so you will get even more exposure.
They'll check it and see I'm not doing anything wrong.

The fact that you (or your frieds) keep removing it just proves to me that you
are somewhat ashamed of what you claimed. If not then just let it be.

BTW: don't bother sneaking late at night to remove it because I have a bot
warning me the second the post gets removed (or modified). So you, your
friends, your mom, nor your dog will ever win this one unless you recant.


>  If anything, it's more like an invitation to use GCC for
> developing because it's more standard compliant than other compilers.


That claim should be backed up so that everyone knows if your "others" include
MSC or Intel. Please demonstrate why GCC is more standards compliant than MSC
or Intel's, or otherwise your sentence is just shallow. This is the kind of
stuff that comes back to bite you in the ass because if you can't demonstrate
it you may end up on Wikipedia with something like "Michael Matz, from the GCC
bug tracking team, failed to demonstrate any way in which GCC is more standards
compliant than MSC or Intel". Like the mean-ignorant-rude bastard that I am I
would do it! Shouldn't you be more careful about what you claim at this point?
Do you have some impairment that I don't know about? Don't make claims you are
unable to substantiate.


> > It was a good day's work after all.
> You mean writing down incoherent brain-dumps?  Uhm, well, if that's all your
> day-work is about... more power to you!

Yeah... sure... or, in my words, I learned a lot. You didn't.

I learned GCC cannot be trusted in any situation not covered by the standards.
I didn't know that. I was very very ignorant and now I'm just ignorant. Good,
that's not bad for a day's work.

You saw that GCC conforming to "just standards" leaves out a very large number
of real world applications. Isn't the embedded and experimental platforms one
of the most important targets for GCC? Shouldn't GCC try to make more
guarantees than just standard then? GCC is just average. GCC is just standard.
Like a standard car, or a standard dishwasher. It does no better than average.
It is not special.

Others strive to be special. A special car, a special dishwasher, a special
compiler. Those do what is standard and more, and that makes them great. You
didn't learn that. Too bad for you.

You seem to be unable to understand this. My English is surelly very bad, I'm
sorry, it is not my native language. Let me try it another way.

standards=average
standards+other_stuff=special

GCC=standards=average
MSC=standards+old_school_stuff+new_bleeding_edge_stuff=special

memory_mapped=standard+old_school_stuff
memory_mapped+GCC=not_guaranteed=unreliable
memory_mapped+MSC=reliable

GCC<reliable[memory_mapped]

programmers_for_memory_mapped_need>=reliable
programmers_for_memory_mapped_need+GCC=maybe_break_someday

GCC could be better in the future if it added something. I get it, you don't
want to go outside any standard. I get it. For a long time it frustrated me
that you didn't want to, now I have made my peace with it. Really.

You still don't get it? Who cares.


(In reply to comment #49)

This code:

res=function(class(initializer))

Does not compile in GCC. Why? Who cares!! You have shown me that it has
something to do with not being defined in the standard or whatever. Don't miss
the point, I don't care why. I didn't ask you to explain to me why GCC can't. I
didn't ask you what it would take for GCC to be able to do it. I didn't ask you
to change the standards. And I certainly didn't ask GCC not to go beyond
standards! I would burn in hell surely (well, even more so).

It is simple, try to understand: GCC can't, MSC can. GCC is average, MSC is
above average. I have to manually do an equivalency for GCC to compile:

{
class random_name(initializer);
res=function(random_name)
}

It is stupid that I have to do this manually. Stupid of the standards?
Probably, but I don't know why it is not there, so I won't say anything about
it. Stupid of GCC? Well, possibly. Microsoft probably also knows about the
standards and solved it, why not GCC? Can it be done with "move constructors"?
Who cares! As far as I'm concerned it could have been done with the
preprocessor!!

You just keep missing the point!!!!!!!

I just informed you: MSC can, GCC can't. Period. Your little brains couldn't
take it. It was too much for you. You just made a really big effor to explain
to my why it can't and didn't realize I don't care and that was not the point!!

Was Microsoft wrong? No, us in the real world love it. In fact, this code:

class Color;
class Vector;

virtual func(Color c=Color(WHITE), Vector v=Vector(VECTOR_Z));

Has no workaround for in GCC. Why? Because GCC can't initialize parameters that
are classes. MSC can. So this code (which I needed to do, no real practical
alternative), cannot be compiled in GCC. Why? Because GCC doesn't go beyond
standards. Period.

What about me overloading the function in GCC? That would solve it!! No, wrong.
It is virtual, I don't know who derives the class and overrides the function.
So with GCC I would be stuck, and the code would not have been produced in time
for my clients to pay me.

Was Microsoft right to make such a special compiler and let me do things not in
the standards? Yes. Is what I'm doing called C++? I think so, but I don't
really care, as long as it works *RELIABLY* and *GUARANTEED* (MSC guarantees
this). Should the standards be updated? Probably. Will I do it? No. Do I have a
problem? No, I'll just avoid GCC.

So don't keep missing the point. I am *INFORMING YOU* that MSC can and GCC
can't. And I'm also *INFORMING YOU* that I don't care why GCC can't. It just
can't. You don't care about this information? Drop it.

So keep throwing standards at me and call me ignorant and see if I care.


-- 


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]