brintos

brintos / llvm-project-archived public Read only

0
0
Text · 726 B · fa740d8 Raw
25 lines · c
1// REQUIRES: bpf-registered-target2// RUN: %clang_cc1 -triple bpf -emit-llvm -disable-llvm-passes %s -o - | FileCheck %s3 4#define __bpf_fastcall __attribute__((bpf_fastcall))5 6void test(void) __bpf_fastcall;7void (*ptr)(void) __bpf_fastcall;8 9void foo(void) {10  test();11  (*ptr)();12}13 14// CHECK: @ptr = global ptr null15// CHECK: define {{.*}} void @foo()16// CHECK: entry:17// CHECK:   call void @test() #[[call_attr:[0-9]+]]18// CHECK:   %[[ptr:.*]] = load ptr, ptr @ptr, align 819// CHECK:   call void %[[ptr]]() #[[call_attr]]20// CHECK:   ret void21 22// CHECK: declare void @test() #[[func_attr:[0-9]+]]23// CHECK: attributes #[[func_attr]] = { {{.*}}"bpf_fastcall"{{.*}} }24// CHECK: attributes #[[call_attr]] = { "bpf_fastcall" }25