Added missing semicolon in struct layout output (#2173)

This commit is contained in:
Tristan Labelle 2019-05-07 15:34:52 -07:00 коммит произвёл GitHub
Родитель e4ceb30434
Коммит 7342a3b9be
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
11 изменённых файлов: 51 добавлений и 38 удалений

Просмотреть файл

@ -1,7 +1,7 @@
// RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
// If column major, the CBuffer will have a size of 8 bytes, if row major it should be 20
// CHECK: CBuf ; Offset: 0 Size: 20
// CHECK: CBuf; ; Offset: 0 Size: 20
typedef row_major float2x1 rmf2x1;
cbuffer CBuf { rmf2x1 mat; }

Просмотреть файл

@ -3,16 +3,28 @@
// Tests the printed layout of structured buffers.
// CHECK: int2 a; ; Offset: 0
// CHECK: struct
// CHECK: {
// CHECK: int b[2]; ; Offset: 8
// CHECK: int2 c; ; Offset: 16
// CHECK: int2 d; ; Offset: 24
// CHECK: } s; ; Offset: 8
// CHECK: struct
// CHECK: {
// CHECK: } _; ; Offset: 32
// CHECK: int e; ; Offset: 32
// CHECK: Size: 36
// CHECK: int2 a; ; Offset: 0
// CHECK: struct
// CHECK: {
// CHECK: int b[2]; ; Offset: 8
// CHECK: int2 c; ; Offset: 16
// CHECK: int2 d; ; Offset: 24
// CHECK: } s; ; Offset: 8
// CHECK: struct
// CHECK: {
// CHECK: } _; ; Offset: 32
// CHECK: int e; ; Offset: 32
// CHECK: Size: 36
@ -25,6 +37,7 @@ struct Struct
int2 c;
int2 d;
} s;
struct {} _;
int e;
};

Просмотреть файл

@ -10,7 +10,7 @@
// CHECK: ; float4 f2; ; Offset: 112
// CHECK: ; float fa[15]; ; Offset: 128
// CHECK: ;
// CHECK: ; } MyCB ; Offset: 0 Size: 356
// CHECK: ; } MyCB; ; Offset: 0 Size: 356
// CHECK: ;
// CHECK: ; }
@ -26,10 +26,10 @@
// CHECK: ; float4 f; ; Offset: 0
// CHECK: ; int4 i; ; Offset: 16
// CHECK: ;
// CHECK: ; } buf2 ; Offset: 0
// CHECK: ; } buf2; ; Offset: 0
// CHECK: ;
// CHECK: ;
// CHECK: ; } buf2 ; Offset: 0 Size: 32
// CHECK: ; } buf2; ; Offset: 0 Size: 32
// CHECK: ;
// CHECK: ; }
@ -42,7 +42,7 @@
// CHECK: ; float f3; ; Offset: 0
// CHECK: ; float4 f4; ; Offset: 16
// CHECK: ;
// CHECK: ; } MyTB ; Offset: 0 Size: 32
// CHECK: ; } MyTB; ; Offset: 0 Size: 32
// CHECK: ;
// CHECK: ; }
@ -58,10 +58,10 @@
// CHECK: ; float4 f; ; Offset: 0
// CHECK: ; int4 i; ; Offset: 16
// CHECK: ;
// CHECK: ; } tbuf1 ; Offset: 0
// CHECK: ; } tbuf1; ; Offset: 0
// CHECK: ;
// CHECK: ;
// CHECK: ; } tbuf1 ; Offset: 0 Size: 32
// CHECK: ; } tbuf1; ; Offset: 0 Size: 32
// CHECK: ;
// CHECK: ; }

Просмотреть файл

@ -13,10 +13,10 @@
// CHECK: ;
// CHECK: ; float4 g1[16]; ; Offset: 0
// CHECK: ;
// CHECK: ; } buf1 ; Offset: 0
// CHECK: ; } buf1; ; Offset: 0
// CHECK: ;
// CHECK: ;
// CHECK: ; } buf1 ; Offset: 0 Size: 256
// CHECK: ; } buf1; ; Offset: 0 Size: 256
// CHECK: ;
// CHECK: ; }
// CHECK: ;
@ -34,13 +34,13 @@
// CHECK: ;
// CHECK: ; float4 g1[16]; ; Offset: 0
// CHECK: ;
// CHECK: ; } foo ; Offset: 0
// CHECK: ; } foo; ; Offset: 0
// CHECK: ;
// CHECK: ; uint3 idx[16]; ; Offset: 256
// CHECK: ;
// CHECK: ; } buf2 ; Offset: 0
// CHECK: ; } buf2; ; Offset: 0
// CHECK: ;
// CHECK: ; } buf2 ; Offset: 0 Size: 508
// CHECK: ; } buf2; ; Offset: 0 Size: 508
// CHECK: ;
// CHECK: ; }
// CHECK: ;

Просмотреть файл

@ -13,10 +13,10 @@
// CHECK: ;
// CHECK: ; float4 g1[16]; ; Offset: 0
// CHECK: ;
// CHECK: ; } buf1 ; Offset: 0
// CHECK: ; } buf1; ; Offset: 0
// CHECK: ;
// CHECK: ;
// CHECK: ; } buf1 ; Offset: 0 Size: 256
// CHECK: ; } buf1; ; Offset: 0 Size: 256
// CHECK: ;
// CHECK: ; }
// CHECK: ;
@ -34,13 +34,13 @@
// CHECK: ;
// CHECK: ; float4 g1[16]; ; Offset: 0
// CHECK: ;
// CHECK: ; } foo ; Offset: 0
// CHECK: ; } foo; ; Offset: 0
// CHECK: ;
// CHECK: ; uint3 idx[16]; ; Offset: 256
// CHECK: ;
// CHECK: ; } buf2 ; Offset: 0
// CHECK: ; } buf2; ; Offset: 0
// CHECK: ;
// CHECK: ; } buf2 ; Offset: 0 Size: 508
// CHECK: ; } buf2; ; Offset: 0 Size: 508
// CHECK: ;
// CHECK: ; }
// CHECK: ;

