35 lines · plain
1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -finclude-default-header -ast-dump -o - %s | FileCheck %s2 3struct s_fields {4 float a : semantic_a;5 float b : semantic_b;6// CHECK: CXXRecordDecl 0x{{[0-9a-fA-F]+}} <{{.*}}> line:[[@LINE-3]]:8 struct s_fields definition7// CHECK: FieldDecl 0x{{[0-9a-fA-F]+}} <{{.*}}> col:9 a 'float'8// CHECK-NEXT: HLSLParsedSemanticAttr 0x{{[0-9a-f]+}} <col:13> "semantic_a" 09// CHECK: FieldDecl 0x{{[0-9a-fA-F]+}} <{{.*}}> col:9 b 'float'10// CHECK-NEXT: HLSLParsedSemanticAttr 0x{{[0-9a-f]+}} <col:13> "semantic_b" 011};12 13float fn_foo1(float a : a, float b : b) : sem_ret { return 1.0f; }14// CHECK: FunctionDecl {{.*}} <{{.*}}> col:7 fn_foo1 'float (float, float)'15// CHECK-NEXT: ParmVarDecl {{.*}} <{{.*}}> col:21 a 'float'16// CHECK-NEXT: HLSLParsedSemanticAttr 0x{{[0-9a-f]+}} <col:25> "a" 017// CHECK-NEXT: ParmVarDecl {{.*}} <{{.*}}> col:34 b 'float'18// CHECK-NEXT: HLSLParsedSemanticAttr 0x{{[0-9a-f]+}} <col:38> "b" 019// CHECK-NEXT: CompoundStmt {{.*}} <{{.*}}>20// CHECK-NEXT: ReturnStmt {{.*}} <{{.*}}>21// CHECK-NEXT: FloatingLiteral {{.*}} <{{.*}}> 'float' 1.000000e+0022// CHECK-NEXT: HLSLParsedSemanticAttr {{.*}} <{{.*}}> "sem_ret" 023 24float fn_foo2(float a : a, float b : b) : sem_ret : also_ret { return 1.0f; }25// CHECK: FunctionDecl {{.*}} <{{.*}}> col:7 fn_foo2 'float (float, float)'26// CHECK-NEXT: ParmVarDecl {{.*}} <{{.*}}> col:21 a 'float'27// CHECK-NEXT: HLSLParsedSemanticAttr 0x{{[0-9a-f]+}} <col:25> "a" 028// CHECK-NEXT: ParmVarDecl {{.*}} <{{.*}}> col:34 b 'float'29// CHECK-NEXT: HLSLParsedSemanticAttr 0x{{[0-9a-f]+}} <col:38> "b" 030// CHECK-NEXT: CompoundStmt {{.*}} <{{.*}}>31// CHECK-NEXT: ReturnStmt {{.*}} <{{.*}}>32// CHECK-NEXT: FloatingLiteral {{.*}} <{{.*}}> 'float' 1.000000e+0033// CHECK-NEXT: HLSLParsedSemanticAttr {{.*}} <{{.*}}> "sem_ret" 034// CHECK-NEXT: HLSLParsedSemanticAttr {{.*}} <{{.*}}> "also_ret" 035