mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
85d6c62b2c
Flags of the module derived exclusively from the compiler flag `-mbranch-protection`. The note is generated based on the module flags accordingly. After this change in case of compile unit without function won't have the .note.gnu.property if the compiler flag is not present [1]. [1] https://bugs.llvm.org/show_bug.cgi?id=46480 Reviewed By: chill Differential Revision: https://reviews.llvm.org/D80791
22 lines
739 B
LLVM
22 lines
739 B
LLVM
; RUN: llc -mtriple=aarch64-linux %s -o - | \
|
|
; RUN: FileCheck %s --check-prefix=ASM
|
|
; RUN: llc -mtriple=aarch64-linux %s -filetype=obj -o - | \
|
|
; RUN: llvm-readelf --notes - | FileCheck %s --check-prefix=OBJ
|
|
@x = common dso_local global i32 0, align 4
|
|
|
|
attributes #0 = { "branch-target-enforcement"="true" }
|
|
|
|
!llvm.module.flags = !{!0, !1, !2, !3}
|
|
|
|
!0 = !{i32 1, !"branch-target-enforcement", i32 1}
|
|
!1 = !{i32 1, !"sign-return-address", i32 1}
|
|
!2 = !{i32 1, !"sign-return-address-all", i32 0}
|
|
!3 = !{i32 1, !"sign-return-address-with-bkey", i32 0}
|
|
|
|
; Both attributes present in a file with no functions.
|
|
; ASM: .word 3221225472
|
|
; ASM-NEXT: .word 4
|
|
; ASM-NEXT: .word 3
|
|
|
|
; OBJ: Properties: aarch64 feature: BTI, PAC
|