llvm-project

Форк
0
/
no-strip-segment.s 
62 строки · 1.9 Кб
1
# RUN: split-file %s %t
2
# RUN: llvm-mc -filetype=obj --triple=wasm32-unknown-unknown -o %t/main.o %t/main.s
3
# RUN: llvm-mc -filetype=obj --triple=wasm32-unknown-unknown -o %t/liba_x.o %t/liba_x.s
4
# RUN: llvm-mc -filetype=obj --triple=wasm32-unknown-unknown -o %t/liba_y.o %t/liba_y.s
5
# RUN: rm -f %t/liba.a
6
# RUN: llvm-ar rcs %t/liba.a %t/liba_x.o %t/liba_y.o
7
# RUN: wasm-ld %t/main.o %t/liba.a --gc-sections -o %t/main.wasm --print-gc-sections | FileCheck %s --check-prefix=GC
8
# RUN: obj2yaml %t/main.wasm | FileCheck %s
9

10
# --gc-sections should remove non-retained and unused "weathers" section from live object liba_x.o
11
# GC: removing unused section {{.*}}/liba.a(liba_x.o):(weathers)
12
# Should not remove retained "greetings" sections from live objects main.o and liba_x.o
13
# GC-NOT: removing unused section %t/main.o:(greetings)
14
# GC-NOT: removing unused section %t/liba_x.o:(greetings)
15

16
# Note: All symbols are private so that they don't join the symbol table.
17

18
#--- main.s
19
  .functype grab_liba () -> ()
20
  .globl  _start
21
_start:
22
  .functype _start () -> ()
23
  call grab_liba
24
  end_function
25

26
  .section greetings,"R",@
27
  .asciz  "hello"
28
  .section weathers,"R",@
29
  .asciz  "cloudy"
30

31
#--- liba_x.s
32
  .globl  grab_liba
33
grab_liba:
34
  .functype grab_liba () -> ()
35
  end_function
36

37
  .section greetings,"R",@
38
  .asciz  "world"
39
  .section weathers,"",@
40
  .asciz  "rainy"
41

42
#--- liba_y.s
43
  .section        greetings,"R",@
44
  .asciz  "bye"
45

46

47
# "greetings" section
48
# CHECK: - Type:            DATA
49
# CHECK:   Segments:
50
# CHECK:     - SectionOffset:   7
51
# CHECK:       InitFlags:       0
52
# CHECK:       Offset:
53
# CHECK:         Opcode:          I32_CONST
54
# CHECK:         Value:           1024
55
# CHECK:       Content:         68656C6C6F00776F726C6400
56
# "weahters" section.
57
# CHECK: - SectionOffset:   25
58
# CHECK:   InitFlags:       0
59
# CHECK:   Offset:
60
# CHECK:     Opcode:          I32_CONST
61
# CHECK:     Value:           1036
62
# CHECK:   Content:         636C6F75647900
63

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.