diff options
Diffstat (limited to 'tests/parser')
| -rw-r--r-- | tests/parser/cast-precedence.hlsl | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/tests/parser/cast-precedence.hlsl b/tests/parser/cast-precedence.hlsl index 3383d9912..29793e4a2 100644 --- a/tests/parser/cast-precedence.hlsl +++ b/tests/parser/cast-precedence.hlsl @@ -3,20 +3,32 @@ // Confirm that type-cast expressions parse with // the appropriate precedence. -#ifndef __SLANG__ +#ifdef __SLANG__ +#define R(X) /**/ +#define BEGIN_CBUFFER(NAME) cbuffer NAME +#define END_CBUFFER(NAME, REG) /**/ +#define CBUFFER_REF(NAME, FIELD) FIELD +#else +#define R(X) X +#define BEGIN_CBUFFER(NAME) struct SLANG_ParameterGroup_##NAME +#define END_CBUFFER(NAME, REG) ; cbuffer NAME : register(REG) { SLANG_ParameterGroup_##NAME NAME; } +#define CBUFFER_REF(NAME, FIELD) NAME.FIELD + #define C C_0 #define a a_0 #define b b_0 #define SV_Position SV_POSITION #endif -cbuffer C : register(b0) +BEGIN_CBUFFER(C) { float a; float b; -}; +} +END_CBUFFER(C,b0) + float4 main() : SV_Position { - return (uint) a / b; + return (uint) CBUFFER_REF(C,a) / CBUFFER_REF(C,b); } |
