diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java index 00f437a1a53..d073fb1289b 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java @@ -26,6 +26,7 @@ import org.eclipse.cdt.core.parser.ParserFactoryError; import org.eclipse.cdt.core.parser.ParserMode; import org.eclipse.cdt.core.parser.ScannerException; import org.eclipse.cdt.core.parser.ast.IASTInclusion; +import org.eclipse.cdt.internal.core.parser.scanner.Scanner; /** * @author jcamelon @@ -1645,4 +1646,15 @@ public class ScannerTestCase extends BaseScannerTest validateToken( IToken.tRBRACE); validateEOF(); } + + public void testEndif() throws Exception + { + Writer writer = new StringWriter(); + writer.write( "#ifdef __X__\n" ); //$NON-NLS-1$ + writer.write( " // comment\n" ); //$NON-NLS-1$ + writer.write( "#endif\n" ); //$NON-NLS-1$ + initializeScanner( writer.toString() ); + validateEOF(); + assertEquals( ((Scanner)scanner).getBranchTracker().getDepth(), 0 ); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java index 6b6660216d3..1e64fdd1532 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java @@ -1662,13 +1662,11 @@ public final class Scanner implements IScanner, IScannerData { if( c == '/' ) { skipOverSinglelineComment(); - c = getChar(false); continue; } else if( c == '*' ) { skipOverMultilineComment(); - c = getChar(false); continue; } }