2010-11-12 15:47:08 +00:00
|
|
|
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
|
|
|
|
|
|
|
|
// Test that both % and @ are accepted.
|
|
|
|
.global foo
|
|
|
|
.type foo,%function
|
|
|
|
foo:
|
|
|
|
|
|
|
|
.global bar
|
|
|
|
.type bar,@object
|
|
|
|
bar:
|
|
|
|
|
2010-11-13 04:51:02 +00:00
|
|
|
// Test that gnu_unique_object is accepted.
|
|
|
|
.type zed,@gnu_unique_object
|
|
|
|
|
2013-04-10 16:52:15 +00:00
|
|
|
obj:
|
|
|
|
.global obj
|
|
|
|
.type obj,@object
|
|
|
|
.type obj,@notype
|
|
|
|
|
|
|
|
func:
|
|
|
|
.global func
|
|
|
|
.type func,@function
|
|
|
|
.type func,@object
|
|
|
|
|
2011-12-12 17:34:04 +00:00
|
|
|
ifunc:
|
|
|
|
.global ifunc
|
|
|
|
.type ifunc,@gnu_indirect_function
|
2013-04-10 16:52:15 +00:00
|
|
|
.type ifunc,@function
|
|
|
|
|
|
|
|
tls:
|
|
|
|
.global tls
|
|
|
|
.type tls,@tls_object
|
|
|
|
.type tls,@gnu_indirect_function
|
2011-12-12 17:34:04 +00:00
|
|
|
|
2013-04-10 16:52:15 +00:00
|
|
|
// CHECK: (('st_name', {{.*}}) # 'bar'
|
2011-08-04 15:10:35 +00:00
|
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
2011-08-04 15:24:00 +00:00
|
|
|
// CHECK-NEXT: ('st_type', 0x1)
|
2011-08-04 15:38:19 +00:00
|
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
2011-08-04 15:50:13 +00:00
|
|
|
// CHECK-NEXT: ('st_shndx', 0x0001)
|
2010-12-20 20:49:43 +00:00
|
|
|
// CHECK-NEXT: ('st_value', 0x0000000000000000)
|
|
|
|
// CHECK-NEXT: ('st_size', 0x0000000000000000)
|
2013-04-10 16:52:15 +00:00
|
|
|
|
|
|
|
// CHECK: (('st_name', {{.*}}) # 'foo'
|
|
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
|
|
// CHECK-NEXT: ('st_type', 0x2)
|
|
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
|
|
// CHECK-NEXT: ('st_shndx', 0x0001)
|
|
|
|
// CHECK-NEXT: ('st_value', 0x0000000000000000)
|
|
|
|
// CHECK-NEXT: ('st_size', 0x0000000000000000)
|
|
|
|
|
|
|
|
// CHECK: (('st_name', {{.*}}) # 'func'
|
2011-08-04 15:10:35 +00:00
|
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
2011-08-04 15:24:00 +00:00
|
|
|
// CHECK-NEXT: ('st_type', 0x2)
|
2011-08-04 15:38:19 +00:00
|
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
2011-08-04 15:50:13 +00:00
|
|
|
// CHECK-NEXT: ('st_shndx', 0x0001)
|
2010-12-20 20:49:43 +00:00
|
|
|
// CHECK-NEXT: ('st_value', 0x0000000000000000)
|
|
|
|
// CHECK-NEXT: ('st_size', 0x0000000000000000)
|
2013-04-10 16:52:15 +00:00
|
|
|
|
|
|
|
// CHECK: (('st_name', {{.*}}) # 'ifunc'
|
2011-12-12 17:34:04 +00:00
|
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
|
|
// CHECK-NEXT: ('st_type', 0xa)
|
|
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
|
|
// CHECK-NEXT: ('st_shndx', 0x0001)
|
|
|
|
// CHECK-NEXT: ('st_value', 0x0000000000000000)
|
|
|
|
// CHECK-NEXT: ('st_size', 0x0000000000000000)
|
|
|
|
|
2013-04-10 16:52:15 +00:00
|
|
|
// CHECK: (('st_name', {{.*}}) # 'obj'
|
|
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
|
|
// CHECK-NEXT: ('st_type', 0x1)
|
|
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
|
|
// CHECK-NEXT: ('st_shndx', 0x0001)
|
|
|
|
// CHECK-NEXT: ('st_value', 0x0000000000000000)
|
|
|
|
// CHECK-NEXT: ('st_size', 0x0000000000000000)
|
|
|
|
|
|
|
|
// CHECK: (('st_name', {{.*}}) # 'tls'
|
|
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
|
|
// CHECK-NEXT: ('st_shndx', 0x0001)
|
|
|
|
// CHECK-NEXT: ('st_value', 0x0000000000000000)
|
|
|
|
// CHECK-NEXT: ('st_size', 0x0000000000000000)
|