Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Prigogin2016-02-18 02:48:20 +0000
committerSergey Prigogin2016-02-18 02:48:20 +0000
commitf4cb39bc3ba626590e80caf576f91bdfc5d8c488 (patch)
treedb9bb3f873f5b33286e531c5ed6c05cd873fdbad
parent1a4e98b86638904a4cc12b74e61205b30707bdca (diff)
downloadorg.eclipse.cdt-f4cb39bc3ba626590e80caf576f91bdfc5d8c488.tar.gz
org.eclipse.cdt-f4cb39bc3ba626590e80caf576f91bdfc5d8c488.tar.xz
org.eclipse.cdt-f4cb39bc3ba626590e80caf576f91bdfc5d8c488.zip
Bug 487972 - Unnecessary inclusion of <cstdbool>
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java10
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java7
2 files changed, 16 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java
index 2799764cc95..d18dc267961 100644
--- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java
@@ -436,6 +436,7 @@ public class BindingClassifierTest extends OneSourceMultipleHeadersTestCase {
// };
public void testFieldReference_487971() throws Exception {
assertDefined("A", "B");
+ assertDeclared();
}
// typedef unsigned int size_t;
@@ -725,4 +726,13 @@ public class BindingClassifierTest extends OneSourceMultipleHeadersTestCase {
assertDefined("MACRO");
assertDeclared();
}
+
+ // #define bool bool
+ // #define false false
+
+ // bool b = false;
+ public void testIdentityMacro_487972() throws Exception {
+ assertDefined();
+ assertDeclared();
+ }
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java
index 2888a80c54c..f4ec8dde397 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java
@@ -74,6 +74,7 @@ import org.eclipse.cdt.core.dom.ast.ICompositeType;
import org.eclipse.cdt.core.dom.ast.IEnumeration;
import org.eclipse.cdt.core.dom.ast.IFunction;
import org.eclipse.cdt.core.dom.ast.IFunctionType;
+import org.eclipse.cdt.core.dom.ast.IMacroBinding;
import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IPointerType;
import org.eclipse.cdt.core.dom.ast.IProblemBinding;
@@ -858,7 +859,11 @@ public class BindingClassifier {
for (IASTPreprocessorMacroExpansion macroExpansion : tu.getMacroExpansions()) {
IASTPreprocessorMacroDefinition macroDefinition = macroExpansion.getMacroDefinition();
IASTName name = macroDefinition.getName();
- defineBinding(name.getBinding());
+ IMacroBinding macroBinding = (IMacroBinding) name.getBinding();
+ // Ignore trivial macros like '#define false false'
+ if (!CharArrayUtils.equals(name.getSimpleID(), macroBinding.getExpansion())) {
+ defineBinding(macroBinding);
+ }
}
return PROCESS_CONTINUE;
}

Back to the top