Re: Why does potato compiling suck?
On Sun, 5 Dec 1999, Ben Hendrickson wrote:
> $ echo "
> void f (const char *& str) {}
> void main ()
> {
> char *s;
> f(s);
> }
> " > s.cpp
> $ g++ s.cpp -o s.o
> s.cpp: in function `int main(...)':
> s.cpp:7: initalizing non-const `const char *&' with `char *' will use a
> temporary
> s.cpp:2: in passing argument 1 of `f(const char *&)'
Consider:
const char *Boink = "foo";
void f(const char *& str) {str = Boink;}
void main()
{
char *s;
f(s);
f[0] = 0;
}
This is a very grevious error, particularly considering that newer gccs
put compiler strings in read only memory.
> The author should have declared s to be const. The compiler says it will
> use a temporary variable to work around this. The compiler doesn't.
If it doesn't use a temorary then that is a compiler bug
I also don't think it should be fatal, temporary generation has always
been a warning thing, email the egcc people.
Jason
Reply to: