[Mesa-dev] [PATCH] glcpp: Fix locations when encounting "#<NEWLINE>".

Iago Toral itoral at igalia.com
Wed Mar 9 15:23:30 UTC 2016


Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>

On Tue, 2016-03-08 at 19:09 -0800, Kenneth Graunke wrote:
> We were failing to reset our location tracking when encountering a
> NEWLINE in the <HASH> state.  Rip the code from the <*>{NEWLINE} rule,
> which handles this properly.
> 
> Also, update 146-version-first-hash.c to have proper expectations.
> When I introduced the test, I didn't verify that the line/column
> numbers were correct, and it turns out they varied based on the type
> of newline ending.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94447
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/compiler/glsl/glcpp/glcpp-lex.l                             | 3 +++
>  src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected | 2 +-
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/compiler/glsl/glcpp/glcpp-lex.l b/src/compiler/glsl/glcpp/glcpp-lex.l
> index 071918e..d09441a 100644
> --- a/src/compiler/glsl/glcpp/glcpp-lex.l
> +++ b/src/compiler/glsl/glcpp/glcpp-lex.l
> @@ -320,6 +320,9 @@ HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
>  
>  <HASH>{NEWLINE} {
>  	BEGIN INITIAL;
> +	yyextra->space_tokens = 0;
> +	yylineno++;
> +	yycolumn = 0;
>  	RETURN_TOKEN_NEVER_SKIP (NEWLINE);
>  }
>  
> diff --git a/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected b/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected
> index 2872090..e8e4497 100644
> --- a/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected
> +++ b/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected
> @@ -1,3 +1,3 @@
> -0:1(3): preprocessor error: #version must appear on the first line
> +0:2(1): preprocessor error: #version must appear on the first line
>  
> 




More information about the mesa-dev mailing list