Print empty structs as {} rather than { }.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100787 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2010-04-08 18:03:05 +00:00
parent 88ccf742a3
commit 29e13e0c18
4 changed files with 17 additions and 13 deletions

View File

@ -227,13 +227,15 @@ void TypePrinting::CalcTypeName(const Type *Ty,
const StructType *STy = cast<StructType>(Ty);
if (STy->isPacked())
OS << '<';
OS << "{ ";
OS << '{';
for (StructType::element_iterator I = STy->element_begin(),
E = STy->element_end(); I != E; ++I) {
CalcTypeName(*I, TypeStack, OS);
if (next(I) != STy->element_end())
OS << ',';
OS << ' ';
CalcTypeName(*I, TypeStack, OS);
if (next(I) == STy->element_end())
OS << ' ';
else
OS << ',';
}
OS << '}';
if (STy->isPacked())
@ -242,13 +244,15 @@ void TypePrinting::CalcTypeName(const Type *Ty,
}
case Type::UnionTyID: {
const UnionType *UTy = cast<UnionType>(Ty);
OS << "union { ";
OS << "union {";
for (StructType::element_iterator I = UTy->element_begin(),
E = UTy->element_end(); I != E; ++I) {
CalcTypeName(*I, TypeStack, OS);
if (next(I) != UTy->element_end())
OS << ',';
OS << ' ';
CalcTypeName(*I, TypeStack, OS);
if (next(I) == UTy->element_end())
OS << ' ';
else
OS << ',';
}
OS << '}';
break;

View File

@ -1,5 +1,5 @@
// PR 1417
// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep "struct.anon = type \{ \}"
// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep "struct.anon = type \{\}"
struct { } *X;

View File

@ -3,13 +3,13 @@
declare void @g(i8*)
declare { }* @llvm.invariant.start(i64, i8* nocapture) nounwind readonly
declare {}* @llvm.invariant.start(i64, i8* nocapture) nounwind readonly
define i8 @f() {
%a = alloca i8 ; <i8*> [#uses=4]
store i8 0, i8* %a
%i = call { }* @llvm.invariant.start(i64 1, i8* %a) ; <{ }*> [#uses=0]
; CHECK: call { }* @llvm.invariant.start
%i = call {}* @llvm.invariant.start(i64 1, i8* %a) ; <{}*> [#uses=0]
; CHECK: call {}* @llvm.invariant.start
call void @g(i8* %a)
%r = load i8* %a ; <i8> [#uses=1]
ret i8 %r

View File

@ -188,7 +188,7 @@ define void @test8b(i32* %P) {
%X = call {} @test8a(i32 5, i32* %P)
ret void
; CHECK: define void @test8b
; CHECK-NEXT: call { } @test8a
; CHECK-NEXT: call {} @test8a
; CHECK-NEXT: ret void
}