Bug 61431

Summary: libstdc++ uses C++ features gcc can't handle
Product: [Retired] Red Hat Raw Hide Reporter: Bernhard Rosenkraenzer <bero>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED NOTABUG QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: 1.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-03-19 15:59:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bernhard Rosenkraenzer 2002-03-19 15:49:18 UTC
Description of Problem: 
While rebuilding qtcups: 
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/lib/qt3/include -I/usr/X11R6/include -O2 
-fno-exceptions -fno-check-new -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes 
-Wwrite-strings -Wno-long-long -fno-builtin -O2 -march=i386 -mcpu=i686 -c 
qppdoptionitem.cpp  -fPIC -DPIC -o .libs/qppdoptionitem.o 
/usr/include/g++-3/stl_list.h:247: sorry, not implemented: `record_type 
' not supported by dump_expr 
In file included from /usr/include/g++-3/list:34, 
                 from /usr/lib/qt3/include/qvaluelist.h:49, 
                 from /usr/lib/qt3/include/qtranslator.h:44, 
                 from /usr/lib/qt3/include/qapplication.h:45, 
                 from qppdoptionitem.cpp:8: 
/usr/include/g++-3/stl_list.h:247: `template <class _Tp, class _Alloc = 
{expression error}> struct list' redeclared as different kind of symbol 
list.xpm:2: previous declaration of `const char *list[24]' 
qppdoptionitem.cpp: In method `QPPDOptionItem::QPPDOptionItem 
(global_ppd_file_t *, ppd_option_t *, QListViewItem *, bool)': 
qppdoptionitem.cpp:16: use of class template `template <_Tp, _Alloc> 
class list' as expression 
/usr/lib/qt3/include/qstringlist.h: At top level: 
list.xpm:2: warning: `const char *list[24]' defined but not used 
make[2]: *** [qppdoptionitem.lo] Error 1 
make[2]: Leaving directory `/usr/src/redhat/BUILD/qtcups-2.0/qtcups' 
 
Version-Release number of selected component (if applicable): 
2.96-107 
 
How Reproducible: 
100% 
 
Steps to Reproduce: 
1. Try rebuilding qtcups 
 
Additional Information: 
Haven't had the time to come up with a simpler test case yet. 
Works with gcc 3.1

Comment 1 Bernhard Rosenkraenzer 2002-03-19 15:58:18 UTC
Just found the real problem, the error message is just misleading. 


Comment 2 Bernhard Rosenkraenzer 2002-03-19 15:59:37 UTC
This is probably not fixable in the 2.96 codebase: 
 
list.xpm is included, and does 
static const char *list[]={ "....." } 
 
Then <list> is included and tries to define the template, since the 2.96 libstdc++ is not 
properly namespace, this fails.

Comment 3 Jakub Jelinek 2002-03-20 09:22:31 UTC
But you can easily #define list list_pixmap and #undef list afterwards.