File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ // REQUIRES: system-linux
2
+
3
+ /*
4
+ * Check that llvm-bolt uses reserved space in a binary for allocating
5
+ * new sections.
6
+ */
7
+
8
+ // RUN: %clang %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
11
+
12
+ // CHECK: BOLT-INFO: using reserved space
13
+
14
+ /*
15
+ * Check that llvm-bolt detects a condition when the reserved space is
16
+ * not enough for allocating new sections.
17
+ */
18
+
19
+ // RUN: %clang %s -o %t.exe -Wl,--no-eh-frame-hdr -Wl,-q -DTINY
20
+ // RUN: not llvm-bolt %t.exe -o %t.bolt.exe 2>&1 | \
21
+ // RUN: FileCheck %s --check-prefix=CHECK-TINY
22
+
23
+ // CHECK-TINY: BOLT-ERROR: reserved space (1 byte) is smaller than required
24
+
25
+ #ifdef TINY
26
+ #define RSIZE " 1"
27
+ #else
28
+ #define RSIZE " 8192 * 1024"
29
+ #endif
30
+
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" );
39
+
40
+ int main () { return 0 ; }
You can’t perform that action at this time.
0 commit comments