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);
|
||||
return C_FLOAT;
|
||||
}
|
||||
0x[0-9a-fA-F]+[uU]? {
|
||||
0x[0-9a-fA-F]+[lL]? {
|
||||
yylval->intval = vkd3d_parse_integer(yytext);
|
||||
return C_INTEGER;
|
||||
}
|
||||
0[0-7]+[uU]? {
|
||||
0[0-7]+[lL]? {
|
||||
yylval->intval = vkd3d_parse_integer(yytext);
|
||||
return C_INTEGER;
|
||||
}
|
||||
[0-9]+[uU]? {
|
||||
[0-9]+[lL]? {
|
||||
yylval->intval = vkd3d_parse_integer(yytext);
|
||||
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}+ {}
|
||||
{NEWLINE} {
|
||||
|
@ -4975,6 +4975,7 @@ static void check_duplicated_switch_cases(struct hlsl_ctx *ctx, const struct hls
|
||||
%token <floatval> C_FLOAT
|
||||
|
||||
%token <intval> C_INTEGER
|
||||
%token <intval> C_UNSIGNED
|
||||
%token <intval> PRE_LINE
|
||||
|
||||
%type <list> type_specs
|
||||
@ -6709,6 +6710,15 @@ primary_expr:
|
||||
if (!($$ = make_block(ctx, c)))
|
||||
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
|
||||
{
|
||||
struct hlsl_ir_node *c;
|
||||
|
@ -57,7 +57,7 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
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]
|
||||
@ -73,4 +73,4 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
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