Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 316808

Summary: Error parsing UPC code for UPC artifact identification
Product: [Tools] CDT Reporter: Beth Tibbitts <beth>
Component: cdt-coreAssignee: John Liu <jwsliu>
Status: RESOLVED WORKSFORME QA Contact: Doug Schaefer <cdtdoug>
Severity: normal    
Priority: P3 CC: cdt-core-inbox, john_ws_liu, recoskie
Version: 7.0   
Target Milestone: ---   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Beth Tibbitts CLA 2010-06-14 15:12:42 EDT
Run pldt analysis ("Show UPC Artifacts") on the single file that this complains about.
Will find an example of code to parse to make it fail.

!MESSAGE Error while parsing /zzz_helloBUPC/src/upctestfile.upc.
!STACK 0
java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.c.CASTInitializerList
	at org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction.consumeInitializer(BuildASTParserAction.java:1009)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.ruleAction(UPCParser.java:1158)
	at org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser.process_reductions(FixedBacktrackingParser.java:212)
	at org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser.parseActions(FixedBacktrackingParser.java:251)
	at org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser.parse(FixedBacktrackingParser.java:201)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.parser(UPCParser.java:169)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.parse(UPCParser.java:211)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.parse(UPCParser.java:1)
	at org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage.getASTTranslationUnit(BaseExtensibleLanguage.java:120)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.createAST(AbstractIndexerTask.java:286)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.createAST(AbstractIndexerTask.java:259)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:753)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:636)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:345)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:127)
	at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:137)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Error running analysis: ITE: null
  cause: java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.c.CASTInitializerList - org.eclipse.cdt.internal.core.dom.parser.c.CASTInitializerList
java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.c.CASTInitializerList
	at org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction.consumeInitializer(BuildASTParserAction.java:1009)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.ruleAction(UPCParser.java:1158)
	at org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser.process_reductions(FixedBacktrackingParser.java:212)
	at org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser.parseActions(FixedBacktrackingParser.java:251)
	at org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser.parse(FixedBacktrackingParser.java:201)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.parser(UPCParser.java:169)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.parse(UPCParser.java:211)
	at org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser.parse(UPCParser.java:1)
	at org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage.getASTTranslationUnit(BaseExtensibleLanguage.java:120)
	at org.eclipse.cdt.internal.core.model.TranslationUnit.getAST(TranslationUnit.java:806)
	at org.eclipse.cdt.internal.core.model.TranslationUnit.getAST(TranslationUnit.java:766)
	at org.eclipse.ptp.pldt.upc.actions.RunAnalyseUPCcommandHandler.doArtifactAnalysis(RunAnalyseUPCcommandHandler.java:59)
	at org.eclipse.ptp.pldt.common.actions.RunAnalyseHandlerBase.analyse(RunAnalyseHandlerBase.java:510)
	at org.eclipse.ptp.pldt.common.actions.RunAnalyseHandlerBase.runResource(RunAnalyseHandlerBase.java:377)
	at org.eclipse.ptp.pldt.common.actions.RunAnalyseHandlerBase.runResource(RunAnalyseHandlerBase.java:414)
	at org.eclipse.ptp.pldt.common.actions.RunAnalyseHandlerBase.runResources(RunAnalyseHandlerBase.java:282)
	at org.eclipse.ptp.pldt.common.actions.RunAnalyseHandlerBase$1.execute(RunAnalyseHandlerBase.java:172)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Comment 1 Beth Tibbitts CLA 2010-06-14 15:27:59 EDT
This small file exhibits the problem:

#define TEST 0x9908b0dfUL

unsigned long testfn(void)
{
   unsigned long y;
   static unsigned long test01[2]={0x0UL, TEST};// remove this line and it parses ok
   return y;
}


Put the file in a UPC project (e.g. as test.upc)
Run PLDT Analysis "Show UPC Artifacts" which results in the error.
Comment 2 Beth Tibbitts CLA 2010-06-14 15:30:58 EDT
changed title of bug. has nothing to do with being in a container.
Comment 3 Beth Tibbitts CLA 2010-06-14 15:37:05 EDT
Note some AST changes in CDT 7.0 which may or may not have anything to do with this.

http://old.nabble.com/Changes-to-the-AST-in-CDT-7.0-td28434622.html
Comment 4 John Liu CLA 2010-06-17 13:45:28 EDT
This should be fixed by a recent update on June 02. Beth, are you seeing the exception with a build later than 0602?
Comment 5 Beth Tibbitts CLA 2010-06-17 23:39:58 EDT
You're right i must have upgraded my CDT after posting the error; it no longer fails now.
Thanks!
Comment 6 Beth Tibbitts CLA 2010-09-30 11:16:18 EDT
closing since this was fixed a while back