Clang Project

clang_source_code/test/CodeGen/preserve-call-conv.c
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm < %s | FileCheck %s
2// RUN: %clang_cc1 -triple arm64-unknown-unknown -emit-llvm < %s | FileCheck %s
3
4// RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s
5// RUN: %clang_cc1 -triple aarch64-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s
6// RUN: %clang_cc1 -triple thumbv7-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s
7
8// Check that the preserve_most calling convention attribute at the source level
9// is lowered to the corresponding calling convention attrribute at the LLVM IR
10// level.
11void foo() __attribute__((preserve_most)) {
12  // CHECK-LABEL: define {{(dso_local )?}}preserve_mostcc void @foo()
13}
14
15// Check that the preserve_most calling convention attribute at the source level
16// is lowered to the corresponding calling convention attrribute at the LLVM IR
17// level.
18void boo() __attribute__((preserve_all)) {
19  // CHECK-LABEL: define {{(dso_local )?}}preserve_allcc void @boo()
20}
21
22