[libc] Deprecate LLVM_ENABLE_PROJECTS in favor of LLVM_ENABLE_RUNTIMES. (#117265)
[llvm-project.git] / bolt / test / runtime / bolt-reserved.cpp
blob2ebadfea5fa0285b00b43ecf46658d2aa0120c35
1 // REQUIRES: system-linux
3 /*
4 * Check that llvm-bolt uses reserved space in a binary for allocating
5 * new sections.
6 */
8 // RUN: %clangxx %s -o %t.exe -Wl,-q
9 // RUN: llvm-bolt %t.exe -o %t.bolt.exe 2>&1 | FileCheck %s
10 // RUN: %t.bolt.exe
12 // CHECK: BOLT-INFO: using reserved space
15 * Check that llvm-bolt detects a condition when the reserved space is
16 * not enough for allocating new sections.
19 // RUN: %clangxx %s -o %t.tiny.exe -Wl,--no-eh-frame-hdr -Wl,-q -DTINY
20 // RUN: not llvm-bolt %t.tiny.exe -o %t.tiny.bolt.exe 2>&1 | \
21 // RUN: FileCheck %s --check-prefix=CHECK-TINY
23 // CHECK-TINY: BOLT-ERROR: reserved space (1 byte) is smaller than required
25 #ifdef TINY
26 #define RSIZE "1"
27 #else
28 #define RSIZE "8192 * 1024"
29 #endif
31 asm(".pushsection .text \n\
32 .globl __bolt_reserved_start \n\
33 .type __bolt_reserved_start, @object \n\
34 __bolt_reserved_start: \n\
35 .space " RSIZE " \n\
36 .globl __bolt_reserved_end \n\
37 __bolt_reserved_end: \n\
38 .popsection");
40 int main() { return 0; }