| // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -ast-dump -o - %s | FileCheck %s |
| |
| struct EmptyStruct { |
| }; |
| |
| struct S { |
| RWBuffer<float> buf; |
| EmptyStruct es; |
| float ea[0]; |
| float b; |
| }; |
| |
| // CHECK: VarDecl {{.*}} used a 'hlsl_constant float' |
| float a; |
| |
| // CHECK: VarDecl {{.*}} b 'RWBuffer<float>':'hlsl::RWBuffer<float>' |
| RWBuffer<float> b; |
| |
| // CHECK: VarDecl {{.*}} c 'EmptyStruct' |
| EmptyStruct c; |
| |
| // CHECK: VarDecl {{.*}} d 'float[0]' |
| float d[0]; |
| |
| // CHECK: VarDecl {{.*}} e 'RWBuffer<float>[2]' |
| RWBuffer<float> e[2]; |
| |
| // CHECK: VarDecl {{.*}} f 'groupshared float' |
| groupshared float f; |
| |
| // CHECK: VarDecl {{.*}} g 'hlsl_constant float' |
| float g; |
| |
| // CHECK: VarDecl {{.*}} h 'hlsl_constant S' |
| S h; |
| |
| // CHECK: HLSLBufferDecl {{.*}} implicit cbuffer $Globals |
| // CHECK: CXXRecordDecl {{.*}} implicit struct __cblayout_$Globals definition |
| // CHECK: PackedAttr |
| // CHECK-NEXT: FieldDecl {{.*}} a 'float' |
| // CHECK-NEXT: FieldDecl {{.*}} g 'float' |
| // CHECK-NEXT: FieldDecl {{.*}} h '__cblayout_S' |
| |
| // CHECK: CXXRecordDecl {{.*}} implicit struct __cblayout_S definition |
| // CHECK: PackedAttr {{.*}} Implicit |
| // CHECK-NEXT: FieldDecl {{.*}} b 'float' |
| |
| export float foo() { |
| return a; |
| } |