diff options
author | John Camelon | 2003-06-10 00:46:06 +0000 |
---|---|---|
committer | John Camelon | 2003-06-10 00:46:06 +0000 |
commit | 19d6500c923a54db1953676bcc7693b2917ab784 (patch) | |
tree | b9c634c4cc7db5df11b5b9b94cc2b39224b47398 | |
parent | dec3a4021e3a812a91bbf988c110d51aab4f3f16 (diff) | |
download | org.eclipse.cdt-19d6500c923a54db1953676bcc7693b2917ab784.tar.gz org.eclipse.cdt-19d6500c923a54db1953676bcc7693b2917ab784.tar.xz org.eclipse.cdt-19d6500c923a54db1953676bcc7693b2917ab784.zip |
Fixed linkageSpecs that owned only one declaration.
3 files changed, 9 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java b/core/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java index dd637c30825..6c7ac277ba1 100644 --- a/core/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java +++ b/core/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java @@ -1222,7 +1222,7 @@ public class DOMBuilder implements IParserCallback, ISourceElementRequestor */ public void exitLinkageSpecification(IASTLinkageSpecification linkageSpec) { LinkageSpecification linkage = (LinkageSpecification)domScopes.pop(); - linkage.getOwnerScope().addDeclaration(linkage ); + getCurrentDOMScope().addDeclaration(linkage ); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java index d2584fbd29e..66b7acba26a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java @@ -391,8 +391,15 @@ c, quickParse); } else // single declaration { + + IContainerSymbol symbol = pst.newContainerSymbol("", ParserSymbolTable.TypeInfo.t_linkage ); + IASTLinkageSpecification linkage = new ASTLinkageSpecification( symbol, spec.getImage() ); + + requestor.enterLinkageSpecification( linkage ); + declaration( linkageSpec ); try{ callback.linkageSpecificationEnd( linkageSpec );} catch( Exception e ) {} + requestor.exitLinkageSpecification( linkage ); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTLinkageSpecification.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTLinkageSpecification.java index 6a54060b083..2d114b82b59 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTLinkageSpecification.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTLinkageSpecification.java @@ -24,6 +24,7 @@ public class ASTLinkageSpecification implements IASTLinkageSpecification { public ASTLinkageSpecification( IContainerSymbol symbol, String linkage ) { this.symbol = symbol; + symbol.setASTNode( this ); this.linkage = linkage; } /* (non-Javadoc) |