Bug 179173 - Exceptions in indexer
Summary: Exceptions in indexer
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-parser (show other bugs)
Version: 4.0   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.0 M6   Edit
Assignee: Doug Schaefer CLA
QA Contact:
URL:
Whiteboard:
Keywords: contributed
: 179605 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-03-24 20:07 EDT by Sergey Prigogin CLA
Modified: 2008-06-20 10:59 EDT (History)
2 users (show)

See Also:


Attachments
patch for exceptions 1 and 3 (7.70 KB, patch)
2007-03-27 16:06 EDT, Bryan Wilkinson CLA
bjorn.freeman-benson: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Prigogin CLA 2007-03-24 20:07:36 EDT
CDT 4.0 HEAD:
Here are three exceptions I've encountered:

java.lang.NullPointerException
at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPParameterSpecialization.hasDefaultValue(PDOMCPPParameterSpecialization.java:105)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.reduceToViable(CPPSemantics.java:2181)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.resolveFunction(CPPSemantics.java:2294)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.resolveAmbiguities(CPPSemantics.java:2108)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.resolveAmbiguities(CPPSemantics.java:1880)
at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPNamespace.getBinding(PDOMCPPNamespace.java:125)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.lookup(CPPSemantics.java:1023)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.resolveBinding(CPPSemantics.java:622)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:170)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.resolveBinding(CPPASTName.java:73)
at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:106)
at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.parseTU(PDOMIndexerTask.java:198)
at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.parseTUs(PDOMIndexerTask.java:125)
at org.eclipse.cdt.internal.core.pdom.indexer.fast.PDOMFastIndexerTask.run(PDOMFastIndexerTask.java:91)
at org.eclipse.cdt.internal.core.pdom.indexer.PDOMRebuildTask.run(PDOMRebuildTask.java:80)
at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:89)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)


java.lang.NullPointerException
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates.isSameTemplate(CPPTemplates.java:892)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.isSameFunction(CPPSemantics.java:3427)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:555)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:195)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.resolveBinding(CPPASTName.java:73)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates.getContainingTemplate(CPPTemplates.java:167)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates.createBinding(CPPTemplates.java:176)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:209)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.resolveBinding(CPPASTName.java:73)
	at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:106)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.parseTU(PDOMIndexerTask.java:198)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.parseTUs(PDOMIndexerTask.java:125)
	at org.eclipse.cdt.internal.core.pdom.indexer.fast.PDOMFastIndexerTask.run(PDOMFastIndexerTask.java:91)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMRebuildTask.run(PDOMRebuildTask.java:80)
	at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:89)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)


java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.ProblemBinding
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassInstance.getBases(CPPClassInstance.java:61)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.lookupInParents(CPPSemantics.java:1175)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.lookup(CPPSemantics.java:1125)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.resolveBinding(CPPSemantics.java:622)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.resolveBinding(CPPVisitor.java:948)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:191)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.resolveBinding(CPPASTName.java:73)
	at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:106)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.parseTU(PDOMIndexerTask.java:198)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.parseTUs(PDOMIndexerTask.java:125)
	at org.eclipse.cdt.internal.core.pdom.indexer.fast.PDOMFastIndexerTask.run(PDOMFastIndexerTask.java:91)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMRebuildTask.run(PDOMRebuildTask.java:80)
	at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:89)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Comment 1 Bryan Wilkinson CLA 2007-03-27 16:06:34 EDT
Created attachment 62149 [details]
patch for exceptions 1 and 3

Fixes the first and last exceptions.  Fixed getSpecializedBinding() for PDOMCPPParameterSpecialization and threw in an instanceof for the CCE.  Also fixes some other exceptions related to function templates.

Sergey, could you please provide a sample project that encounters the NPE in CPPTemplates.isSameTemplate(...)?
Comment 2 Doug Schaefer CLA 2007-03-27 16:43:45 EDT
*** Bug 179605 has been marked as a duplicate of this bug. ***
Comment 3 Doug Schaefer CLA 2007-03-27 16:44:49 EDT
I'll take a look at this in a moment.
Comment 4 Doug Schaefer CLA 2007-03-27 16:56:55 EDT
Patch applied. Thanks Bryan!