Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Camelon2003-06-10 00:46:06 +0000
committerJohn Camelon2003-06-10 00:46:06 +0000
commit19d6500c923a54db1953676bcc7693b2917ab784 (patch)
treeb9c634c4cc7db5df11b5b9b94cc2b39224b47398
parentdec3a4021e3a812a91bbf988c110d51aab4f3f16 (diff)
downloadorg.eclipse.cdt-19d6500c923a54db1953676bcc7693b2917ab784.tar.gz
org.eclipse.cdt-19d6500c923a54db1953676bcc7693b2917ab784.tar.xz
org.eclipse.cdt-19d6500c923a54db1953676bcc7693b2917ab784.zip
Fixed linkageSpecs that owned only one declaration.
-rw-r--r--core/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/ASTLinkageSpecification.java1
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)

Back to the top