llvm-project/llvm/test/Verifier/function-attribute-nossp-ss...

59 lines
1.9 KiB
LLVM

; RUN: not opt -verify -o - %s 2>&1 | FileCheck %s
define void @test_1 () #1 { ret void }
define void @test_2 () #2 { ret void }
define void @test_3 () #3 { ret void }
define void @test_4 () #4 { ret void }
define void @test_5 () #5 { ret void }
define void @test_6 () #6 { ret void }
define void @test_7 () #7 { ret void }
define void @test_8 () #8 { ret void }
define void @test_9 () #9 { ret void }
define void @test_10 () #10 { ret void }
define void @test_11 () #10 { ret void }
define void @test_12 () #10 { ret void }
define void @test_13 () #10 { ret void }
define void @test_14 () #10 { ret void }
attributes #0 = { nossp }
attributes #1 = { ssp }
attributes #2 = { sspreq }
attributes #3 = { sspstrong }
attributes #4 = { nossp ssp }
attributes #5 = { nossp sspreq }
attributes #6 = { nossp sspstrong }
attributes #7 = { ssp sspreq }
attributes #8 = { ssp sspstrong }
attributes #9 = { sspreq sspstrong }
attributes #10 = { nossp ssp sspreq }
attributes #11 = { nossp ssp sspstrong }
attributes #12 = { nossp sspreq sspstrong }
attributes #13 = { ssp sspreq sspstrong }
attributes #14 = { nossp ssp sspreq sspstrong }
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_4
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_5
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_6
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_7
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_8
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_9
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_10
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_11
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_12
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_13
; CHECK: fn attrs are mutually exclusive
; CHECK-NEXT: void ()* @test_14