mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-05-13 17:37:00 +00:00

`#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
26 lines
556 B
C++
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() {}
|
|
}
|