X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FBitcode%2Fattributes.ll;h=e3eda4887b36171fa17de9e5cae943b2e1f99180;hb=b69b6b56339cffdb675817ff4bab206254141bbe;hp=6c46e94012a5e9238bbd3356d6ba1c95ee7d5cce;hpb=8eec41fc778e99d42172a7f6de76faa43a6d8847;p=oota-llvm.git diff --git a/test/Bitcode/attributes.ll b/test/Bitcode/attributes.ll index 6c46e94012a..e3eda4887b3 100644 --- a/test/Bitcode/attributes.ll +++ b/test/Bitcode/attributes.ll @@ -1,4 +1,5 @@ ; RUN: llvm-as < %s | llvm-dis | FileCheck %s +; RUN: verify-uselistorder < %s ; PR12696 define void @f1(i8 zeroext) @@ -179,6 +180,103 @@ define void @f30() "cpu"="cortex-a8" ret void; } +define i8 @f31(i8 returned %A) +; CHECK: define i8 @f31(i8 returned %A) +{ + ret i8 %A; +} + +define void @f32() sspstrong +; CHECK: define void @f32() #21 +{ + ret void; +} + +define void @f33() minsize +; CHECK: define void @f33() #22 +{ + ret void; +} + +declare void @nobuiltin() + +define void @f34() +; CHECK: define void @f34() +{ + call void @nobuiltin() nobuiltin +; CHECK: call void @nobuiltin() #28 + ret void; +} + +define void @f35() optnone noinline +; CHECK: define void @f35() #23 +{ + ret void; +} + +define void @f36(i8* inalloca) { +; CHECK: define void @f36(i8* inalloca) { + ret void +} + +define nonnull i8* @f37(i8* nonnull %a) { +; CHECK: define nonnull i8* @f37(i8* nonnull %a) { + ret i8* %a +} + +define void @f38() unnamed_addr jumptable { +; CHECK: define void @f38() unnamed_addr #24 + call void bitcast (void (i8*)* @f36 to void ()*)() + unreachable +} + +define dereferenceable(2) i8* @f39(i8* dereferenceable(1) %a) { +; CHECK: define dereferenceable(2) i8* @f39(i8* dereferenceable(1) %a) { + ret i8* %a +} + +define dereferenceable(18446744073709551606) i8* @f40(i8* dereferenceable(18446744073709551615) %a) { +; CHECK: define dereferenceable(18446744073709551606) i8* @f40(i8* dereferenceable(18446744073709551615) %a) { + ret i8* %a +} + +define void @f41(i8* align 32, double* align 64) { +; CHECK: define void @f41(i8* align 32, double* align 64) { + ret void +} + +; CHECK: define dereferenceable_or_null(8) i8* @f42(i8* dereferenceable_or_null(8) %foo) +define dereferenceable_or_null(8) i8* @f42(i8* dereferenceable_or_null(8) %foo) { + entry: + ret i8* %foo +} + +; CHECK: define void @f43() #25 +define void @f43() convergent { + ret void +} + +define void @f44() argmemonly +; CHECK: define void @f44() #26 +{ + ret void; +} + +; CHECK: define "string_attribute" void @f45(i32 "string_attribute") +define "string_attribute" void @f45(i32 "string_attribute") { + ret void +} + +; CHECK: define "string_attribute_with_value"="value" void @f46(i32 "string_attribute_with_value"="value") +define "string_attribute_with_value"="value" void @f46(i32 "string_attribute_with_value"="value") { + ret void +} + +; CHECK: define void @f47() #27 +define void @f47() norecurse { + ret void +} + ; CHECK: attributes #0 = { noreturn } ; CHECK: attributes #1 = { nounwind } ; CHECK: attributes #2 = { readnone } @@ -200,3 +298,11 @@ define void @f30() "cpu"="cortex-a8" ; CHECK: attributes #18 = { sanitize_thread } ; CHECK: attributes #19 = { sanitize_memory } ; CHECK: attributes #20 = { "cpu"="cortex-a8" } +; CHECK: attributes #21 = { sspstrong } +; CHECK: attributes #22 = { minsize } +; CHECK: attributes #23 = { noinline optnone } +; CHECK: attributes #24 = { jumptable } +; CHECK: attributes #25 = { convergent } +; CHECK: attributes #26 = { argmemonly } +; CHECK: attributes #27 = { norecurse } +; CHECK: attributes #28 = { nobuiltin }