Bug#27886: gcc-3.0 compilation problems (tokenizer.cc)
pienaar at bme.ri.ccf.org
pienaar at bme.ri.ccf.org
Fri Jun 29 15:00:53 UTC 2001
Package: kdevelop
Version: 1.4.1 (using KDE 2.1.1 )
Severity: normal
Installed from: Compiled From Sources
Compiler: gcc-3.0
OS: Linux
OS/Compiler notes: Not Specified
After "upgrading" to gcc-3.0, I noticed that my "old" kdevelop-1.4 (built with gcc 2.95.2) seemed to be having problems with code compiled with gcc-3.0.
Specifically, the integrated debugger was ignoring all breakpoints, rendering it largely useless.
I decided to rebuild kdevelop with gcc-3.0 (of course with rebuilt (gcc-3.0) Qt 2.3.1, and necessary kde-2.1.1/2 packages).
I had problems with arts-related issues in kdelibs-2.1.2 (this has already been reported as a bug).
With kdevelop, compilation failed with tokenizer.cc (<kdevelop-1.4.1/kdevelop/classparser/tokenizer.cc).
Specific problem:
flex -+ -otokenizer.cc ./tokenizer.l
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/home/pienaar/arch/Linux/kde-2.1.1/include -I/home/pienaar/arch/Linux/qt-2.3.1/include -I/usr/X11R6/include -O2 -fno-exceptions -fno-check-new -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -Wnon-virtual-dtor
-fno-builtin -c tokenizer.cc
In file included from /usr/include/FlexLexer.h:47,
from tokenizer.cc:238:
/home/pienaar/arch/Linux/include/g++-v3/backward/iostream.h:36: using directive
`istream' introduced ambiguous type `istream'
tokenizer.cc: In member function `virtual int yyFlexLexer::yylex()':
tokenizer.cc:1318: cannot convert `std::istream*' to `istream*' in assignment
tokenizer.cc:905: warning: label `find_rule' defined but not used
tokenizer.cc: In member function `void yyFlexLexer::yy_load_buffer_state()':
tokenizer.cc:1849: cannot convert `istream*' to `std::istream*' in assignment
tokenizer.cc: In member function `void
yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream*)':
tokenizer.cc:1900: cannot convert `std::istream*' to `istream*' in assignment
/home/pienaar/arch/Linux/include/g++-v3/bits/locale_facets.tcc: At top level:
tokenizer.cc:2070: warning: `void* yy_flex_realloc(void*, unsigned int)'
defined but not used
make[3]: *** [tokenizer.o] Error 1
I was able to recreate the same error with kdevelop-20010629 and gideon-0.2; in both instances `tokenizer' was the problem (although in these two packages, it was located in a slightly different path).
I was able to "fix" the errors in lines 1318 and 1849 by explicit typecasting to (iostream*):
from:
yy_current_buffer->yy_input_file = yyin;
to: (iostream*) yy_current_buffer->yy_input_file = yyin;
But the real error seems to be:
/home/pienaar/arch/Linux/include/g++-v3/backward/iostream.h:36: using directive
`istream' introduced ambiguous type `istream'
This seems endemic to gcc-3.0 and its stream-type, and is clearly quite out of my league.
Cheers
Rudolph
+-----------------------------------------------------------------------+
| Rudolph Pienaar, M.Eng -w- (216) 445-3790 |
| Gait Lab, Biomedical Engineering ND20 -f- (216) 444-9198 |
| Cleveland Clinic Foundation, Cleveland, OH, 44195 |
+-----------------------------------------------------------------------+
(Submitted via bugs.kde.org)
-
to unsubscribe from this list send an email to kdevelop-devel-request at kdevelop.org with the following body:
unsubscribe »your-email-address«
More information about the KDevelop-devel
mailing list