Skip to main content
summaryrefslogtreecommitdiffstats
path: root/codan
diff options
context:
space:
mode:
authorSergey Prigogin2012-05-17 19:37:43 +0000
committerSergey Prigogin2012-05-17 19:37:43 +0000
commit2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b (patch)
tree03ba14ceaac2a76a92a94695bd97084fb98288d9 /codan
parent3fc1ce92e7424b3acbae891cb60795108ccd610a (diff)
downloadorg.eclipse.cdt-2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b.tar.gz
org.eclipse.cdt-2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b.tar.xz
org.eclipse.cdt-2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b.zip
Fixed an NPE.
Diffstat (limited to 'codan')
-rw-r--r--codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java
index 96424e7596f..ef69af9fe9c 100644
--- a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java
+++ b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java
@@ -35,6 +35,7 @@ import org.eclipse.cdt.core.dom.ast.ICompositeType;
import org.eclipse.cdt.core.dom.ast.IEnumeration;
import org.eclipse.cdt.core.dom.ast.IField;
import org.eclipse.cdt.core.dom.ast.IPointerType;
+import org.eclipse.cdt.core.dom.ast.IProblemBinding;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDefinition;
@@ -173,10 +174,13 @@ public class ClassMembersInitializationChecker extends AbstractIndexAstChecker {
Set<IField> actualConstructorFields = constructorsStack.peek();
if (!actualConstructorFields.isEmpty()) {
IBinding binding = name.resolveBinding();
- IField equivalentFieldBinding = getContainedEquivalentBinding(actualConstructorFields, binding, name.getTranslationUnit().getIndex());
- if (equivalentFieldBinding != null) {
- if ((CPPVariableReadWriteFlags.getReadWriteFlags(name) & PDOMName.WRITE_ACCESS) != 0) {
- actualConstructorFields.remove(equivalentFieldBinding);
+ if (binding != null && !(binding instanceof IProblemBinding)) {
+ IField equivalentFieldBinding = getContainedEquivalentBinding(
+ actualConstructorFields, binding, name.getTranslationUnit().getIndex());
+ if (equivalentFieldBinding != null) {
+ if ((CPPVariableReadWriteFlags.getReadWriteFlags(name) & PDOMName.WRITE_ACCESS) != 0) {
+ actualConstructorFields.remove(equivalentFieldBinding);
+ }
}
}
}

Back to the top