blob: 7b86510fe6eaf5f5888c67f26a6b331dd8bb2531 [file] [log] [blame] [edit]
; Test that all supported module flags are retrieved correctly.
;
; RUN: opt < %s -passes='inferattrs,alloc-token' -S | FileCheck %s --check-prefixes=CHECK,DEFAULT
; RUN: opt < %s -passes='inferattrs,alloc-token' -alloc-token-max=2 -alloc-token-fast-abi=0 -alloc-token-extended=0 -S | FileCheck %s --check-prefixes=CHECK,OVERRIDE
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
declare ptr @_Znwm(i64)
declare ptr @malloc(i64)
declare ptr @my_malloc(i64)
define void @test() sanitize_alloc_token {
; CHECK-LABEL: define void @test(
; DEFAULT: call ptr @__alloc_token_0_malloc(i64 8)
; DEFAULT: call ptr @__alloc_token_1__Znwm(i64 8)
; DEFAULT: call ptr @__alloc_token_2_malloc(i64 8)
; DEFAULT: call ptr @__alloc_token_0_my_malloc(i64 8)
; OVERRIDE: call ptr @__alloc_token_malloc(i64 8, i64 0)
; OVERRIDE: call ptr @__alloc_token__Znwm(i64 8, i64 1)
; OVERRIDE: call ptr @__alloc_token_malloc(i64 8, i64 0)
; OVERRIDE: call ptr @my_malloc(i64 8)
%1 = call ptr @malloc(i64 8)
%2 = call ptr @_Znwm(i64 8)
%3 = call ptr @malloc(i64 8)
%4 = call ptr @my_malloc(i64 8), !alloc_token !0
ret void
}
!0 = !{!"int", i1 0}
!llvm.module.flags = !{!1, !2, !3, !4}
!1 = !{i32 1, !"alloc-token-mode", !"increment"}
!2 = !{i32 1, !"alloc-token-max", i64 3}
!3 = !{i32 1, !"alloc-token-fast-abi", i64 1}
!4 = !{i32 1, !"alloc-token-extended", i64 1}