diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java index 4fc6d9b9946..976e00a9a2f 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java @@ -373,12 +373,16 @@ public class GCCBuiltinSpecsDetectorTest extends BaseTestCase { detector.startupForLanguage(null); detector.processLine(" "+loc+"/misplaced/include1"); + detector.processLine("#undef BEFORE_INCLUDES"); detector.processLine("#include \"...\" search starts here:"); + detector.processLine("#undef IN_THE_MIDDLE_OF_INCLUDES_0"); detector.processLine(" "+loc+"/local/include"); detector.processLine("#include <...> search starts here:"); detector.processLine(" "+loc+"/usr/include"); detector.processLine(" "+loc+"/usr/include/../include2"); + detector.processLine("#undef IN_THE_MIDDLE_OF_INCLUDES_1"); detector.processLine(" "+loc+"/missing/folder"); + detector.processLine("#undef IN_THE_MIDDLE_OF_INCLUDES_2"); detector.processLine(" "+loc+"/Library/Frameworks (framework directory)"); detector.processLine("End of search list."); detector.processLine(" "+loc+"/misplaced/include2"); @@ -386,6 +390,7 @@ public class GCCBuiltinSpecsDetectorTest extends BaseTestCase { detector.processLine(" "+loc+"/System/Library/Frameworks"); detector.processLine("End of framework search list."); detector.processLine(" "+loc+"/misplaced/include3"); + detector.processLine("#undef AFTER_INCLUDES"); detector.shutdownForLanguage(); detector.shutdown(); diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java index 83074435ea8..163e22a088d 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java @@ -80,6 +80,11 @@ public class GCCBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector imple return makeList(line); } + // never process #undef, see Bug 517908 + if (line.startsWith("#undef")) { + return null; + } + // contribution of includes if (line.equals("#include \"...\" search starts here:")) { state = State.EXPECTING_LOCAL_INCLUDE;