[v2 PATCH vkd3d] vkd3d-shader/hlsl: Fix floating point literals matching.
Nikolay Sivov
nsivov at codeweavers.com
Tue Feb 8 00:52:15 CST 2022
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
--
2.34.1
More information about the wine-devel
mailing list