mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 09:46:02 +02:00
Patch for Devin Steffler
Fixed 79471 - [Parser] Syntax Errors: Problems with handling float value in the preprocessor statements
This commit is contained in:
parent
3dd222fb35
commit
1e56204749
2 changed files with 19 additions and 1 deletions
|
@ -2480,5 +2480,23 @@ public class CompleteParseASTTest extends CompleteParseBaseTest
|
||||||
IASTVariable pBase = (IASTVariable)i.next();
|
IASTVariable pBase = (IASTVariable)i.next();
|
||||||
assertEquals(pBase.getStartingLine(), 19);
|
assertEquals(pBase.getStartingLine(), 19);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testBug79471() throws Exception {
|
||||||
|
Writer writer = new StringWriter();
|
||||||
|
writer.write("void testFloatAccess(float * fp) {\n"); //$NON-NLS-1$
|
||||||
|
writer.write("#define VAL 2.0f\n"); //$NON-NLS-1$
|
||||||
|
writer.write("if(*fp > VAL) { /* Syntax error is here */\n}\n}\n"); //$NON-NLS-1$
|
||||||
|
parse(writer.toString());
|
||||||
|
writer = new StringWriter();
|
||||||
|
writer.write("void testFloatAccess(float * fp) {\n"); //$NON-NLS-1$
|
||||||
|
writer.write("#define VAL 2.0l\n"); //$NON-NLS-1$
|
||||||
|
writer.write("if(*fp > VAL) { /* Syntax error is here */\n}\n}\n"); //$NON-NLS-1$
|
||||||
|
parse(writer.toString());
|
||||||
|
writer = new StringWriter();
|
||||||
|
writer.write("void testFloatAccess(float * fp) {\n"); //$NON-NLS-1$
|
||||||
|
writer.write("#define VAL 2.0f\n"); //$NON-NLS-1$
|
||||||
|
writer.write("if(VAL > VAL) { /* Syntax error is here */\n}\n}\n"); //$NON-NLS-1$
|
||||||
|
parse(writer.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1328,7 +1328,7 @@ public class Scanner2 implements IScanner, IScannerData {
|
||||||
// must be float suffix
|
// must be float suffix
|
||||||
++bufferPos[bufferStackPos];
|
++bufferPos[bufferStackPos];
|
||||||
|
|
||||||
if (buffer[bufferPos[bufferStackPos]] == 'i')
|
if (bufferPos[bufferStackPos] < buffer.length && buffer[bufferPos[bufferStackPos]] == 'i')
|
||||||
continue; // handle GCC extension 5.10 Complex Numbers
|
continue; // handle GCC extension 5.10 Complex Numbers
|
||||||
|
|
||||||
break; // fix for 77281 (used to be continue)
|
break; // fix for 77281 (used to be continue)
|
||||||
|
|
Loading…
Add table
Reference in a new issue