mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d-shader/hlsl: Discern between signed and unsigned ints when parsing.
This commit is contained in:
parent
1ee9e23e00
commit
4e1bf5e163
Notes:
Alexandre Julliard
2023-11-22 22:49:11 +01:00
Approved-by: Zebediah Figura (@zfigura) Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/478
@ -203,18 +203,30 @@ while {return KW_WHILE; }
|
|||||||
yylval->floatval = atof(yytext);
|
yylval->floatval = atof(yytext);
|
||||||
return C_FLOAT;
|
return C_FLOAT;
|
||||||
}
|
}
|
||||||
0x[0-9a-fA-F]+[uU]? {
|
0x[0-9a-fA-F]+[lL]? {
|
||||||
yylval->intval = vkd3d_parse_integer(yytext);
|
yylval->intval = vkd3d_parse_integer(yytext);
|
||||||
return C_INTEGER;
|
return C_INTEGER;
|
||||||
}
|
}
|
||||||
0[0-7]+[uU]? {
|
0[0-7]+[lL]? {
|
||||||
yylval->intval = vkd3d_parse_integer(yytext);
|
yylval->intval = vkd3d_parse_integer(yytext);
|
||||||
return C_INTEGER;
|
return C_INTEGER;
|
||||||
}
|
}
|
||||||
[0-9]+[uU]? {
|
[0-9]+[lL]? {
|
||||||
yylval->intval = vkd3d_parse_integer(yytext);
|
yylval->intval = vkd3d_parse_integer(yytext);
|
||||||
return C_INTEGER;
|
return C_INTEGER;
|
||||||
}
|
}
|
||||||
|
0x[0-9a-fA-F]+([uU]|[uU][lL]|[lL][uU]) {
|
||||||
|
yylval->intval = vkd3d_parse_integer(yytext);
|
||||||
|
return C_UNSIGNED;
|
||||||
|
}
|
||||||
|
0[0-7]+([uU]|[uU][lL]|[lL][uU]) {
|
||||||
|
yylval->intval = vkd3d_parse_integer(yytext);
|
||||||
|
return C_UNSIGNED;
|
||||||
|
}
|
||||||
|
[0-9]+([uU]|[uU][lL]|[lL][uU]) {
|
||||||
|
yylval->intval = vkd3d_parse_integer(yytext);
|
||||||
|
return C_UNSIGNED;
|
||||||
|
}
|
||||||
|
|
||||||
{WS}+ {}
|
{WS}+ {}
|
||||||
{NEWLINE} {
|
{NEWLINE} {
|
||||||
|
@ -4975,6 +4975,7 @@ static void check_duplicated_switch_cases(struct hlsl_ctx *ctx, const struct hls
|
|||||||
%token <floatval> C_FLOAT
|
%token <floatval> C_FLOAT
|
||||||
|
|
||||||
%token <intval> C_INTEGER
|
%token <intval> C_INTEGER
|
||||||
|
%token <intval> C_UNSIGNED
|
||||||
%token <intval> PRE_LINE
|
%token <intval> PRE_LINE
|
||||||
|
|
||||||
%type <list> type_specs
|
%type <list> type_specs
|
||||||
@ -6709,6 +6710,15 @@ primary_expr:
|
|||||||
if (!($$ = make_block(ctx, c)))
|
if (!($$ = make_block(ctx, c)))
|
||||||
YYABORT;
|
YYABORT;
|
||||||
}
|
}
|
||||||
|
| C_UNSIGNED
|
||||||
|
{
|
||||||
|
struct hlsl_ir_node *c;
|
||||||
|
|
||||||
|
if (!(c = hlsl_new_uint_constant(ctx, $1, &@1)))
|
||||||
|
YYABORT;
|
||||||
|
if (!($$ = make_block(ctx, c)))
|
||||||
|
YYABORT;
|
||||||
|
}
|
||||||
| boolean
|
| boolean
|
||||||
{
|
{
|
||||||
struct hlsl_ir_node *c;
|
struct hlsl_ir_node *c;
|
||||||
|
@ -57,7 +57,7 @@ float4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw quad
|
draw quad
|
||||||
todo(sm<6) probe all rgba (3.0, 250.0, 16.0, 4.2949673e+009) 4
|
probe all rgba (3.0, 250.0, 16.0, 4.2949673e+009) 4
|
||||||
|
|
||||||
|
|
||||||
[require]
|
[require]
|
||||||
@ -73,4 +73,4 @@ float4 main() : sv_target
|
|||||||
|
|
||||||
[test]
|
[test]
|
||||||
draw quad
|
draw quad
|
||||||
todo probe all rgba (-1294967296.0, 3000000000.0, 0.0, 0.0) 4
|
probe all rgba (-1294967296.0, 3000000000.0, 0.0, 0.0) 4
|
||||||
|
Loading…
Reference in New Issue
Block a user