Community
Participate
Working Groups
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; de-de) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9 Build Identifier: CVS Under certain situations the fast indexer crashes when parsing source files containing partial declarations, i.e. when parsing class.decl in the following example: class.cpp: class MyClass { #include "class.decl" }; class.decl: public: MyClass(); private: void f(); Reproducible: Always Steps to Reproduce: Unfortunately, I have not been able to create a minimal example exposing the bug. However, bug 279906 seems a dup of this one. The stack trace is: Error while parsing class.cpp.:Error while parsing class.decl. java.lang.NullPointerException at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPLinkage.onCreateName(PDOMCPPLinkage.java:908) at org.eclipse.cdt.internal.core.pdom.dom.PDOMFile.createPDOMName(PDOMFile.java:309) at org.eclipse.cdt.internal.core.pdom.dom.PDOMFile.addNames(PDOMFile.java:273) at org.eclipse.cdt.internal.core.pdom.WritablePDOM.addFileContent(WritablePDOM.java:67) at org.eclipse.cdt.internal.core.index.WritableCIndex.setFileContent(WritableCIndex.java:75) at org.eclipse.cdt.internal.core.pdom.PDOMWriter.storeFileInIndex(PDOMWriter.java:484) at org.eclipse.cdt.internal.core.pdom.PDOMWriter.storeSymbolsInIndex(PDOMWriter.java:208) at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:162) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.writeToIndex(AbstractIndexerTask.java:734) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:692) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:578) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:317) at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:122) at org.eclipse.cdt.internal.core.pdom.indexer.PDOMUpdateTask.run(PDOMUpdateTask.java:81) at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:137) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Created attachment 149457 [details] A patch fixing the issue. According to its documentation, org.eclipse.cdt.internal.core.pdom.dom.PDOMName.getEnclosingDefinition() may return null. This is not checked in several instances, leading to a crash when getEnclosingDefinition() actually does return null. This patch adds the necessary guards.
Thx, the issue can be reproduced by (illegally) putting a friend declaration on global scope. This is not a duplicate of bug 279906. Applied patch for CDT 6.0.2 and 6.1 > 20091014.
*** Bug 294934 has been marked as a duplicate of this bug. ***
*** Bug 313562 has been marked as a duplicate of this bug. ***