diff options
author | Sergey Prigogin | 2016-02-18 02:48:20 +0000 |
---|---|---|
committer | Sergey Prigogin | 2016-02-18 02:48:20 +0000 |
commit | f4cb39bc3ba626590e80caf576f91bdfc5d8c488 (patch) | |
tree | db9bb3f873f5b33286e531c5ed6c05cd873fdbad | |
parent | 1a4e98b86638904a4cc12b74e61205b30707bdca (diff) | |
download | org.eclipse.cdt-f4cb39bc3ba626590e80caf576f91bdfc5d8c488.tar.gz org.eclipse.cdt-f4cb39bc3ba626590e80caf576f91bdfc5d8c488.tar.xz org.eclipse.cdt-f4cb39bc3ba626590e80caf576f91bdfc5d8c488.zip |
Bug 487972 - Unnecessary inclusion of <cstdbool>
Change-Id: I3f8b9cd157107f81a46e26c0966ce551772fb5ec
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; } |