llvm-capstone/clang/test/CodeGen/msvc_pragma_alloc_text.cpp
Stephen Long b147717bb3 [MSVC] Add support for pragma alloc_text
`#pragma alloc_text` is a MSVC pragma that names the code section where functions should be placed. It only
applies to functions with C linkage.

https://docs.microsoft.com/en-us/cpp/preprocessor/alloc-text?view=msvc-170

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D125011
2022-05-16 07:00:17 -07:00

26 lines
556 B
C++

// RUN: %clang_cc1 -fms-extensions -S -emit-llvm -o - %s | FileCheck %s
extern "C" {
void foo();
void foo1();
void foo2();
void foo3();
#pragma alloc_text("abc", foo, foo1)
#pragma alloc_text("def", foo2)
#pragma alloc_text("def", foo3)
// CHECK-LABEL: define{{.*}} void @foo() {{.*}} section "abc"
void foo() {}
// CHECK-LABEL: define{{.*}} void @foo1() {{.*}} section "abc"
void foo1() {}
// CHECK-LABEL: define{{.*}} void @foo2() {{.*}} section "def"
void foo2() {}
// CHECK-LABEL: define{{.*}} void @foo3() {{.*}} section "def"
void foo3() {}
}