glsl/glcpp: Fix #pragma to not over-increment the line-number count

Previously, the #pragma directive was swallowing an entire line, (including
the final newline). At that time it was appropriate for it to increment the
line count.

More recently, our handling of #pragma changed to not include the newline. But
the code to increment yylineno stuck around. This was causing __LINE__ to be
increased by one more than desired for every #pragma.

Remove the bogus, extra increment, and add a test for this case.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Carl Worth 2014-07-02 10:27:50 -07:00 committed by Ian Romanick
parent 9a54b07651
commit bf9bce5bea
3 changed files with 12 additions and 2 deletions

View File

@ -291,8 +291,6 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
* Simply pass them through to the main compiler's lexer/parser. */
<HASH>(extension|pragma)[^\r\n]* {
BEGIN INITIAL;
yylineno++;
yycolumn = 0;
RETURN_STRING_TOKEN (PRAGMA);
}

View File

@ -0,0 +1,6 @@
Line 1 /* Test for a bug where #pragma was throwing off the __LINE__ count. */
Line __LINE__ /* Line 2 */
#pragma Line 3
Line __LINE__ /* Line 4 */
#pragma Line 5
Line __LINE__ /* Line 6 */

View File

@ -0,0 +1,6 @@
Line 1
Line 2
#pragma Line 3
Line 4
#pragma Line 5
Line 6