These directives force the associated address to be interpreted as a
function or data respectively. CODE is the default when not specified.
Differential Revision: https://reviews.llvm.org/D96712
Reviewed by: MaskRay
--- /dev/null
+## Show that when "CODE" is used with an address, it forces the found location
+## to be symbolized as a function (this is the default).
+# REQUIRES: x86-registered-target
+# RUN: llvm-mc -g -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: llvm-symbolizer "CODE 0x1" "CODE 0x2" --obj=%t.o > %t.code
+# RUN: llvm-symbolizer 0x1 0x2 --obj=%t.o > %t.default
+# RUN: cmp %t.code %t.default
+# RUN: FileCheck %s --input-file=%t.code -DFILE=%s --implicit-check-not={{.}}
+
+# CHECK: f1
+f1:
+ nop
+# CHECK-NEXT: [[FILE]]:[[@LINE+1]]:0
+ ret
+# CHECK-EMPTY:
+# CHECK-NEXT: f2
+f2:
+# CHECK-NEXT: [[FILE]]:[[@LINE+1]]:0
+ ret
--- /dev/null
+## Show that when "DATA" is used with an address, it forces the found location
+## to be symbolized as data.
+# REQUIRES: x86-registered-target
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: llvm-symbolizer "DATA 0x2" "DATA 0x8" --obj=%t.o | \
+# RUN: FileCheck %s -DFILE=%s --implicit-check-not={{.}}
+
+# CHECK: d1
+# CHECK-NEXT: 0 8
+# CHECK-EMPTY:
+# CHECK-NEXT: d2
+# CHECK-NEXT: 8 4
+
+d1:
+ .quad 0x1122334455667788
+ .size d1, 8
+
+d2:
+ .long 0x99aabbcc
+ .size d2, 4