blob: 2c3a5911d104106e17b812bbc90a2bdf62321737 [file] [log] [blame]
// 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;
}