1*22e9024cSNikita Popov; RUN: split-file --leading-lines %s %t 2*22e9024cSNikita Popov; RUN: not llvm-as < %t/missing-lparen.ll 2>&1 | FileCheck %s --check-prefix=CHECK-MISSING-LPAREN 3*22e9024cSNikita Popov; RUN: not llvm-as < %t/missing-rparen.ll 2>&1 | FileCheck %s --check-prefix=CHECK-MISSING-RPAREN 4*22e9024cSNikita Popov; RUN: not llvm-as < %t/missing-rparen-none.ll 2>&1 | FileCheck %s --check-prefix=CHECK-MISSING-RPAREN-NONE 5*22e9024cSNikita Popov; RUN: not llvm-as < %t/missing-colon.ll 2>&1 | FileCheck %s --check-prefix=CHECK-MISSING-COLON 6*22e9024cSNikita Popov; RUN: not llvm-as < %t/invalid-component.ll 2>&1 | FileCheck %s --check-prefix=CHECK-INVALID-COMPONENT 7*22e9024cSNikita Popov; RUN: not llvm-as < %t/duplicate-ret.ll 2>&1 | FileCheck %s --check-prefix=CHECK-DUPLICATE-RET 8*22e9024cSNikita Popov; RUN: not llvm-as < %t/none-after.ll 2>&1 | FileCheck %s --check-prefix=CHECK-NONE-AFTER 9*22e9024cSNikita Popov; RUN: not llvm-as < %t/none-before.ll 2>&1 | FileCheck %s --check-prefix=CHECK-NONE-BEFORE 10*22e9024cSNikita Popov; RUN: not opt -disable-output < %t/non-pointer-type.ll 2>&1 | FileCheck %s --check-prefix=CHECK-NON-POINTER-TYPE 11*22e9024cSNikita Popov 12*22e9024cSNikita Popov;--- missing-lparen.ll 13*22e9024cSNikita Popov 14*22e9024cSNikita Popov; CHECK-MISSING-LPAREN: <stdin>:[[@LINE+1]]:32: error: expected '(' 15*22e9024cSNikita Popovdefine void @test(ptr captures %p) { 16*22e9024cSNikita Popov ret void 17*22e9024cSNikita Popov} 18*22e9024cSNikita Popov 19*22e9024cSNikita Popov;--- missing-rparen.ll 20*22e9024cSNikita Popov 21*22e9024cSNikita Popov; CHECK-MISSING-RPAREN: <stdin>:[[@LINE+1]]:40: error: expected ',' or ')' 22*22e9024cSNikita Popovdefine void @test(ptr captures(address %p) { 23*22e9024cSNikita Popov ret void 24*22e9024cSNikita Popov} 25*22e9024cSNikita Popov 26*22e9024cSNikita Popov;--- missing-rparen-none.ll 27*22e9024cSNikita Popov 28*22e9024cSNikita Popov; CHECK-MISSING-RPAREN-NONE: <stdin>:[[@LINE+1]]:37: error: expected ',' or ')' 29*22e9024cSNikita Popovdefine void @test(ptr captures(none %p) { 30*22e9024cSNikita Popov ret void 31*22e9024cSNikita Popov} 32*22e9024cSNikita Popov 33*22e9024cSNikita Popov;--- missing-colon.ll 34*22e9024cSNikita Popov 35*22e9024cSNikita Popov; CHECK-MISSING-COLON: <stdin>:[[@LINE+1]]:36: error: expected ':' 36*22e9024cSNikita Popovdefine void @test(ptr captures(ret address) %p) { 37*22e9024cSNikita Popov ret void 38*22e9024cSNikita Popov} 39*22e9024cSNikita Popov 40*22e9024cSNikita Popov;--- invalid-component.ll 41*22e9024cSNikita Popov 42*22e9024cSNikita Popov; CHECK-INVALID-COMPONENT: <stdin>:[[@LINE+1]]:32: error: expected one of 'none', 'address', 'address_is_null', 'provenance' or 'read_provenance' 43*22e9024cSNikita Popovdefine void @test(ptr captures(foo) %p) { 44*22e9024cSNikita Popov ret void 45*22e9024cSNikita Popov} 46*22e9024cSNikita Popov 47*22e9024cSNikita Popov;--- duplicate-ret.ll 48*22e9024cSNikita Popov 49*22e9024cSNikita Popov; CHECK-DUPLICATE-RET: <stdin>:[[@LINE+1]]:51: error: duplicate 'ret' location 50*22e9024cSNikita Popovdefine void @test(ptr captures(ret: address, ret: provenance) %p) { 51*22e9024cSNikita Popov ret void 52*22e9024cSNikita Popov} 53*22e9024cSNikita Popov 54*22e9024cSNikita Popov;--- none-after.ll 55*22e9024cSNikita Popov 56*22e9024cSNikita Popov; CHECK-NONE-AFTER: <stdin>:[[@LINE+1]]:45: error: cannot use 'none' with other component 57*22e9024cSNikita Popovdefine void @test(ptr captures(address, none) %p) { 58*22e9024cSNikita Popov ret void 59*22e9024cSNikita Popov} 60*22e9024cSNikita Popov 61*22e9024cSNikita Popov;--- none-before.ll 62*22e9024cSNikita Popov 63*22e9024cSNikita Popov; CHECK-NONE-BEFORE: <stdin>:[[@LINE+1]]:38: error: cannot use 'none' with other component 64*22e9024cSNikita Popovdefine void @test(ptr captures(none, address) %p) { 65*22e9024cSNikita Popov ret void 66*22e9024cSNikita Popov} 67*22e9024cSNikita Popov 68*22e9024cSNikita Popov;--- non-pointer-type.ll 69*22e9024cSNikita Popov 70*22e9024cSNikita Popov; CHECK-NON-POINTER-TYPE: Attribute 'captures(none)' applied to incompatible type! 71*22e9024cSNikita Popovdefine void @test(i32 captures(none) %p) { 72*22e9024cSNikita Popov ret void 73*22e9024cSNikita Popov} 74