51 lines · plain
1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -ast-dump -o - %s | FileCheck %s2 3struct EmptyStruct {4};5 6struct S {7 RWBuffer<float> buf;8 EmptyStruct es;9 float ea[0];10 float b;11};12 13// CHECK: VarDecl {{.*}} used a 'hlsl_constant float'14float a;15 16// CHECK: VarDecl {{.*}} b 'RWBuffer<float>':'hlsl::RWBuffer<float>'17RWBuffer<float> b;18 19// CHECK: VarDecl {{.*}} c 'EmptyStruct'20EmptyStruct c;21 22// CHECK: VarDecl {{.*}} d 'float[0]'23float d[0];24 25// CHECK: VarDecl {{.*}} e 'RWBuffer<float>[2]'26RWBuffer<float> e[2];27 28// CHECK: VarDecl {{.*}} f 'groupshared float'29groupshared float f;30 31// CHECK: VarDecl {{.*}} g 'hlsl_constant float'32float g;33 34// CHECK: VarDecl {{.*}} h 'hlsl_constant S'35S h;36 37// CHECK: HLSLBufferDecl {{.*}} implicit cbuffer $Globals38// CHECK: CXXRecordDecl {{.*}} implicit struct __cblayout_$Globals definition39// CHECK: PackedAttr40// CHECK-NEXT: FieldDecl {{.*}} a 'float'41// CHECK-NEXT: FieldDecl {{.*}} g 'float'42// CHECK-NEXT: FieldDecl {{.*}} h '__cblayout_S'43 44// CHECK: CXXRecordDecl {{.*}} implicit struct __cblayout_S definition45// CHECK: PackedAttr {{.*}} Implicit46// CHECK-NEXT: FieldDecl {{.*}} b 'float'47 48export float foo() {49 return a;50}51