1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00

[IR] Keep a double break between functions when printing a module

This behavior appears to have changed unintentionally in
b0e979724f2679e4e6f5b824144ea89289bd6d56.

Instead of printing the leading newline in printFunction, print it when
printing a module. This ensures that `OS << *Func` starts printing
immediately on the current line, but whole modules are printed nicely.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D73505
This commit is contained in:
Reid Kleckner 2020-01-27 13:49:09 -08:00
parent 7bdbe4665a
commit 85e933eefe
2 changed files with 16 additions and 1 deletions

View File

@ -2651,8 +2651,10 @@ void AssemblyWriter::printModule(const Module *M) {
printUseLists(nullptr);
// Output all of the functions.
for (const Function &F : *M)
for (const Function &F : *M) {
Out << '\n';
printFunction(&F);
}
assert(UseListOrders.empty() && "All use-lists should have been consumed");
// Output all attribute groups.

View File

@ -1,6 +1,7 @@
; RUN: llvm-as < %s | llvm-dis > %t1.ll
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
; RUN: diff %t1.ll %t2.ll
; RUN: FileCheck %s < %t1.ll
@X = global i32 undef ; <i32*> [#uses=0]
@ -15,3 +16,15 @@ define i32 @test2() {
ret i32 %X
}
; Check that there is a newline between functions.
; CHECK: @X = global
; CHECK-EMPTY:
; CHECK: declare i32 @atoi(i8*)
; CHECK-EMPTY:
; CHECK: define i32 @test() {
; CHECK: {{^[}]}}
; CHECK-EMPTY:
; CHECK: define i32 @test2() {
; CHECK: {{^[}]}}