[v2 PATCH vkd3d] vkd3d-shader/hlsl: Fix floating point literals matching.
Giovanni Mascellani
gmascellani at codeweavers.com
Wed Feb 9 10:37:28 CST 2022
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
---
I guess it would make sense to update preproc.l then, if it has the same
problem?
Giovanni.
Il 08/02/22 07:52, Nikolay Sivov ha scritto:
> Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
> ---
>
> v2: as far as I can tell from testing, it's not allowed to have
> float literal suffixes without decimal point or exponent.
>
> libs/vkd3d-shader/hlsl.l | 2 +-
> tests/hlsl-initializer-numeric.shader_test | 13 +++++++++++++
> 2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/libs/vkd3d-shader/hlsl.l b/libs/vkd3d-shader/hlsl.l
> index e9281ec..1cc19ad 100644
> --- a/libs/vkd3d-shader/hlsl.l
> +++ b/libs/vkd3d-shader/hlsl.l
> @@ -192,7 +192,7 @@ row_major {return KW_ROW_MAJOR; }
> yylval->floatval = atof(yytext);
> return C_FLOAT;
> }
> -[0-9]+([eE][+-]?[0-9]+)?[h|H|f|F] {
> +[0-9]+[eE][+-]?[0-9]+[h|H|f|F]? {
> yylval->floatval = atof(yytext);
> return C_FLOAT;
> }
> diff --git a/tests/hlsl-initializer-numeric.shader_test b/tests/hlsl-initializer-numeric.shader_test
> index 2fce390..4057688 100644
> --- a/tests/hlsl-initializer-numeric.shader_test
> +++ b/tests/hlsl-initializer-numeric.shader_test
> @@ -33,3 +33,16 @@ float4 main() : sv_target
> [test]
> draw quad
> probe all rgba (1.0, 2.0, 3.0, 4.0) 4
> +
> +
> +[pixel shader]
> +float4 main() : sv_target
> +{
> + float4 aa = { 1e1, 1e-1, 1., 2.f };
> + float4 bb = { .1, .1e1, .2f, 1.e-1f };
> + return aa + bb;
> +}
> +
> +[test]
> +draw quad
> +probe all rgba (10.1, 1.1, 1.2, 2.1) 4
More information about the wine-devel
mailing list