Просмотреть файл

@ -14,7 +14,7 @@
// CHECK: min16float2 h2_1; ; Offset: 80
// CHECK: min16float3 h3; ; Offset: 96
// CHECK: double d1; ; Offset: 112
// CHECK: } Foo ; Offset: 0 Size: 120
// CHECK: } Foo; ; Offset: 0 Size: 120
// CHECK: }
// CHECK: %dx.types.CBufRet.f16 = type { half, half, half, half }

Просмотреть файл

@ -21,7 +21,7 @@
// CHECK: int i1; ; Offset: 80
// CHECK: double d2; ; Offset: 88
// CHECK: } f ; Offset: 0 Size: 96
// CHECK: } f; ; Offset: 0 Size: 96
struct Foo {
half h1;
@ -74,7 +74,7 @@ struct Foo {
// CHECK: half h22; ; Offset: 76
// CHECK: half h23; ; Offset: 78
// CHECK: } b ; Offset: 0 Size: 80
// CHECK: } b; ; Offset: 0 Size: 80
struct Bar {
half h1;

Просмотреть файл

@ -22,7 +22,7 @@
// CHECK: int f_i1; ; Offset: 80
// CHECK: double f_d2; ; Offset: 88
// CHECK: } Foo ; Offset: 0 Size: 96
// CHECK: } Foo; ; Offset: 0 Size: 96
// CHECK: }
cbuffer Foo {
@ -77,7 +77,7 @@ cbuffer Foo {
// CHECK: half b_h22; ; Offset: 76
// CHECK: half b_h23; ; Offset: 78
// CHECK: } Bar ; Offset: 0 Size: 80
// CHECK: } Bar; ; Offset: 0 Size: 80
// CHECK: }
cbuffer Bar {

Просмотреть файл

@ -21,7 +21,7 @@
// CHECK: int i1; ; Offset: 80
// CHECK: double d2; ; Offset: 88
// CHECK: } f ; Offset: 0 Size: 96
// CHECK: } f; ; Offset: 0 Size: 96
struct Foo {
int16_t h1;
@ -74,7 +74,7 @@ struct Foo {
// CHECK: uint16_t h22; ; Offset: 76
// CHECK: int16_t h23; ; Offset: 78
// CHECK: } b ; Offset: 0 Size: 80
// CHECK: } b; ; Offset: 0 Size: 80
struct Bar {
int16_t h1;

Просмотреть файл

@ -22,7 +22,7 @@
// CHECK: int f_i1; ; Offset: 80
// CHECK: double f_d2; ; Offset: 88
// CHECK: } Foo ; Offset: 0 Size: 96
// CHECK: } Foo; ; Offset: 0 Size: 96
// CHECK: }
cbuffer Foo {
@ -77,7 +77,7 @@ cbuffer Foo {
// CHECK: int16_t b_h22; ; Offset: 76
// CHECK: int16_t b_h23; ; Offset: 78
// CHECK: } Bar ; Offset: 0 Size: 80
// CHECK: } Bar; ; Offset: 0 Size: 80
// CHECK: }
cbuffer Bar {

Просмотреть файл

@ -856,9 +856,9 @@ void PrintStructLayout(StructType *ST, DxilTypeSystem &typeSys, const DataLayout
if (!annotation) {
if (!sizeOfStruct) {
(OS << comment).indent(indent) << "/* empty struct */\n";
(OS << comment).indent(fieldIndent) << "/* empty struct */\n";
} else {
(OS << comment).indent(indent) << "[" << sizeOfStruct << " x i8] (type annotation not present)\n";
(OS << comment).indent(fieldIndent) << "[" << sizeOfStruct << " x i8] (type annotation not present)\n";
}
} else {
for (unsigned i = 0; i < ST->getNumElements(); i++) {
@ -877,12 +877,12 @@ void PrintStructLayout(StructType *ST, DxilTypeSystem &typeSys, const DataLayout
}
(OS << comment).indent(indent) << "\n";
// The 2 in offsetIndent-indent-2 is for "} ".
(OS << comment).indent(indent)
<< "} " << left_justify(varName, offsetIndent - 2);
std::string varNameAndSemicolon = varName;
varNameAndSemicolon += ';';
(OS << comment).indent(indent) << "} " << left_justify(varNameAndSemicolon, offsetIndent - 2);
OS << comment << " Offset:" << right_justify(std::to_string(offset), 5);
if (sizeOfStruct)
OS << " Size: " << right_justify(std::to_string(sizeOfStruct), 5);
;
OS << "\n";
OS << comment << "\n";
@ -928,7 +928,7 @@ void PrintStructBufferDefinition(DxilResource *buf,
OS << comment << " [" << DL.getTypeAllocSize(ST)
<< " x i8] (type annotation not present)\n";
} else {
PrintStructLayout(ST, typeSys, &DL, OS, comment, "$Element;",
PrintStructLayout(ST, typeSys, &DL, OS, comment, "$Element",
/*offset*/ 0, /*indent*/ 3, offsetIndent,
DL.getTypeAllocSize(ST));
}