mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Add safestack attribute to LLVMAttribute enum and Go bindings. Correct
constants in commented-out part of LLVMAttribute enum. Add tests that verify that the safestack attribute is only allowed as a function attribute. llvm-svn: 239772
This commit is contained in:
parent
c8db15fcb6
commit
cb037f41a1
@ -160,6 +160,8 @@ const (
|
||||
InAllocaAttribute Attribute = 1 << 43
|
||||
NonNullAttribute Attribute = 1 << 44
|
||||
JumpTableAttribute Attribute = 1 << 45
|
||||
ConvergentAttribute Attribute = 1 << 46
|
||||
SafeStackAttribute Attribute = 1 << 47
|
||||
)
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
@ -53,6 +53,7 @@ func TestAttributes(t *testing.T) {
|
||||
{AlwaysInlineAttribute, "alwaysinline"},
|
||||
{BuiltinAttribute, "builtin"},
|
||||
{ByValAttribute, "byval"},
|
||||
{ConvergentAttribute, "convergent"},
|
||||
{InAllocaAttribute, "inalloca"},
|
||||
{InlineHintAttribute, "inlinehint"},
|
||||
{InRegAttribute, "inreg"},
|
||||
@ -78,6 +79,7 @@ func TestAttributes(t *testing.T) {
|
||||
{ReturnedAttribute, "returned"},
|
||||
{ReturnsTwiceAttribute, "returns_twice"},
|
||||
{SExtAttribute, "signext"},
|
||||
{SafeStackAttribute, "safestack"},
|
||||
{StackProtectAttribute, "ssp"},
|
||||
{StackProtectReqAttribute, "sspreq"},
|
||||
{StackProtectStrongAttribute, "sspstrong"},
|
||||
|
@ -161,15 +161,15 @@ typedef enum {
|
||||
/* FIXME: These attributes are currently not included in the C API as
|
||||
a temporary measure until the API/ABI impact to the C API is understood
|
||||
and the path forward agreed upon.
|
||||
LLVMAddressSafety = 1ULL << 32,
|
||||
LLVMStackProtectStrongAttribute = 1ULL<<33,
|
||||
LLVMCold = 1ULL << 34,
|
||||
LLVMOptimizeNone = 1ULL << 35,
|
||||
LLVMInAllocaAttribute = 1ULL << 36,
|
||||
LLVMNonNullAttribute = 1ULL << 37,
|
||||
LLVMJumpTableAttribute = 1ULL << 38,
|
||||
LLVMDereferenceableAttribute = 1ULL << 39,
|
||||
LLVMDereferenceableOrNullAttribute = 1ULL << 40,
|
||||
LLVMSanitizeAddressAttribute = 1ULL << 32,
|
||||
LLVMStackProtectStrongAttribute = 1ULL<<35,
|
||||
LLVMColdAttribute = 1ULL << 40,
|
||||
LLVMOptimizeNoneAttribute = 1ULL << 42,
|
||||
LLVMInAllocaAttribute = 1ULL << 43,
|
||||
LLVMNonNullAttribute = 1ULL << 44,
|
||||
LLVMJumpTableAttribute = 1ULL << 45,
|
||||
LLVMConvergentAttribute = 1ULL << 46,
|
||||
LLVMSafeStackAttribute = 1ULL << 47,
|
||||
*/
|
||||
} LLVMAttribute;
|
||||
|
||||
|
4
test/Assembler/invalid-safestack-param.ll
Normal file
4
test/Assembler/invalid-safestack-param.ll
Normal file
@ -0,0 +1,4 @@
|
||||
; RUN: not llvm-as -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: error: invalid use of function-only attribute
|
||||
declare void @foo(i32 safestack %x)
|
4
test/Assembler/invalid-safestack-return.ll
Normal file
4
test/Assembler/invalid-safestack-return.ll
Normal file
@ -0,0 +1,4 @@
|
||||
; RUN: not llvm-as -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: error: invalid use of function-only attribute
|
||||
declare safestack void @foo()
|
Loading…
x
Reference in New Issue
Block a user