// RUN: llvm-mc -triple x86_64-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s

// Test case for rdar://9356266

// This tests that this expression does not cause a crash and produces these
// four relocation entries:
// Relocation information (__DATA,__data) 4 entries
// address  pcrel length extern type    scattered symbolnum/value
// 00000004 False long   False  SUB     False     2 (__DATA,__data)
// 00000004 False long   False  UNSIGND False     2 (__DATA,__data)
// 00000000 False long   False  SUB     False     2 (__DATA,__data)
// 00000000 False long   False  UNSIGND False     2 (__DATA,__data)

	.data
L_var1:
L_var2:
// This was working fine
	.long L_var2 - L_var1
	
	.set L_var3, .
	.set L_var4, .
// But this was causing a crash
	.long L_var4 - L_var3

// CHECK:  ('_relocations', [
// CHECK:    # Relocation 0
// CHECK:    (('word-0', 0x4),
// CHECK:     ('word-1', 0x54000002)),
// CHECK:    # Relocation 1
// CHECK:    (('word-0', 0x4),
// CHECK:     ('word-1', 0x4000002)),
// CHECK:    # Relocation 2
// CHECK:    (('word-0', 0x0),
// CHECK:     ('word-1', 0x54000002)),
// CHECK:    # Relocation 3
// CHECK:    (('word-0', 0x0),
// CHECK:     ('word-1', 0x4000002)),
// CHECK:  ])