# RUN: llvm-mc -filetype=obj -triple i386-apple-darwin9 < %s | llvm-readobj --symbols - | FileCheck %s
# RUN: not llvm-mc -filetype=obj -triple i386-apple-darwin9 --defsym ERR=1 %s 2>&1 |\
# RUN: FileCheck %s --check-prefix=ERR
.byte 0
.lto_set_conditional b, a
.lto_set_conditional d, a
.lto_set_conditional c, b
.lto_set_conditional e, n
# CHECK: Symbol {
# CHECK: Name: a
# CHECK: Flags [
# CHECK-NEXT: NoDeadStrip
# CHECK: Value: 0x1
a:
.byte 0
.no_dead_strip a
# Verify that pending conditional symbols are emitted next
# CHECK: Symbol {
# CHECK-NEXT: Name: b
# CHECK: Flags [
# CHECK-NEXT: NoDeadStrip
# CHECK: Value: 0x1
# CHECK: Symbol {
# CHECK-NEXT: Name: c
# CHECK: Flags [
# CHECK-NEXT: NoDeadStrip
# CHECK: Value: 0x1
# CHECK: Symbol {
# CHECK-NEXT: Name: d
# CHECK: Flags [
# CHECK-NEXT: NoDeadStrip
# CHECK: Value: 0x1
# CHECK-NOT: Name: e
# Remaining conditional symbols are emitted immediately
# CHECK: Symbol {
# CHECK-NEXT: Name: f
# CHECK: Flags [
# CHECK-NEXT: NoDeadStrip
# CHECK: Value: 0x1
.lto_set_conditional f, a
# CHECK: Symbol {
# CHECK-NEXT: Name: g
# CHECK: Flags [
# CHECK-NEXT: NoDeadStrip
# CHECK: Value: 0x1
.lto_set_conditional g, b
# CHECK: Symbol {
# CHECK-NEXT: Name: m
# CHECK: Flags [
# CHECK-NOT : NoDeadStrip
# CHECK: Value: 0x2
m:
# CHECK: Symbol {
# CHECK-NEXT: Name: h
# CHECK: Flags [
# CHECK-NOT : NoDeadStrip
# CHECK: Value: 0x2
.lto_set_conditional h, m
.ifdef ERR
.text
# ERR: {{.*}}.s:[[#@LINE+1]]:25: error: expected identifier
.lto_set_conditional i, ERR
.endif