After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 661814 - writeMemberNavIndex template calls static fixSpaces
writeMemberNavIndex template calls static fixSpaces
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: build
1.7.5.1
Other Solaris
: Normal minor
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2011-10-14 22:05 UTC by Tim Mooney
Modified: 2015-12-30 10:19 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tim Mooney 2011-10-14 22:05:00 UTC
Building doxygen 1.7.5.1 on x86_64-sun-solaris2.10 (Solaris 10u8, not OpenSolaris) with the no-cost Sun Workshop 12.2 compiler chain.

The C++ compiler objects to a template calling a static function; apparently that's not permitted by the C++ standard:

CC -c -m64 -xarch=generic -DYY_TYPEDEF_YY_SIZE_T -Dyy_size_t=int  -errtags=yes -xO2 -I../qtools -I../libmd5 -o ../objects/index.o index.cpp
"outputlist.h", line 513: Warning, hidevf: OutputList::parseDoc hides the virtual function BaseOutputDocInterface::parseDoc(const char*, int, const char*, MemberDef*, const QCString&, bool).
"index.cpp", line 3119: Error, templ_static_ref: Reference to static fixSpaces(const QCString&) not allowed in template writeMemberNavIndex<CmhlInfo>(FTextStream&, int, int, int*, MemberIndexList(*)[256], const CmhlInfo*(*)(int), bool&), try using -features=tmplrefstatic.
"index.cpp", line 3213:     Where, temwhileinst: While instantiating "writeMemberNavIndex<CmhlInfo>(FTextStream&, int, int, int*, MemberIndexList(*)[256], const CmhlInfo*(*)(int), bool&)".
"index.cpp", line 3213:     Where, teminstend: Instantiated from non-template code.
1 Error(s) and 1 Warning(s) detected.
gmake[2]: *** [../objects/index.o] Error 2
gmake[2]: Leaving directory `/local/src/RPM/BUILD/doxygen-1.7.5.1/src'


As you can see, the compiler points out that it (probably only versions of the compiler from the past couple years) has a flag that can be passed to allow this, it's -features=tmplrefstatic .  With this flag, I can build doxygen successfully.

Still, it might be something you want to address in mainline, so I thought I would report it.
Comment 1 albert 2015-07-24 16:17:08 UTC
I've just pushed a proposed solution to github (pull request 370)
Comment 2 Dimitri van Heesch 2015-07-26 10:04:38 UTC
Thanks, I've merged the pull request
Comment 3 Dimitri van Heesch 2015-12-30 10:19:15 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.11. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information 
that you think can be relevant (preferably in the form of a self-contained example).