From: Peter Danielsson Newsgroups: comp.os.msdos.djgpp Subject: Re: Looks like GCC 2.95 bug Date: Thu, 16 Dec 1999 18:19:08 +0100 Organization: Student Lines: 58 Message-ID: <38591F0C.52CE1542@efd.lth.se> References: <83b5qf$k5i$1 AT news DOT itfs DOT nsk DOT su> NNTP-Posting-Host: dialin-45-47.student.lu.se Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.6 [en] (Win98; I) X-Accept-Language: en To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I dont think you can do char *p="test"; p is a pointer. Try char p[]="test"; and &p[0] is the same as your p. /Peter "Michael N. Filippov" wrote: > Hello ! > I'm not sure it is the right place to ask - but it is the only C/C++ > conference i read, sorry. > > The question is: is this code correct according to the latest C++ standards :) > and difference between commented part and last func() call. > > idisys:/usr1/users/michael/tmp$ cat const.cpp > #include > > void func(char* s) > { > printf("func(%s)\n", s); > } > > int main(void) > { > char *p = "Test string"; // NULL; > // if ( p == NULL ) > // func(""); > // else > // func(p); > func( ( p == NULL ) ? "" : p ); > return 0; > } > > The problem is: > idisys:/usr1/users/michael/tmp$ gcc const.cpp > const.cpp: In function nt main()': > const.cpp:15: passing onst char *' as argument 1 of unc(char *)' discards > qualifiers > idisys:/usr1/users/michael/tmp$ gcc -v > Reading specs from /usr/lib/gcc-lib/i586-ksi-linux/2.95/specs > gcc version 2.95 19990728 (release) > > Moreover I can compile it w/out problems > woland:~/tmp$ gcc const.cpp > woland:~/tmp$ gcc -v > gcc version 2.7.2.1 > > and > [michael AT sig tmp]$ gcc const.cpp > [michael AT sig tmp]$ gcc -v > Reading specs from /usr/lib/gcc-lib/i586-ksi-linux/egcs-2.91.66/specs > gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) > > All the same with DJGPP. > > Sincerely, > Michael