aboutsummaryrefslogtreecommitdiff
path: root/test/tools
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-01-13 19:58:01 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-01-13 19:58:01 +0000
commit050e163ae8b4bb6eb252b59e2f8f36e68ae9239d (patch)
tree7376a0c71aad05d327e5b1dcbceb3311a10f9f29 /test/tools
parent8a6c1c25bce0267ee4072bd7b786b921e8a66a35 (diff)
Notes
Diffstat (limited to 'test/tools')
-rw-r--r--test/tools/llvm-lto/error.ll2
-rw-r--r--test/tools/llvm-objdump/Inputs/malformed-macho.binbin0 -> 843 bytes
-rw-r--r--test/tools/llvm-objdump/X86/macho-private-header.test6
-rw-r--r--test/tools/llvm-objdump/malformed-archives.test2
-rw-r--r--test/tools/llvm-objdump/malformed-macho.test2
-rw-r--r--test/tools/llvm-profdata/value-prof.proftext10
-rw-r--r--test/tools/llvm-readobj/codeview-linetables.test309
-rw-r--r--test/tools/llvm-symbolizer/Inputs/addr.inp2
-rw-r--r--test/tools/llvm-symbolizer/print_context.c22
-rw-r--r--test/tools/llvm-symbolizer/sym.test4
10 files changed, 277 insertions, 82 deletions
diff --git a/test/tools/llvm-lto/error.ll b/test/tools/llvm-lto/error.ll
new file mode 100644
index 000000000000..43043d0cdc0b
--- /dev/null
+++ b/test/tools/llvm-lto/error.ll
@@ -0,0 +1,2 @@
+; RUN: not llvm-lto foobar 2>&1 | FileCheck %s
+; CHECK: llvm-lto: error loading file 'foobar': {{N|n}}o such file or directory
diff --git a/test/tools/llvm-objdump/Inputs/malformed-macho.bin b/test/tools/llvm-objdump/Inputs/malformed-macho.bin
new file mode 100644
index 000000000000..b8a3f153a896
--- /dev/null
+++ b/test/tools/llvm-objdump/Inputs/malformed-macho.bin
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/macho-private-header.test b/test/tools/llvm-objdump/X86/macho-private-header.test
new file mode 100644
index 000000000000..d90072542a2e
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-private-header.test
@@ -0,0 +1,6 @@
+// RUN: llvm-objdump -private-header %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+
+CHECK: Mach header
+CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
+CHECK: MH_MAGIC_64 X86_64 ALL 0x00 OBJECT 3 496 SUBSECTIONS_VIA_SYMBOLS
+CHECK-NOT: Load command
diff --git a/test/tools/llvm-objdump/malformed-archives.test b/test/tools/llvm-objdump/malformed-archives.test
index e0f165d37ed7..c477022e2e11 100644
--- a/test/tools/llvm-objdump/malformed-archives.test
+++ b/test/tools/llvm-objdump/malformed-archives.test
@@ -1,7 +1,7 @@
// These test checks that llvm-objdump will not crash with malformed Archive
// files. So the check line is not all that important but the bug fixes to
// make sure llvm-objdump is robust is what matters.
-# RUN: llvm-objdump -macho -archive-headers \
+# RUN: not llvm-objdump -macho -archive-headers \
# RUN: %p/Inputs/libbogus1.a \
# RUN: 2>&1 | FileCheck -check-prefix=bogus1 %s
diff --git a/test/tools/llvm-objdump/malformed-macho.test b/test/tools/llvm-objdump/malformed-macho.test
new file mode 100644
index 000000000000..e96945d91125
--- /dev/null
+++ b/test/tools/llvm-objdump/malformed-macho.test
@@ -0,0 +1,2 @@
+RUN: not llvm-objdump -macho -s %p/Inputs/malformed-macho.bin 2>&1 | FileCheck %s -check-prefix=MALFORMED
+MALFORMED: '{{.*}}': The file was not recognized as a valid object file
diff --git a/test/tools/llvm-profdata/value-prof.proftext b/test/tools/llvm-profdata/value-prof.proftext
index ca2b1f822097..a8f6e8641c67 100644
--- a/test/tools/llvm-profdata/value-prof.proftext
+++ b/test/tools/llvm-profdata/value-prof.proftext
@@ -1,4 +1,4 @@
-# RUN: llvm-profdata show -ic-targets -all-functions %s | FileCheck %s --check-prefix=IC
+# RUN: llvm-profdata show -ic-targets -all-functions %s | FileCheck %s --check-prefix=ICTXT
# RUN: llvm-profdata show -ic-targets -counts -text -all-functions %s | FileCheck %s --check-prefix=ICTEXT
# RUN: llvm-profdata merge -o %t.profdata %s
# RUN: llvm-profdata show -ic-targets -all-functions %t.profdata | FileCheck %s --check-prefix=IC
@@ -45,10 +45,16 @@ foo2:1000
1
foo2:20000
+#ICTXT: Indirect Call Site Count: 3
+#ICTXT-NEXT: Indirect Target Results:
+#ICTXT-NEXT: [ 1, foo, 100 ]
+#ICTXT-NEXT: [ 1, foo2, 1000 ]
+#ICTXT-NEXT: [ 2, foo2, 20000 ]
+
#IC: Indirect Call Site Count: 3
#IC-NEXT: Indirect Target Results:
-#IC-NEXT: [ 1, foo, 100 ]
#IC-NEXT: [ 1, foo2, 1000 ]
+#IC-NEXT: [ 1, foo, 100 ]
#IC-NEXT: [ 2, foo2, 20000 ]
#ICTEXT: foo:100
diff --git a/test/tools/llvm-readobj/codeview-linetables.test b/test/tools/llvm-readobj/codeview-linetables.test
index 880b6d52f095..a1c6ab66b4ca 100644
--- a/test/tools/llvm-readobj/codeview-linetables.test
+++ b/test/tools/llvm-readobj/codeview-linetables.test
@@ -103,41 +103,85 @@ MFUN32-NEXT: Type: 0xF1
MFUN32-NEXT: PayloadSize: 0x8
MFUN32: ]
MFUN32-NEXT: FunctionLineTable [
-MFUN32-NEXT: LinkageName: _x
-MFUN32-NEXT: Flags: 0x0
-MFUN32-NEXT: CodeSize: 0xA
-MFUN32-NEXT: FilenameSegment [
-MFUN32-NEXT: Filename: d:\source.c
-MFUN32-NEXT: +0x0: 3
-MFUN32-NEXT: +0x3: 4
-MFUN32-NEXT: +0x8: 5
-MFUN32-NEXT: ]
-MFUN32-NEXT: ]
-MFUN32-NEXT: FunctionLineTable [
-MFUN32-NEXT: LinkageName: _y
-MFUN32-NEXT: Flags: 0x0
-MFUN32-NEXT: CodeSize: 0xA
-MFUN32-NEXT: FilenameSegment [
-MFUN32-NEXT: Filename: d:\source.c
-MFUN32-NEXT: +0x0: 7
-MFUN32-NEXT: +0x3: 8
-MFUN32-NEXT: +0x8: 9
-MFUN32-NEXT: ]
-MFUN32-NEXT: ]
-MFUN32-NEXT: FunctionLineTable [
-MFUN32-NEXT: LinkageName: _f
-MFUN32-NEXT: Flags: 0x0
-MFUN32-NEXT: CodeSize: 0x14
-MFUN32-NEXT: FilenameSegment [
-MFUN32-NEXT: Filename: d:\source.c
-MFUN32-NEXT: +0x0: 11
-MFUN32-NEXT: +0x3: 12
-MFUN32-NEXT: +0x8: 13
-MFUN32-NEXT: +0xD: 14
-MFUN32-NEXT: +0x12: 15
-MFUN32-NEXT: ]
-MFUN32-NEXT: ]
-MFUN32-NEXT: ]
+MFUN32-NEXT LinkageName: _x
+MFUN32-NEXT Flags: 0x0
+MFUN32-NEXT CodeSize: 0xA
+MFUN32-NEXT FilenameSegment [
+MFUN32-NEXT Filename: d:\source.c
+MFUN32-NEXT +0x0 [
+MFUN32-NEXT LineNumberStart: 3
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0x3 [
+MFUN32-NEXT LineNumberStart: 4
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0x8 [
+MFUN32-NEXT LineNumberStart: 5
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT ]
+MFUN32-NEXT ]
+MFUN32-NEXT FunctionLineTable [
+MFUN32-NEXT LinkageName: _y
+MFUN32-NEXT Flags: 0x0
+MFUN32-NEXT CodeSize: 0xA
+MFUN32-NEXT FilenameSegment [
+MFUN32-NEXT Filename: d:\source.c
+MFUN32-NEXT +0x0 [
+MFUN32-NEXT LineNumberStart: 7
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0x3 [
+MFUN32-NEXT LineNumberStart: 8
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0x8 [
+MFUN32-NEXT LineNumberStart: 9
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT ]
+MFUN32-NEXT ]
+MFUN32-NEXT FunctionLineTable [
+MFUN32-NEXT LinkageName: _f
+MFUN32-NEXT Flags: 0x0
+MFUN32-NEXT CodeSize: 0x14
+MFUN32-NEXT FilenameSegment [
+MFUN32-NEXT Filename: d:\source.c
+MFUN32-NEXT +0x0 [
+MFUN32-NEXT LineNumberStart: 11
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0x3 [
+MFUN32-NEXT LineNumberStart: 12
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0x8 [
+MFUN32-NEXT LineNumberStart: 13
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0xD [
+MFUN32-NEXT LineNumberStart: 14
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT +0x12 [
+MFUN32-NEXT LineNumberStart: 15
+MFUN32-NEXT LineNumberEndDelta: 0
+MFUN32-NEXT IsStatement: Yes
+MFUN32-NEXT ]
+MFUN32-NEXT ]
+MFUN32-NEXT ]
+MFUN32-NEXT ]
MFUN64: CodeViewDebugInfo [
MFUN64-NEXT: Magic: 0x4
@@ -208,9 +252,21 @@ MFUN64-NEXT: Flags: 0x0
MFUN64-NEXT: CodeSize: 0xE
MFUN64-NEXT: FilenameSegment [
MFUN64-NEXT: Filename: d:\source.c
-MFUN64-NEXT: +0x0: 3
-MFUN64-NEXT: +0x4: 4
-MFUN64-NEXT: +0x9: 5
+MFUN64-NEXT: +0x0 [
+MFUN64-NEXT: LineNumberStart: 3
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0x4 [
+MFUN64-NEXT: LineNumberStart: 4
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0x9 [
+MFUN64-NEXT: LineNumberStart: 5
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
MFUN64-NEXT: ]
MFUN64-NEXT: ]
MFUN64-NEXT: FunctionLineTable [
@@ -219,9 +275,21 @@ MFUN64-NEXT: Flags: 0x0
MFUN64-NEXT: CodeSize: 0xE
MFUN64-NEXT: FilenameSegment [
MFUN64-NEXT: Filename: d:\source.c
-MFUN64-NEXT: +0x0: 7
-MFUN64-NEXT: +0x4: 8
-MFUN64-NEXT: +0x9: 9
+MFUN64-NEXT: +0x0 [
+MFUN64-NEXT: LineNumberStart: 7
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0x4 [
+MFUN64-NEXT: LineNumberStart: 8
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0x9 [
+MFUN64-NEXT: LineNumberStart: 9
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
MFUN64-NEXT: ]
MFUN64-NEXT: ]
MFUN64-NEXT: FunctionLineTable [
@@ -230,11 +298,31 @@ MFUN64-NEXT: Flags: 0x0
MFUN64-NEXT: CodeSize: 0x18
MFUN64-NEXT: FilenameSegment [
MFUN64-NEXT: Filename: d:\source.c
-MFUN64-NEXT: +0x0: 11
-MFUN64-NEXT: +0x4: 12
-MFUN64-NEXT: +0x9: 13
-MFUN64-NEXT: +0xE: 14
-MFUN64-NEXT: +0x13: 15
+MFUN64-NEXT: +0x0 [
+MFUN64-NEXT: LineNumberStart: 11
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0x4 [
+MFUN64-NEXT: LineNumberStart: 12
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0x9 [
+MFUN64-NEXT: LineNumberStart: 13
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0xE [
+MFUN64-NEXT: LineNumberStart: 14
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
+MFUN64-NEXT: +0x13 [
+MFUN64-NEXT: LineNumberStart: 15
+MFUN64-NEXT: LineNumberEndDelta: 0
+MFUN64-NEXT: IsStatement: Yes
+MFUN64-NEXT: ]
MFUN64-NEXT: ]
MFUN64-NEXT: ]
MFUN64-NEXT: ]
@@ -306,20 +394,40 @@ MFILE32-NEXT: Flags: 0x0
MFILE32-NEXT: CodeSize: 0x14
MFILE32-NEXT: FilenameSegment [
MFILE32-NEXT: Filename: d:\input.c
-MFILE32-NEXT: +0x0: 3
+MFILE32-NEXT: +0x0 [
+MFILE32-NEXT: LineNumberStart: 3
+MFILE32-NEXT: LineNumberEndDelta: 0
+MFILE32-NEXT: IsStatement: Yes
+MFILE32-NEXT: ]
MFILE32-NEXT: ]
MFILE32-NEXT: FilenameSegment [
MFILE32-NEXT: Filename: d:\one.c
-MFILE32-NEXT: +0x3: 1
+MFILE32-NEXT: +0x3 [
+MFILE32-NEXT: LineNumberStart: 1
+MFILE32-NEXT: LineNumberEndDelta: 0
+MFILE32-NEXT: IsStatement: Yes
+MFILE32-NEXT: ]
MFILE32-NEXT: ]
MFILE32-NEXT: FilenameSegment [
MFILE32-NEXT: Filename: d:\two.c
-MFILE32-NEXT: +0x8: 2
+MFILE32-NEXT: +0x8 [
+MFILE32-NEXT: LineNumberStart: 2
+MFILE32-NEXT: LineNumberEndDelta: 0
+MFILE32-NEXT: IsStatement: Yes
+MFILE32-NEXT: ]
MFILE32-NEXT: ]
MFILE32-NEXT: FilenameSegment [
MFILE32-NEXT: Filename: d:\one.c
-MFILE32-NEXT: +0xD: 7
-MFILE32-NEXT: +0x12: 8
+MFILE32-NEXT: +0xD [
+MFILE32-NEXT: LineNumberStart: 7
+MFILE32-NEXT: LineNumberEndDelta: 0
+MFILE32-NEXT: IsStatement: Yes
+MFILE32-NEXT: ]
+MFILE32-NEXT: +0x12 [
+MFILE32-NEXT: LineNumberStart: 8
+MFILE32-NEXT: LineNumberEndDelta: 0
+MFILE32-NEXT: IsStatement: Yes
+MFILE32-NEXT: ]
MFILE32-NEXT: ]
MFILE32-NEXT: ]
MFILE32-NEXT: ]
@@ -357,28 +465,47 @@ MFILE64-NEXT: Subsection [
MFILE64-NEXT: Type: 0xF1
MFILE64-NEXT: PayloadSize: 0x8
MFILE64: ]
-MFILE64-NEXT: FunctionLineTable [
-MFILE64-NEXT: LinkageName: f
-MFILE64-NEXT: Flags: 0x0
-MFILE64-NEXT: CodeSize: 0x18
-MFILE64-NEXT: FilenameSegment [
-MFILE64-NEXT: Filename: d:\input.c
-MFILE64-NEXT: +0x0: 3
-MFILE64-NEXT: ]
-MFILE64-NEXT: FilenameSegment [
-MFILE64-NEXT: Filename: d:\one.c
-MFILE64-NEXT: +0x4: 1
-MFILE64-NEXT: ]
-MFILE64-NEXT: FilenameSegment [
-MFILE64-NEXT: Filename: d:\two.c
-MFILE64-NEXT: +0x9: 2
-MFILE64-NEXT: ]
-MFILE64-NEXT: FilenameSegment [
-MFILE64-NEXT: Filename: d:\one.c
-MFILE64-NEXT: +0xE: 7
-MFILE64-NEXT: +0x13: 8
-MFILE64-NEXT: ]
-MFILE64-NEXT: ]
+MFILE64-NEXT: FunctionLineTable [
+MFILE64-NEXT: LinkageName: f
+MFILE64-NEXT: Flags: 0x0
+MFILE64-NEXT: CodeSize: 0x18
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\input.c
+MFILE64-NEXT: +0x0 [
+MFILE64-NEXT: LineNumberStart: 3
+MFILE64-NEXT: LineNumberEndDelta: 0
+MFILE64-NEXT: IsStatement: Yes
+MFILE64-NEXT: ]
+MFILE64-NEXT: ]
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\one.c
+MFILE64-NEXT: +0x4 [
+MFILE64-NEXT: LineNumberStart: 1
+MFILE64-NEXT: LineNumberEndDelta: 0
+MFILE64-NEXT: IsStatement: Yes
+MFILE64-NEXT: ]
+MFILE64-NEXT: ]
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\two.c
+MFILE64-NEXT: +0x9 [
+MFILE64-NEXT: LineNumberStart: 2
+MFILE64-NEXT: LineNumberEndDelta: 0
+MFILE64-NEXT: IsStatement: Yes
+MFILE64-NEXT: ]
+MFILE64-NEXT: ]
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\one.c
+MFILE64-NEXT: +0xE [
+MFILE64-NEXT: LineNumberStart: 7
+MFILE64-NEXT: LineNumberEndDelta: 0
+MFILE64-NEXT: IsStatement: Yes
+MFILE64-NEXT: ]
+MFILE64-NEXT: +0x13 [
+MFILE64-NEXT: LineNumberStart: 8
+MFILE64-NEXT: LineNumberEndDelta: 0
+MFILE64-NEXT: IsStatement: Yes
+MFILE64-NEXT: ]
+MFILE64-NEXT: ]
MFILE64-NEXT: ]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -411,9 +538,21 @@ MCOMDAT-NEXT: Flags: 0x0
MCOMDAT-NEXT: CodeSize: 0x7
MCOMDAT-NEXT: FilenameSegment [
MCOMDAT-NEXT: Filename: c:\src\test.cc
-MCOMDAT-NEXT: +0x0: 2
-MCOMDAT-NEXT: +0x3: 3
-MCOMDAT-NEXT: +0x5: 4
+MCOMDAT-NEXT: +0x0 [
+MCOMDAT-NEXT: LineNumberStart: 2
+MCOMDAT-NEXT: LineNumberEndDelta: 0
+MCOMDAT-NEXT: IsStatement: Yes
+MCOMDAT-NEXT: ]
+MCOMDAT-NEXT: +0x3 [
+MCOMDAT-NEXT: LineNumberStart: 3
+MCOMDAT-NEXT: LineNumberEndDelta: 0
+MCOMDAT-NEXT: IsStatement: Yes
+MCOMDAT-NEXT: ]
+MCOMDAT-NEXT: +0x5 [
+MCOMDAT-NEXT: LineNumberStart: 4
+MCOMDAT-NEXT: LineNumberEndDelta: 0
+MCOMDAT-NEXT: IsStatement: Yes
+MCOMDAT-NEXT: ]
MCOMDAT-NEXT: ]
MCOMDAT-NEXT: ]
MCOMDAT: ProcStart {
@@ -427,8 +566,20 @@ MCOMDAT-NEXT: Flags: 0x0
MCOMDAT-NEXT: CodeSize: 0x7
MCOMDAT-NEXT: FilenameSegment [
MCOMDAT-NEXT: Filename: c:\src\test.cc
-MCOMDAT-NEXT: +0x0: 7
-MCOMDAT-NEXT: +0x3: 8
-MCOMDAT-NEXT: +0x5: 9
+MCOMDAT-NEXT: +0x0 [
+MCOMDAT-NEXT: LineNumberStart: 7
+MCOMDAT-NEXT: LineNumberEndDelta: 0
+MCOMDAT-NEXT: IsStatement: Yes
+MCOMDAT-NEXT: ]
+MCOMDAT-NEXT: +0x3 [
+MCOMDAT-NEXT: LineNumberStart: 8
+MCOMDAT-NEXT: LineNumberEndDelta: 0
+MCOMDAT-NEXT: IsStatement: Yes
+MCOMDAT-NEXT: ]
+MCOMDAT-NEXT: +0x5 [
+MCOMDAT-NEXT: LineNumberStart: 9
+MCOMDAT-NEXT: LineNumberEndDelta: 0
+MCOMDAT-NEXT: IsStatement: Yes
+MCOMDAT-NEXT: ]
MCOMDAT-NEXT: ]
MCOMDAT-NEXT: ]
diff --git a/test/tools/llvm-symbolizer/Inputs/addr.inp b/test/tools/llvm-symbolizer/Inputs/addr.inp
index 4de096479dae..b5e146b114e2 100644
--- a/test/tools/llvm-symbolizer/Inputs/addr.inp
+++ b/test/tools/llvm-symbolizer/Inputs/addr.inp
@@ -1 +1,3 @@
+some text
0x40054d
+some text2
diff --git a/test/tools/llvm-symbolizer/print_context.c b/test/tools/llvm-symbolizer/print_context.c
new file mode 100644
index 000000000000..f1860e919881
--- /dev/null
+++ b/test/tools/llvm-symbolizer/print_context.c
@@ -0,0 +1,22 @@
+// REQUIRES: x86_64-linux
+// RUN: %host_cc -O0 -g %s -o %t 2>&1
+// RUN: %t 2>&1 | llvm-symbolizer -print-source-context-lines=5 -obj=%t | FileCheck %s --check-prefix=CHECK
+
+#include <stdio.h>
+
+int inc(int a) {
+ return a + 1;
+}
+
+int main() {
+ printf("%p\n", inc);
+ return 0;
+}
+
+// CHECK: inc
+// CHECK: print_context.c:7
+// CHECK: 5 : #include
+// CHECK: 6 :
+// CHECK: 7 >: int inc
+// CHECK: 8 : return
+// CHECK: 9 : }
diff --git a/test/tools/llvm-symbolizer/sym.test b/test/tools/llvm-symbolizer/sym.test
index 01a6692222e7..27f06901ff6c 100644
--- a/test/tools/llvm-symbolizer/sym.test
+++ b/test/tools/llvm-symbolizer/sym.test
@@ -20,11 +20,15 @@
RUN: llvm-symbolizer -print-address -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s
RUN: llvm-symbolizer -inlining -print-address -pretty-print -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck --check-prefix="PRETTY" %s
+#CHECK: some text
#CHECK: 0x40054d
#CHECK: main
#CHECK: {{[/\]+}}tmp{{[/\]+}}x.c:14:0
+#CHECK: some text2
#
+#PRETTY: some text
#PRETTY: {{[0x]+}}40054d: inctwo at {{[/\]+}}tmp{{[/\]+}}x.c:3:3
#PRETTY: (inlined by) inc at {{[/\]+}}tmp{{[/\]+}}x.c:7:0
#PRETTY (inlined by) main at {{[/\]+}}tmp{{[/\]+}}x.c:14:0
+#PRETTY: some text2