27 lines
1.1 KiB
ArmAsm
27 lines
1.1 KiB
ArmAsm
// REQUIRES: aarch64-registered-target
|
|
|
|
// When -mmark-bti-property is passed the generated file object gets BTI marking.
|
|
// RUN: %clang -target arm64-linux-none -mmark-bti-property -c -o - %s | llvm-readobj -n - | FileCheck -check-prefix=CHECK -check-prefix=CHECK_GEN %s
|
|
// RUN: %clang -target arm64-linux-none -DNOTE_PRESENT -c %s -o - | llvm-readobj -n - | FileCheck -check-prefix=CHECK -check-prefix=CHECK_PRESET %s
|
|
// RUN: %clang -target arm64-linux-none -mmark-bti-property -DNOTE_PRESENT -c %s -o - | llvm-readobj -n - | FileCheck -check-prefix=CHECK -check-prefix=CHECK_PRESET %s
|
|
// RUN: %clang -target arm64-linux-none -mmark-bti-property -DNOTE_PRESENT -c %s -o - 2>&1 | FileCheck -check-prefix=CHECK_WARNING %s
|
|
//
|
|
// CHECK_WARNING: The .note.gnu.property is not emitted because it is already present.
|
|
// CHECK: Name: .note.gnu.property
|
|
// CHECK: Type: NT_GNU_PROPERTY_TYPE_0
|
|
// CHECK_GEN: aarch64 feature: BTI
|
|
// CHECK_PRESET: aarch64 feature: BTI, PAC
|
|
|
|
#ifdef NOTE_PRESENT
|
|
.section .note.gnu.property, "a";
|
|
.balign 8;
|
|
.long 4;
|
|
.long 0x10;
|
|
.long 0x5
|
|
.asciz "GNU"
|
|
.long 0xc0000000
|
|
.long 4
|
|
.long 3
|
|
.long 0
|
|
#endif
|