// RUN: not llvm-mc -triple=aarch64 %s 2>&1 | FileCheck --check-prefix=ERR %s

// Test syntax errors
.aeabi_subsection 1, required, uleb128
// ERR: error: subsection name not found
// ERR-NEXT: .aeabi_subsection 1, required, uleb128

.aeabi_subsection , required, uleb128
// ERR: error: subsection name not found
// ERR-NEXT: .aeabi_subsection , required, uleb128

.aeabi_subsection aeabi_pauthabi, a, uleb128
// ERR: error: unknown AArch64 build attributes optionality, expected required|optional
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, a, uleb128

.aeabi_subsection aeabi_pauthabi, 1, uleb128
// ERR: error: optionality parameter not found, expected required|optional
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, 1, uleb128

.aeabi_subsection aeabi_pauthabi, ,uleb128
// ERR: error: optionality parameter not found, expected required|optional
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, ,uleb128

.aeabi_subsection aeabi_pauthabi,uleb128
// ERR: error: unknown AArch64 build attributes optionality, expected required|optional
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi,uleb128

.aeabi_subsection aeabi_pauthabi uleb128
// ERR: expected comma
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi uleb128

.aeabi_subsection aeabi_pauthabi, required
// ERR: error: expected comma
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, required

.aeabi_subsection aeabi_pauthabi, required,
// ERR: error: type parameter not found, expected uleb128|ntbs
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, required,

.aeabi_subsection aeabi_pauthabi, required, a
// ERR: error: unknown AArch64 build attributes type, expected uleb128|ntbs
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, required, a

.aeabi_subsection aeabi_pauthabi, optional, uleb128
// ERR: error: aeabi_pauthabi must be marked as required
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, optional, uleb128


// Test types mismatch
.aeabi_subsection aeabi_pauthabi, optional, uleb128
// ERR: error: aeabi_pauthabi must be marked as required
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, optional, uleb128

.aeabi_subsection aeabi_pauthabi, required, ntbs
// ERR: error: aeabi_pauthabi must be marked as ULEB128
// ERR-NEXT: .aeabi_subsection aeabi_pauthabi, required, ntbs

.aeabi_subsection aeabi_feature_and_bits, required, uleb128
// ERR: error: aeabi_feature_and_bits must be marked as optional
// ERR-NEXT: .aeabi_subsection aeabi_feature_and_bits, required, uleb128

.aeabi_subsection aeabi_feature_and_bits, optional, ntbs
// ERR: error: aeabi_feature_and_bits must be marked as ULEB128
// ERR-NEXT: .aeabi_subsection aeabi_feature_and_bits, optional, ntbs
