### Eclipse Workspace Patch 1.0 #P org.eclipse.cdt.core Index: parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java =================================================================== RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java,v retrieving revision 1.135 diff -u -r1.135 PDOMCPPLinkage.java --- parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java 28 Jul 2009 14:06:44 -0000 1.135 +++ parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java 13 Oct 2009 16:14:29 -0000 @@ -905,9 +905,12 @@ if (elaboratedSpecifier.isFriend()) { pdomName.setIsFriendSpecifier(true); PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); - PDOMBinding enclClassBinding= enclClassName.getBinding(); - if (enclClassBinding instanceof PDOMCPPClassType) { - ((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); + if (enclClassName != null) + { + PDOMBinding enclClassBinding= enclClassName.getBinding(); + if (enclClassBinding instanceof PDOMCPPClassType) { + ((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); + } } } } else if (parentNode instanceof ICPPASTFunctionDeclarator) { @@ -917,9 +920,12 @@ if (((ICPPASTDeclSpecifier)grandparentNode.getDeclSpecifier()).isFriend()) { pdomName.setIsFriendSpecifier(true); PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); - PDOMBinding enclClassBinding= enclClassName.getBinding(); - if (enclClassBinding instanceof PDOMCPPClassType) { - ((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); + if (enclClassName != null) + { + PDOMBinding enclClassBinding= enclClassName.getBinding(); + if (enclClassBinding instanceof PDOMCPPClassType) { + ((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); + } } } } @@ -965,10 +971,13 @@ } if (pdomName.isFriendSpecifier()) { PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); - PDOMBinding enclClassBinding= enclClassName.getBinding(); - if (enclClassBinding instanceof PDOMCPPClassType) { - PDOMCPPClassType ownerClass = (PDOMCPPClassType)enclClassBinding; - ownerClass.removeFriend(pdomName); + if (enclClassName != null) + { + PDOMBinding enclClassBinding= enclClassName.getBinding(); + if (enclClassBinding instanceof PDOMCPPClassType) { + PDOMCPPClassType ownerClass = (PDOMCPPClassType)enclClassBinding; + ownerClass.removeFriend(pdomName); + } } } }