136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: not llvm-mc -triple arm64-apple-darwin < %s 2> %t | FileCheck %s
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.globl _fct1
536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines_fct1:
636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  L1:
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  L2:
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  L3:
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  L4:
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ret lr;
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Known LOHs with:
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# - Regular syntax.
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# - Alternative syntax.
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAdrp L1, L2
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAdrp L1, L2
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpAdrp L1, L2
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 1 L1, L2
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdr L1, L2
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdr L1, L2
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpLdr L1, L2
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 2 L1, L2
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAddLdr L1, L2, L3
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAddLdr L1, L2, L3
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpAddLdr L1, L2, L3
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 3 L1, L2, L3
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdrGotLdr L1, L2, L3
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdrGotLdr L1, L2, L3
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpLdrGotLdr L1, L2, L3
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 4 L1, L2, L3
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAddStr L1, L2, L3
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAddStr L1, L2, L3
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpAddStr L1, L2, L3
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 5 L1, L2, L3
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdrGotStr L1, L2, L3
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdrGotStr L1, L2, L3
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpLdrGotStr L1, L2, L3
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 6 L1, L2, L3
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAdd L1, L2
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpAdd L1, L2
4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpAdd L1, L2
4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 7 L1, L2
5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdrGot L1, L2
5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK: .loh AdrpLdrGot L1, L2
5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpLdrGot L1, L2
5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 8 L1, L2
5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# End Known LOHs.
5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines### Errors Check ####
5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Unknown textual identifier.
6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS: error: invalid identifier in directive
6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT: .loh Unknown
6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT:      ^
6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh Unknown
6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Unknown numeric identifier.
6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS: error: invalid numeric identifier in directive
6736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT: .loh 153, L1
6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT:      ^
6936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 153, L1
7036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
7136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Too much arguments.
7236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS: error: unexpected token in '.loh' directive
7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT: .loh AdrpAdrp L1, L2, L3
7436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT:                     ^
7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpAdrp L1, L2, L3
7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
7736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Too much arguments with alternative syntax.
7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS: error: unexpected token in '.loh' directive
7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT: .loh 1 L1, L2, L3
8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT:              ^
8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 1 L1, L2, L3
8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Too few argumets.
8436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS: error: unexpected token in '.loh' directive
8536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT: .loh AdrpAdrp L1
8636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT:                 ^
8736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh AdrpAdrp L1
8836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Too few argumets with alternative syntax.
9036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS: error: unexpected token in '.loh' directive
9136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT: .loh 1 L1
9236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-ERRORS-NEXT:          ^
9336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.loh 1 L1
94