summaryrefslogtreecommitdiff
path: root/lld/test/ELF/compressed-debug-level.test
blob: 71804ed66673d193991e019737d20d08c1b182b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# REQUIRES: x86, zlib

# RUN: yaml2obj %s -o %t.o

## The environment variable DFLTCC=0 disables use of the hardware compression
## facility on SystemZ.  When this facility is enabled, slightly different
## compression results can be seen, which would throw off the tests below.

# RUN: DFLTCC=0 ld.lld %t.o -o %t.default --compress-debug-sections=zlib
# RUN: llvm-readelf --sections %t.default | FileCheck -check-prefixes=HEADER,LEVEL1 %s

# RUN: DFLTCC=0 ld.lld -O0 %t.o -o %t.O0 --compress-debug-sections=zlib
# RUN: llvm-readelf --sections %t.O0 | FileCheck -check-prefixes=HEADER,LEVEL1 %s
# RUN: cmp %t.default %t.O0

# RUN: DFLTCC=0 ld.lld -O1 %t.o -o %t.O1 --compress-debug-sections=zlib
# RUN: llvm-readelf --sections %t.O1 | FileCheck -check-prefixes=HEADER,LEVEL1 %s
# RUN: cmp %t.default %t.O1

# RUN: DFLTCC=0 ld.lld -O2 %t.o -o %t.O2 --compress-debug-sections=zlib
# RUN: llvm-readelf --sections %t.O2 | FileCheck -check-prefixes=HEADER,LEVEL6 %s

## LLD uses zlib compression of level 1 when -O0, -O1 and level 6 when -O2.
## Here we check how -O flag affects the size of compressed sections produced.

# HEADER: [Nr] Name        Type     Address  Off    Size
# LEVEL1: [ 1] .debug_info PROGBITS 00000000 000094 00001{{[bc]}}
# LEVEL6: [ 1] .debug_info PROGBITS 00000000 000094 00001a

## A little arbitrary debug section which has a different size after
## applying compression of level 1 and 6.

--- !ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_386
Sections:
  - Name:    .debug_info
    Type:    SHT_PROGBITS
    Content: '010101010101010201010201'