Summary: | kdelibs/khtml does not compile on gcc 2.96-98 (internal error) | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | Dik Takken <kde> |
Component: | khtml | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED NOT A BUG | ||
Severity: | normal | CC: | rdieter, thomas.bartschies |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Dik Takken
2003-11-08 16:26:29 UTC
you should do what it says in the error message and report your error to bugzilla.redhat.com/bugzilla since this isn't a KDE bug. That's not going to help anything, because Redhat does not support 2.96 anymore, nor does the gcc group. I guess the only thing we can do is change the line of code that triggers the gcc bug. I only want to test 3.2 Beta 1 for you guys, please give me the chance to do so. You do need beta testers, don't you? I found a work-around. Removing *all* compiler optimizations for the file khtmlview.cpp fixes it. Hopefully, it won't have too much impact on the performance of the whole thing... Changing the statements from fromEnd ? --*this : ++*this to if (fromEnd) --*this; else ++*this; Also, fixes this problem. A variant of the same problem is found in 3.1.95 (still using gcc 2.96, but this time from Mandrake): make[6]: Entering directory `/usr/local/soft/KDE/konstruct/kde/kdelibs/work/kdelibs-3.1.95/khtml' if /bin/sh ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../dcop -I../kio/kssl -I../kjs -I../kimgio -I./java -I../dcop -I./misc -I./dom -I./xml -I./html -I./css -I../libltdl -I../kio/kssl -I../kio/kssl -I../kdeprint -I../interfaces -I../interfaces/kregexpeditor -I../kwallet/client -I.. -I../dcop -I../libltdl -I../kdefx -I../kdecore -I../kdeui -I../kio -I../kio/kio -I../kio/kfile -I.. -I/usr/local/soft/KDE/kde3.2-rc/include -I/usr/X11R6/include -I/usr/kerberos/include -DQT_THREAD_SUPPORT -I/usr/local/soft/KDE/kde3.2-rc/include -I/usr/X11R6/include -I/usr/local/soft/KDE/kde3.2-rc/include -I/usr/X11R6/include -I/usr/local/soft/KDE/kde3.2-rc/include -I/usr/X11R6/include -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -I/usr/local/soft/KDE/kde3.2-rc/include -I/usr/X11R6/include -L/usr/local/soft/KDE/kde3.2-rc/lib -L/usr/X11R6/lib -O2 -pipe -I/usr/local/soft/KDE/kde3.2-rc/include -I/usr/X11R6/include -L/usr/local/soft/KDE/kde3.2-rc/lib -L/usr/X11R6/lib -O2 -pipe -I/usr/local/soft/KDE/kde3.2-rc/include -I/usr/X11R6/include -L/usr/local/soft/KDE/kde3.2-rc/lib -L/usr/X11R6/lib -O2 -pipe -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -MT libkhtml_la.all_cpp.lo -MD -MP -MF ".deps/libkhtml_la.all_cpp.Tpo" \ -c -o libkhtml_la.all_cpp.lo `test -f 'libkhtml_la.all_cpp.cpp' || echo './'`libkhtml_la.all_cpp.cpp; \ then mv -f ".deps/libkhtml_la.all_cpp.Tpo" ".deps/libkhtml_la.all_cpp.Plo"; \ else rm -f ".deps/libkhtml_la.all_cpp.Tpo"; exit 1; \ fi In file included from khtmlview.cpp:2311, from libkhtml_la.all_cpp.cpp:2: khtml_caret_p.h: In method `khtml::EditableCharacterIterator &khtml::EditableCharacterIterator::operator++ ()': khtml_caret_p.h:407: Internal compiler error in emit_move_insn, at expr.c:2577 Please submit a full bug report. See <URL:https://qa.mandrakesoft.com/> for instructions. *** Bug 74805 has been marked as a duplicate of this bug. *** CVS commit by orlovich: Workaround ICE in "gcc" 2.96. CCMAIL:67597@bugs.kde.org M +14 -2 khtml_caret_p.h 1.7.2.1 --- kdelibs/khtml/khtml_caret_p.h #1.7:1.7.2.1 @@ -405,5 +405,11 @@ public: : InlineBoxIterator(lit, fromEnd, initBox), m_part(lit.lines->m_part) { - if (box && !isEditable(box)) fromEnd ? --*this : ++*this; + if (box && !isEditable(box)) + { + if (fromEnd) + --*this; + else + ++*this; + } } @@ -500,5 +506,11 @@ public: : LineIterator(it) { - if (flowBox && !isEditable(*this)) fromEnd ? operator--() : operator ++(); + if (flowBox && !isEditable(*this)) + { + if (fromEnd) + operator--(); + else + operator ++(); + } if (!flowBox || !cb) { #if DEBUG_CARETMODE > 0 |