1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/Transforms/CrossDSOCFI/cfi_functions.ll
Evgeniy Stepanov 286f104576 [cfi] CFI-ICall for ThinLTO.
Implement ControlFlowIntegrity for indirect function calls in ThinLTO.
Design follows the RFC in llvm-dev, see
https://groups.google.com/d/msg/llvm-dev/MgUlaphu4Qc/kywu0AqjAQAJ

llvm-svn: 305533
2017-06-16 00:18:29 +00:00

24 lines
699 B
LLVM

; Test that types referenced in ThinLTO-style !cfi.functions are known to __cfi_check.
; RUN: opt -S -cross-dso-cfi < %s | FileCheck %s
; RUN: opt -S -passes=cross-dso-cfi < %s | FileCheck %s
; CHECK: define void @__cfi_check(
; CHECK: switch i64
; CHECK-NEXT: i64 1234, label
; CHECK-NEXT: i64 5678, label
; CHECK-NEXT: ]
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
!cfi.functions = !{!0, !1}
!llvm.module.flags = !{!6}
!0 = !{!"f", i8 0, !2, !4}
!1 = !{!"g", i8 1, !3, !5}
!2 = !{i64 0, !"typeid1"}
!3 = !{i64 0, !"typeid2"}
!4 = !{i64 0, i64 1234}
!5 = !{i64 0, i64 5678}
!6 = !{i32 4, !"Cross-DSO CFI", i32 1}